Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Sonar for Bitbucketを試してみた~全チームのコード品質をあげるために~
Search
NAVITIME JAPAN
PRO
June 27, 2019
Technology
0
110
Sonar for Bitbucketを試してみた~全チームのコード品質をあげるために~
2019/06/27開催された「第32回 Tokyo Atlassian ユーザーグループ at NAVITIME」にて発表した資料です。
NAVITIME JAPAN
PRO
June 27, 2019
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
23
15k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
670
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
220
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2.8k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.5k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
340
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.5k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.3k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
7
5.6k
Other Decks in Technology
See All in Technology
対話型音声AIアプリケーションの信頼性向上の取り組み
ivry_presentationmaterials
3
1.1k
「現場で活躍するAIエージェント」を実現するチームと開発プロセス
tkikuchi1002
3
380
LIXIL基幹システム刷新に立ち向かう技術的アプローチについて
tsukuha
1
380
Transformerを用いたアイテム間の 相互影響を考慮したレコメンドリスト生成
recruitengineers
PRO
2
440
アクセスピークを制するオートスケール再設計: 障害を乗り越えKEDAで実現したリソース管理の最適化
myamashii
1
670
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
400
SREのためのeBPF活用ステップアップガイド
egmc
2
1.3k
[SRE NEXT] ARR150億円_エンジニア140名_27チーム_17プロダクトから始めるSLO.pdf
satos
5
3k
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
110
三視点LLMによる複数観点レビュー
mhlyc
0
230
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
3
1.5k
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
1
670
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Faster Mobile Websites
deanohume
308
31k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
BBQ
matthewcrist
89
9.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
It's Worth the Effort
3n
185
28k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
How GitHub (no longer) Works
holman
314
140k
The Cult of Friendly URLs
andyhume
79
6.5k
Transcript
CONFIDENTIAL ©NAVITIME JAPAN Sonar for Bitbucketを 試してみた ~全チームのコード品質をあげるために~ 株式会社ナビタイムジャパン 佐藤
裕也
CONFIDENTIAL ©NAVITIME JAPAN 佐藤 裕也 ツール導入 / 運用 / サポート
グロースハック アジャイル推進
CONFIDENTIAL ©NAVITIME JAPAN こんなことありませんか?
CONFIDENTIAL ©NAVITIME JAPAN こんなことありませんか? レビューでの指摘が大変 ex)コード重複、nullチェック 1か月後…. 静的解析ツールを導入してみたけど 使わなくなった
CONFIDENTIAL ©NAVITIME JAPAN こんなことありませんか? レビューでの指摘が大変 ex)コード重複、nullチェック 1か月後…. 静的解析ツールを導入してみたけど 使わなくなった Sonar
for Bitbucket が 解決してくれます
CONFIDENTIAL ©NAVITIME JAPAN アジェンダ • Sonar for Bitbucketとは? • 何故導入しようと考えたのか?
• 試してみる • システム構成 • (超えていない)3つの壁 • パイロットでやってみて • まとめ
Sonar for Bitbucketとは
CONFIDENTIAL ©NAVITIME JAPAN Sonar とは 静的解析ツールです。 コード品質の可視化やバグを誘発しそうなコードの指摘等を行ってくれます。
CONFIDENTIAL ©NAVITIME JAPAN Sonar とは 静的解析ツールです。 コード品質の可視化やバグを誘発しそうなコードの指摘等を行ってくれます。 バグ/障害の防止 リファクタリング目標の数値化 エンジニアのモチベーション向上
CONFIDENTIAL ©NAVITIME JAPAN Sonar for Bitbucket とは Sonarの結果をBitbucketに表示させるプラグインです。
何故導入しようとしたのか
CONFIDENTIAL ©NAVITIME JAPAN 導入理由その1 全社的に品質を上げたい リファクタ したいな でも効果が みえにくいな… また
ヒアリハット!! レビュー多い…
CONFIDENTIAL ©NAVITIME JAPAN 導入理由その1 Sonar をみんなに使ってもらえば解決できそうだが….
CONFIDENTIAL ©NAVITIME JAPAN 導入理由その2 Sonarを導入しても廃れる懸念が... 1か月後….
CONFIDENTIAL ©NAVITIME JAPAN 導入理由その2 こんなものがあれば….
CONFIDENTIAL ©NAVITIME JAPAN 導入理由 そう、Sonar for Bitbucketです
試してみる
CONFIDENTIAL ©NAVITIME JAPAN 簡易システム構成 ①フック ②実行 ③解析結果 Bamboo等、 よく使うCIツールでOK 自前で用意
Sonar for Bitbcuket公式サイト 推奨のプラグイン
CONFIDENTIAL ©NAVITIME JAPAN 3つの壁 Jenkinsにパラメータが渡らない クローンURLを冗長化できない SonarとBitbucketの権限を同期できない
CONFIDENTIAL ©NAVITIME JAPAN 3つの壁 Jenkinsにパラメータが渡らない クローンURLを冗長化できない SonarとBitbucketの権限を同期できない
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない ①フック ②実行 ③解析結果
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC ・プロジェクトキー ・リポジトリキー ・ブランチ名
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC ・プロジェクトキー ・リポジトリキー ・ブランチ名
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC Sonar 実行ジョブ Sonar 実行ジョブ
CONFIDENTIAL ©NAVITIME JAPAN 3つの壁 Jenkinsにパラメータが渡らない クローンURLを冗長化できない SonarとBitbucketの権限を同期できない
CONFIDENTIAL ©NAVITIME JAPAN クローンURLを冗長化できない ①フック ②実行 ③解析結果
CONFIDENTIAL ©NAVITIME JAPAN クローンURLを冗長化できない ①フック ②実行 ③解析結果 ①’取得 厳密には…
CONFIDENTIAL ©NAVITIME JAPAN ①’取得 クローンURLを冗長化できない ①フック ②実行 ③解析結果 厳密には…
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC ①’取得 ①’取得 ①’取得
CONFIDENTIAL ©NAVITIME JAPAN Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC ①’取得 ①’取得 ①’取得 ①フック ②実行
CONFIDENTIAL ©NAVITIME JAPAN ①’取得 ①’取得 ①’取得 Jenkinsにパラメータが渡らない Sonar 実行ジョブ リポジトリA
リポジトリB リポジトリC リポジトリA リポジトリB リポジトリC
CONFIDENTIAL ©NAVITIME JAPAN クローンURLを冗長化できない Sonar 実行ジョブ リポジトリA リポジトリB リポジトリC リポジトリA
リポジトリB リポジトリC Sonar 実行ジョブ Sonar 実行ジョブ ①’取得 ①’取得 ①’取得
CONFIDENTIAL ©NAVITIME JAPAN 3つの壁 今お話しした2つの壁、昨日乗り越えました!
CONFIDENTIAL ©NAVITIME JAPAN 昨日乗り越えた壁 ①フック ②実行 ③解析結果
CONFIDENTIAL ©NAVITIME JAPAN 昨日乗り越えた壁 ②実行 ③解析結果 ①フック
CONFIDENTIAL ©NAVITIME JAPAN 昨日乗り越えた壁 Sonar 実行 ジョブ リポジトリA リポジトリB リポジトリC
リポジトリA リポジトリB リポジトリC ・プロジェクトキー ・リポジトリキー ・ブランチ名 自作 スクリプト payloadを解析 デフォルトの 機能でフック
CONFIDENTIAL ©NAVITIME JAPAN 3つの壁 Jenkinsにパラメータが渡らない クローンURLを冗長化できない SonarとBitbucketの権限を同期できない
CONFIDENTIAL ©NAVITIME JAPAN SonarとBitbucketの権限を同期できない
CONFIDENTIAL ©NAVITIME JAPAN SonarとBitbucketの権限を同期できない read read
CONFIDENTIAL ©NAVITIME JAPAN SonarとBitbucketの権限を同期できない read read
CONFIDENTIAL ©NAVITIME JAPAN SonarとBitbucketの権限を同期できない read read まずは閲覧制限のないリポジトリのみ
CONFIDENTIAL ©NAVITIME JAPAN 壁を乗り越えて...
CONFIDENTIAL ©NAVITIME JAPAN 解析サマリの表示
CONFIDENTIAL ©NAVITIME JAPAN プルリクの解析(Sonarのdeveloper editionが必用)
パイロットでやってみて
CONFIDENTIAL ©NAVITIME JAPAN パイロットでやってみて 早く本格導入して欲しいという声がちらほら Sonarの活用方法をまとめる必要あり →何か表示されているで終わってしまう
CONFIDENTIAL ©NAVITIME JAPAN まとめ • Sonar for Bitbucketではコード品質をBitbucket上に可視化できる • コード品質を可視化できると工数削減やモチベーションアップなど様々
なメリットがある • 乗り越えるべき壁はまだある • 運用の簡略化(jenkinsへのパラメータ渡し、クローンURLの冗長化) • Sonar活用方法の展開
CONFIDENTIAL ©NAVITIME JAPAN ありがとうございました!