Slide 1

Slide 1 text

最近変わった開発時 のあれこれ Umeda.go 2019 Spring 2019-04-20 @plan9user

Slide 2

Slide 2 text

自己紹介 ● 門多恭平 ● 株式会社はてな アプリケーションエンジニア

Slide 3

Slide 3 text

今日話すこと ここ数年でのGo本家のアップデートから、 普段使うものをワークフローに沿って軽く紹介しま す。

Slide 4

Slide 4 text

モジュール テストキャッシュ 環境変数

Slide 5

Slide 5 text

書き始め

Slide 6

Slide 6 text

コードの書き始め ● モジュールを使いましょう ● ○ お好みのバージョン管理ツール ● ● ● と をコミット

Slide 7

Slide 7 text

コードを書く

Slide 8

Slide 8 text

コードを書く ● を使うように ○ から標準 になる予定 ○ 今後主流になると思われる ● で色々な静的解析

Slide 9

Slide 9 text

// エラーを包んで返す f, err := os.Open(file) if err != nil { return nil, xerrors.Errorf("can't open: %w", err) } // 1行で出力 log.Printf("%v\n", err) // 詳細な出力 log.Printf("%+v\n", err) の公式版 使用例

Slide 10

Slide 10 text

● ユーザに見せるエラーは ● 開発者がバグの調査で読むエラーは ● などエラー処理に使える https://github.com/golang/go/wiki/ErrorValueFAQ

Slide 11

Slide 11 text

で静的解析 ● はありがちなミスを検出するツール ● で任意の解析が行える ● の閉じ忘れ検出とか ○ github.com/gostaticanalysis/sqlrows https://github.com/gostaticanalysis

Slide 12

Slide 12 text

テスト

Slide 13

Slide 13 text

テスト ● テスト結果はキャッシュされるようになった ○ ローカルディレクトリモード→しない ○ パッケージリストモード→する ● の引数にパッケージ名があるかどうか

Slide 14

Slide 14 text

テスト $ go test ./... ok github.com/lufia/backoff 4.028s $ go test ./... ok github.com/lufia/backoff (cached) $ go test ok github.com/lufia/backoff 4.166s $ go clean -testcache テスト結果のキャッシュ 実行例

Slide 15

Slide 15 text

ビルドと実行

Slide 16

Slide 16 text

環境変数 ● ● ● ● ● ● ●

Slide 17

Slide 17 text

環境変数 ● ビルドに影響するもの ○ ● 実行時に影響するもの ○ ○ ○ ○

Slide 18

Slide 18 text

リリース

Slide 19

Slide 19 text

リリース ● 必ずタグを打ちましょう!!! ○ ○ モジュールを使ってハマる原因はこれ ● しておくとより良い ○ ビルド制約に関係なくモジュール管理する http://www.songmu.jp/riji/entry/2019-03-28-go-m odules.html

Slide 20

Slide 20 text

アップデート

Slide 21

Slide 21 text

依存パッケージのアップデート ● 更新の確認 ○ ○ を眺めても良いかも ● バージョンアップ ○ ● パッチリリースだけ ○

Slide 22

Slide 22 text

リリース ● と をコミット ● 必ずタグを打ちましょう

Slide 23

Slide 23 text

No content