Umeda.go 2019 Spring
最近変わった開発時のあれこれUmeda.go 2019 Spring2019-04-20@plan9user
View Slide
自己紹介● 門多恭平● 株式会社はてな アプリケーションエンジニア
今日話すことここ数年でのGo本家のアップデートから、普段使うものをワークフローに沿って軽く紹介します。
モジュールテストキャッシュ環境変数
書き始め
コードの書き始め● モジュールを使いましょう●○ お好みのバージョン管理ツール●●● と をコミット
コードを書く
コードを書く● を使うように○ から標準 になる予定○ 今後主流になると思われる● で色々な静的解析
// エラーを包んで返す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)の公式版使用例
● ユーザに見せるエラーは● 開発者がバグの調査で読むエラーは● などエラー処理に使えるhttps://github.com/golang/go/wiki/ErrorValueFAQ
で静的解析● はありがちなミスを検出するツール● で任意の解析が行える● の閉じ忘れ検出とか○ github.com/gostaticanalysis/sqlrowshttps://github.com/gostaticanalysis
テスト
テスト● テスト結果はキャッシュされるようになった○ ローカルディレクトリモード→しない○ パッケージリストモード→する● の引数にパッケージ名があるかどうか
テスト$ go test ./...ok github.com/lufia/backoff 4.028s$ go test ./...ok github.com/lufia/backoff (cached)$ go testok github.com/lufia/backoff 4.166s$ go clean -testcacheテスト結果のキャッシュ実行例
ビルドと実行
環境変数●●●●●●●
環境変数● ビルドに影響するもの○● 実行時に影響するもの○○○○
リリース
リリース● 必ずタグを打ちましょう!!!○○ モジュールを使ってハマる原因はこれ● しておくとより良い○ ビルド制約に関係なくモジュール管理するhttp://www.songmu.jp/riji/entry/2019-03-28-go-modules.html
アップデート
依存パッケージのアップデート● 更新の確認○○ を眺めても良いかも● バージョンアップ○● パッチリリースだけ○
リリース● と をコミット● 必ずタグを打ちましょう