分ソースコードのバージョン管理システムはソフトウェア開発に欠かせないツールです。Server(以降,Bitbucket)を取り上げます。レビューして記録する私たちがBitbucketをお勧めする理由の1つがプルリクエスト機能です。ソフトウェアの品質を高める活動の1つにコードレビューがあります。その効果やメリットをわかっていたとしても,レビューのためのしくみが整備されていないと実行は容易ではありません。レビューのたびにソースコードを紙に印刷したり,レビューのための時間と会議室を確保したり,レビューの記録を帳票として残したりと,組織によってさまざまな工夫をしていることと思います。してプログラマはこの手の作業が苦手なものです。そこでBitbucketの出番です。Bitbucketのコードレビューは画面上で行います。Gitを使った開発では,機能の追加や不具合の修正のたびにブランチを作り(図1⁠)⁠,コードを修正したあとで分岐元にマージを行って開発を進めていきます。Bitbucketでは,マージするための承認プロセスをプルリクエストという機能で提供しています。ブランチの作成プルリクエストの画面では,ソースコードの差分やコミットの履歴を確認できます。レビュアは修正内容を確認し,問題がなければ承認を行います(図2⁠)⁠。コードには1行ごとにコメントを付けることができるので,画面上でコメントを追加してエンジニアどうしで議論を重ね,コードの品質を高めていくことができます。レビューの記録はBitbucketに残るため,レビューの履歴として後日活用することも考えられるでしょう。プルリクエストこれらの活動はオンラインでできますが,人間どうしで直接会話したほうがよいと感じた場合には,チャットやフェイストゥフェイスで会話し,その内容をJIRAやBitbucketに記録として残しておくことでさらに良いコードレビューになるでしょう。筆者も,コードを読んで理解できないときにはチームのメンバーに直接話を聞いて納得したうえで承認ボタンを押すということがよくあります。マージには前提条件を設定でき,「⁠2名以上のレビュアが承認していること」や「ビルドが成功していること」といった条件を指定できるので,プルリクエストのフローを厳格に規定することもできるようになっています(図3⁠)⁠。プルリクエストの条件設定その他の便利な使い方プルリクエストは必ずしもマージを目的とする必要はありません。Progress)プルリクエスト」と呼ばれるプラクティスを紹介します。「実験的なコードをメンバーに共有したい」「⁠現在自分が取り組んでいる仕事についてメンバーからアドバイスをもらいたい」といったとき,「⁠WIP」という名前のプルリクエストを作成します(図4⁠)⁠。このプルリクエストを見たメンバーは,改善案をコメントとして付けたり,意見や感想をお互いに交わしたりします。このプラクティスは,チームの士気向上やソースコードのリファクタリングにもつながると考えています。WIPプルリクエストマージが目的ではないというよりも,むしろマージしてはいけないプルリクエストです。まれに「WIP」という名前を見落として,誤ってマージしそうになってしまうことがあるのが難点です。これを防ぐ改善点を目下検討中です。おわりに開発者にとって,日ごろ使い慣れた道具を変えることは大きなストレスであり,コストでもあります。GitやBitbucket,JIRAを活用することが,そのデメリットを補って余りあるパワーを与えてくれると筆者たちは考えています。一気にすべてを変える必要はありません。新しく始まるプロジェクトのソースコードや,開発の傍らで作成するちょっとしたツール群など,気軽に始められるところから小さく始めてみてはいかがでしょうか。Bitbucketのクラウド版であれば5ユーザまではなんと0ドル,オンプレミス版であれば10ユーザ10ドルから始めることができます。導入にあたってご不明な点や技術的サポートは,Atlassianプラチナソリューションパートナーであるリックソフトにいつでもお気軽にお問い合わせください。日本だけでなく,アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは,各アトラシアン製品の体験版を提供しているほか,アトラシアン製品専用のコミュニティも運営しています。アクセスしてみては!https://www.ricksoft.jp/リックソフトJIRAデモ環境https://www.ricksoft.jp/demo/※本連載の過去記事はページ下のバックナンバーよりご覧になれます。バージョン管理システム著者プロフィール廣田隆之(ひろたたかゆき)開発ツール好きが高じてリックソフトへ参加。主たる業務はインフラ,開発,コンサルなど。ソフトウェア開発の明日のために幅広く手を広げている毎日。好きな将棋の駒は「桂馬」。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。