Submit Search
Upload
Bitbucketを活用したコードレビュー改善事例
•
3 likes
•
5,962 views
K
Kosuke Ito
Follow
2016/9/27 第19回 Tokyo Atlassian ユーザーグループ
Read less
Read more
Technology
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Recommended
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
async/await のしくみ
async/await のしくみ
信之 岩永
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
こわくない Git
こわくない Git
Kota Saito
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
政雄 金森
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
マジセミ by (株)オープンソース活用研究所
More Related Content
What's hot
async/await のしくみ
async/await のしくみ
信之 岩永
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
こわくない Git
こわくない Git
Kota Saito
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
What's hot
(20)
async/await のしくみ
async/await のしくみ
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
こわくない Git
こわくない Git
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Similar to Bitbucketを活用したコードレビュー改善事例
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
政雄 金森
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
マジセミ by (株)オープンソース活用研究所
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
Takashi Watanabe
OSSではじめるオープン・スタンダードのクラウド @201304
OSSではじめるオープン・スタンダードのクラウド @201304
Shinichiro Arai
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
Amazon Web Services Japan
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
Amazon Web Services Japan
企業組織論としてのオープンイノベーション
企業組織論としてのオープンイノベーション
Osaka University
ERPのデータをフロントシステムでどう活かすか
ERPのデータをフロントシステムでどう活かすか
Ryuji Enoki
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
Insight Technology, Inc.
Cloud Native市場動向およびRancher Labsが提供するKubernetes Everywhere戦略について
Cloud Native市場動向およびRancher Labsが提供するKubernetes Everywhere戦略について
Junji Nishihara
20161111 java one2016-feedback
20161111 java one2016-feedback
Takashi Ito
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
Takahiro Imanaka
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
アトラシアン株式会社
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
Developers Summit
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
Amazon Web Services Japan
Okinawa Open Daysでの講演(OpenStackトレーニングなど)
Okinawa Open Daysでの講演(OpenStackトレーニングなど)
Satoshi Konno
20131212 morphlabs okinawa_presentation
20131212 morphlabs okinawa_presentation
saktomshu
いまさら聞けない Amazon EC2
いまさら聞けない Amazon EC2
Yasuhiro Matsuo
AWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティス
Amazon Web Services Japan
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev ops
裕貴 荒井
Similar to Bitbucketを活用したコードレビュー改善事例
(20)
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
OSSではじめるオープン・スタンダードのクラウド @201304
OSSではじめるオープン・スタンダードのクラウド @201304
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
企業組織論としてのオープンイノベーション
企業組織論としてのオープンイノベーション
ERPのデータをフロントシステムでどう活かすか
ERPのデータをフロントシステムでどう活かすか
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
Cloud Native市場動向およびRancher Labsが提供するKubernetes Everywhere戦略について
Cloud Native市場動向およびRancher Labsが提供するKubernetes Everywhere戦略について
20161111 java one2016-feedback
20161111 java one2016-feedback
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
Okinawa Open Daysでの講演(OpenStackトレーニングなど)
Okinawa Open Daysでの講演(OpenStackトレーニングなど)
20131212 morphlabs okinawa_presentation
20131212 morphlabs okinawa_presentation
いまさら聞けない Amazon EC2
いまさら聞けない Amazon EC2
AWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティス
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev ops
Bitbucketを活用したコードレビュー改善事例
1.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by Bitbucket を活用したコードレビュー改善事例 2016/09/27 ウルシステムズ株式会社 伊藤 昂祐
2.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 自己紹介 いとう こうすけ 伊藤 昂祐 kosuke.ito@ulsystems.co.jp ウルシステムズ株式会社 https://www.ulsystems.co.jp/ インターネット広告事業会社の開発支援中 社内では、アジャイル推進活動中 認定スクラムマスタ スノボとスープカレーを愛する
3.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 2 アジェンダ 1. プロジェクト紹介とインターネット広告の進歩について 2. Bitbucket を活用したコードレビュー改善事例
4.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 3 プロジェクト紹介とインターネット広告の 進歩について
5.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 プロジェクト紹介 クライアント – ソネット・メディア・ネットワークス株式会社様 主な事業内容 – DSP事業 Logicad を提供 RTBを活用した広告配信最適化 機械学習・人工知能を活用したDMPによる広告配信精度の向上 プロジェクト支援概要 – DSP/RTBシステム開発支援 – 使用しているAtlassian製品は Confluence, Jira, Bitbucket
6.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 いろいろなインターネット広告 バナー広告 検索連動型 広告 アプリ広告 動画広告 ネイティブ広告
7.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6 インターネット広告の進歩 Webサイト運営者 広告主 商品を世の中に広めたい 多くの見込み客に広告を出 したい 自社メディア(Webサイト) で収益をあげたい 広告業界における双方の欲求
8.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 インターネット広告の進歩 純広告 AD 広告代理店 Webサイト運営者 広告主 広告主が期間・Webサイトを選び、広告を掲載する
9.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 8 インターネット広告の進歩 アドネットワーク 広告代理店 広告主 多数のWebサイト上で広告配信する仕組み Webサイトの特性に合わせたターゲティングも可能 AD AD Webサイト運営者 AD Webサイト運営者 Webサイト運営者 アドネットワーク
10.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 9 インターネット広告の進歩 アドエクスチェンジ 広告代理店 広告主 アドネットワーク同士で広告枠を融通する AD Webサイト運営者 アドネットワーク AD AD AD アドエクスチェンジ アドネットワーク
11.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 10 インターネット広告の進歩 SSP・DSP・RTB 広告代理店 広告主 SSP(Supply Side Platform) – 広告枠の価値を最大化 DSP(Demand Side Platform) – 広告主の利益を最大化 RTB(Real Time Bidding) – リアルタイムで広告の競争入札する仕組み AD Webサイト運営者 アドネットワークAD AD AD AD AD アドエクスチェンジ DSPSSP RTB
12.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 11 RTBの流れ AD ID=XYZ SSP事業者 DSP3 DSP2 DSP1 WebサイトA WebサイトA に、XYZさんが来ました。 誰か広告を出したい方いませんか? 1円 2円 3円 WIN PVから広告表示まで 0.1秒(100ミリ秒)で広告オークショ ンが行われる
13.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 12 インターネット広告の進歩 DMP 広告代理店 広告主 AD Webサイト運営者 アドネットワークAD AD AD AD AD アドエクスチェンジ DSPSSP RTB データマネジメントプラットフォーム オーディエンスデータを蓄積・分析して広告配信に活用 DMP
14.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 13 DSP/RTB事業のシステム開発を行うにあたって 業界は急速に進歩していて、新機能を素早く開発することが 求められている 広告配信は24時間365日行われているため、可用性が高く高 品質なシステムが求められている RTB入札の性能要求が厳しく、継続的な性能改善が求められ る
15.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 14 Bitbucket を活用した コードレビュー改善事例
16.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 15 コードレビューの目的は、ただコードの誤りを修正 するだけではありません。重要なのは、チーム全員 に同じ知識を共有させること、またコーディングに おいて全員が守るべきガイドラインを確立すること です。コードレビューを成功させるために最も有効 な方法は、レビューを楽しいものにすることです。 by Mattias Karlsson 「プログラマが知るべき97のこと」より
17.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 16 プロジェクトの前提 背景 – SVN から Git へ移行を行い、その後の運用についての話です リポジトリ管理 – Bitbucket(Git) を使用 チーム – チームは 5±2人で運用 – チームの Git 経験者はゼロに近い状態 – リリース周期は 1週間~1ヶ月 – アジャイルなチームを目指したフラットな組織
18.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 17 ブランチ戦略 要求 – プロダクトの安定稼動が出来ること – 新規機能の開発を活発に行えること – バグ発生時にバージョンを容易に戻せること – 機能開発中にバグ修正を差し込めること ※ A Successful Git Branching Model より http://nvie.com/posts/a-successful-git- branching-model/ git-flow の採用 – 相反する要求を満たすブランチの運用 – メジャーリリース・マイナーリリースが混在する プロダクトに有効 – Github Flow や GitLab Flow と比較すると多少 複雑で慣れるまで時間がかかる
19.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 18 SouceTree とは https://ja.atlassian.com/software/sourcetree Atlassian 社が提供 Gitクライアントツール コマンドライン不要。GUIでリポジトリの運用可能
20.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 19 SouceTree の運用 リポジトリ操作がボタンひとつで簡単に出来る コミットツリーの参照が可能 「Git Flow」ボタンにより、git-flow に従った操作を行うよう助ける
21.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 20 SouceTree を使って良かったこと コマンドを使用することなく Gitリポジトリの 操作が容易に出来る 開発スピードを落とすことなく、git-flow の 導入と学習を進めることが出来る
22.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 21 リポジトリ管理 https://bitbucket.org/ Atlassian 社が提供 Gitリポジトリ管理ツール
23.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 22 当初のコードレビューのやり方 プルリクエ ストの作成 開発者 対面レビュー プルリクエス トのマージ 承認 レビュワー 修正が必要か コードの修正 必要 不要 開発者 説明 指摘
24.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 23 プルリクエストの作成 タイトル 説明 レビュアー タイトル・説明の入力・依頼するレ ビュアーの選択を行いプルリクエスト を作成する
25.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 24 プルリクエストの作成 説明 レビュアー タイトル プルリクエスト駆動の開発でコードレビュー が必須に
26.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 25 コードレビューの実施 インラインディスカッション – インラインコメント・メンションを使用した コミュニケーション – マークアップシンタックス コードの近くにフィードバックを書 くことで、レビュー効率アップ 横並び差分表示も可能
27.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 26 コードレビューに関する情報の表示 JIRAの課題ワークフローにレビュー中のステータスを追加 タスクかんばんの列に「レビュー中」を 追加。レビューステータスを可視化 開発ブランチの状態をひとまとめ に表示。すぐに状況の認識が可能
28.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 27 プルリクエストのマージ マージ方法 マージ条件の設定 承認者の人数・タスクの解決・ビルドの成功 を条件に設定することが出来る。 →開発者の独断で判断でマージすることを防 止する。 ブランチパーミッション 特定のブランチに対して、削除・変更を防 ぐ設定を行うことが出来る。 → git flow で開発者に許可されていない操 作を事前に防止する。
29.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 28 Bitbucket(Git)の開発作業に慣れてきたころ、 コードレビューにいくつかの問題が・・・
30.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 29 こんなコードレビューはイヤだ 何を確認すれば良いかわからない クソコードが大量発生する なかなかレビューされない レビューのコストが高すぎる コードの誤りを指摘するだけになっている
31.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 30 タイトル・説明の記載をルール化する プルリクエストの改善 1. 対面レビューは必要か • 要 or 不要を記載 • 重要度やコードの複雑度によって開発者が判断 • 直接説明したほうが、はやいものも要と判断 2. 緊急度 • 高中低 or レビュー期限をブランチ特性から記載 3. 対応内容 • プルリクエストの単位を小さくする • プルリクエストの目的を明確にする • レビューの観点を明確にする • 関連リンクを記載 説明 1. WIP(Work In Progress)の活用 2. RFC(Request For Comment)の活用 タイトル
32.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 31 コードレビューの改善 対面レビューは必要なものだけに限定して行う その代わりにインラインディスカッションの質を上げる – 誤りの指摘を書くだけではなく、気づきや質問も記載するよう啓蒙 – 意見募集の書き込み – 新しい実装方法を提案と「いいね!」の使用 – 修正・調査が必要なコメントにはタスクの作成
33.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 32 改善による変化 何を確認すれば良いかわからない →プルリクエストの説明改善でレビューポイントが明確に クソコードが大量発生する →WIP・RFC でリスクを事前につぶせるように なかなかレビューされない →プルリクエストを小さくすることでレビューが容易に レビューのコストが高すぎる →必要最低限の対面レビューをすることコスト削減 コードの誤りを指摘するだけになっている →気付きや質問を書き込むことで徐々に議論が活発に →議論の中から、知識の共有や新しいアイデアが出るように
34.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 33 現在のコードレビューのやり方 プルリクエ ストの作成 対面レビュー が必要か 開発者 対面レビュー 机上レビュー プルリクエス トのマージ 承認 レビュワー 修正が必要か コードの修正 必要 必要 不要 不要 開発者 チーム全体で双方向的 コミュニケーション 重要なものに限定して、 対面レビュー レビューに必要な情報を明確に して、円滑なレビュー実施へ
35.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 34 プラグイン連携 Slack notifications plugin – Bitbucket のイベントを Slack に通知する Webhook to Jenkins for Bitbucket – Bitbucket のイベントを Jenkins に通知する ビルド・デプロイ・ 自動テストの実行 イベントの通知結果通知
36.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 35 Slack への通知 応答性の向上 チームが知るべき情報の通知 – 障害Alert – チームの予定 – ビルドデプロイ・自動テストの結果 – タスクのイベントを通知
37.
ULS Copyright © 2011-2016
UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 36 ありがとうございました
Download now