Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Umeda.go 2019 Spring

kadota kyohei

April 20, 2019
Tweet

More Decks by kadota kyohei

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 書き始め

    View Slide

  6. コードの書き始め
    ● モジュールを使いましょう

    ○ お好みのバージョン管理ツール


    ● と をコミット

    View Slide

  7. コードを書く

    View Slide

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

    View Slide

  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)
    の公式版
    使用例

    View Slide

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

    View Slide

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

    View Slide

  12. テスト

    View Slide

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

    View Slide

  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
    テスト結果のキャッシュ
    実行例

    View Slide

  15. ビルドと実行

    View Slide

  16. 環境変数







    View Slide

  17. 環境変数
    ● ビルドに影響するもの

    ● 実行時に影響するもの




    View Slide

  18. リリース

    View Slide

  19. リリース
    ● 必ずタグを打ちましょう!!!

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

    View Slide

  20. アップデート

    View Slide

  21. 依存パッケージのアップデート
    ● 更新の確認

    ○ を眺めても良いかも
    ● バージョンアップ

    ● パッチリリースだけ

    View Slide

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

    View Slide

  23. View Slide