Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© - BASE, Inc. X Goプロジェクトでの CircleCIによるコード検査 . . #circlecijp- @hgsgtk
Slide 2
Slide 2 text
© - BASE, Inc. : @hgsgtk ⾃⼰紹介 東⼝ 和暉 ( Higashiguchi Kazuki ) サーバーサイドエンジニア BASE BANK, Inc CircleCIに チョットお世話になってます
Slide 3
Slide 3 text
© - BASE, Inc. このトークで得られること • GoプロジェクトにおけるCircleCIの活⽤事例 • 「どういうチェックしてる?」 • Lint‧テスト実⾏する config.yml • 「実際、どう設定するの?」 • プロジェクトでのCircleCI活⽤⽅法振り返り知⾒ • 「こういう活⽤の仕⽅は良かった。」
Slide 4
Slide 4 text
© - BASE, Inc. お題⽬ • プロジェクトにおけるCircleCI利⽤の全体像 • コード検査を⾏うための config.yml の中⾝ • CircleCIを利⽤したプロジェクトの振り返り
Slide 5
Slide 5 text
© - BASE, Inc. プロジェクトにおけるCircleCI利⽤の全体像 https://devblog.thebase.in/entry/ / / /
Slide 6
Slide 6 text
© - BASE, Inc. プロジェクトにおけるCircleCI利⽤の全体像 https://devblog.thebase.in/entry/ / / / このトークの スコープ
Slide 7
Slide 7 text
© - BASE, Inc. 全体像 .circleci/config.yml (コード検査部分)
Slide 8
Slide 8 text
完全に理解 しましたね?
Slide 9
Slide 9 text
© - BASE, Inc. 全体像 .circleci/config.yml (コード検査部分) . 依存パッケージ解決 . フォーマットチェック . Lintチェック . ビルド‧テスト . 循環複雑度計測
Slide 10
Slide 10 text
© - BASE, Inc. 1. 依存パッケージ解決 • Goの依存パッケージ関係 解決に Go Modules を利 ⽤ • See also: https://circleci.com/ blog/go-v . -modules-and- circleci/ • circleci/golang >= . . を利⽤ • Go . MODULE = “on”
Slide 11
Slide 11 text
© - BASE, Inc. 2. フォーマットチェック • `go fmt`でフォーマット チェック • ※ 依存パッケージ解決にて vendor ディレクトリが作成される場合は vendorは除く設定が必要。 • `go fmt`の結果をstderrへ
Slide 12
Slide 12 text
© - BASE, Inc. . Lintチェック • `golangci-lint run`の結果をstderrへ • golangci-lint を利⽤ • GolangCI-Lint is a linters aggregator • See also: https://github.com/ golangci/golangci-lint
Slide 13
Slide 13 text
© - BASE, Inc. . Lintチェック - golangci-lintのconfig • 設定 .golangci.yml • 複数のチェックツールを まとめて実⾏することが できる
Slide 14
Slide 14 text
© - BASE, Inc. 4. ビルド‧テスト • `go build`にてビルド • ビルドができるかをチェッ クする • `go test`にてテスト go test -p -race -cover ./...
Slide 15
Slide 15 text
© - BASE, Inc. 5. 循環複雑度計測 • 循環複雑度とは • ソフトウェ測定法の⼀つ • プログラムの複雑度を測 る • fzipp/gocyclo を利⽤した 循環複雑度計測 • See also: https://github.com/ fzipp/gocyclo
Slide 16
Slide 16 text
© - BASE, Inc. CircleCIを利⽤したプロジェクトの振り返り • CIが開発者にGo流を教えてくれる • コードを書く前にlint‧テストを設定した • チェックツールの追加に対する変更が発⽣ • golangci-lintは途中から⼊れた • (※ go vet/go importsと⼊れ替え) • 最初は思いつく限り多めに⼊れて、外していくのが いいと思う
Slide 17
Slide 17 text
© - BASE, Inc. 余談:デプロイパイプランについて知りたい⽅は https://devblog.thebase.in/entry/ / / /
Slide 18
Slide 18 text
© - BASE, Inc. 余談:デプロイパイプランについて知りたい⽅は https://devblog.thebase.in/entry/ / / / 「CircleCIとecspressoによるECSへのデプロイメントパイプライン」 https://devblog.thebase.in/entry/ / / /
Slide 19
Slide 19 text
Thanks