最近変わった開発時のあれこれ/features-of-recent-go

 最近変わった開発時のあれこれ/features-of-recent-go

Umeda.go 2019 Spring

Fdbc02073fe49c59f4f1ae705691a128?s=128

kadota kyohei

April 20, 2019
Tweet

Transcript

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

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

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

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

  5. 書き始め

  6. コードの書き始め • モジュールを使いましょう • ◦ お好みのバージョン管理ツール • • • と

    をコミット
  7. コードを書く

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

  9. // エラーを包んで返す 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) の公式版 使用例
  10. • ユーザに見せるエラーは • 開発者がバグの調査で読むエラーは • などエラー処理に使える https://github.com/golang/go/wiki/ErrorValueFAQ

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

  12. テスト

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

  14. テスト $ 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 テスト結果のキャッシュ 実行例
  15. ビルドと実行

  16. 環境変数 • • • • • • •

  17. 環境変数 • ビルドに影響するもの ◦ • 実行時に影響するもの ◦ ◦ ◦ ◦

  18. リリース

  19. リリース • 必ずタグを打ちましょう!!! ◦ ◦ モジュールを使ってハマる原因はこれ • しておくとより良い ◦ ビルド制約に関係なくモジュール管理する

    http://www.songmu.jp/riji/entry/2019-03-28-go-m odules.html
  20. アップデート

  21. 依存パッケージのアップデート • 更新の確認 ◦ ◦ を眺めても良いかも • バージョンアップ ◦ •

    パッチリリースだけ ◦
  22. リリース • と をコミット • 必ずタグを打ちましょう

  23. None