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
130
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
16k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
930
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
260
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
3.2k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.8k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
400
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.8k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.5k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
8
5.9k
Other Decks in Technology
See All in Technology
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
130
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
Agent Skils
dip_tech
PRO
0
140
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
370
AWS Network Firewall Proxyを触ってみた
nagisa53
1
250
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
540
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
640
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
100
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
The agentic SEO stack - context over prompts
schlessera
0
650
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
67
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Accessibility Awareness
sabderemane
0
58
Navigating Team Friction
lara
192
16k
エンジニアに許された特別な時間の終わり
watany
106
230k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Are puppies a ranking factor?
jonoalderson
1
2.7k
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 ありがとうございました!