2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2015.10.26
開発環境・ツールGithub-FlowとかWIPとか
こんにちは、KTです。
今年のMA11に無事参加することが出来ました。
今回は、その際に行ったGithubによるGithub-FlowおよびWIPといった開発手法について紹介します。
Github-Flowなんて仰々しい名前がついていますが、開発を進める上でのブランチ運用を纏めただけのものです。
具体的には
という流れで開発を行うことをGithub-Flowと呼びます。
また、Github-Flowを行う上での大前提として『masterブランチの内容は必ず常にデプロイ可能でなければならない』というルールがあります。(デプロイ出来ない修正はmasterにマージしちゃダメ。絶対。)
Github-Flowについては説明は以上ですが、この流れで開発を行うために有用なツールがGithubです。
続いて、Github上でどのようにGithub-Flowで行うかを説明します。
Githubにはプルリクエスト(Pull Request、以下PR)と呼ばれる機能があります。
ひとことで言うと「こういう機能を作ってブランチPushしといたからmasterにPullしてね」って依頼を投げる機能です(PullしてねってRequestする)
GithubのPRで便利なところは、そのPR内で変更箇所を見ることができ、更に変更箇所に対してコメントできるところです。これにより、チームメンバーの誰であってもPR内でコードレビューが可能になります。
さて、具体的に開発の流れを見ていきましょう。
1〜3.は開発者それぞれのPC上で実施し、4以降は全てGithub上で行えます。
ここで気をつけなければいけないのは、6,7.についてはGithub上で誰でもボタン一つで行えてしまうため、レビューが完了していなくてもマージしてしまうことが可能です。このため、予めマージボタンを押す人(リーダー?)を決めておいたほうがよいでしょう。
さて、ここまでGithub-Flowについて説明してきましたが、タイトルにはもう一つ用語が書いてありますね。そう、「WIP」です。
ここからはWIPについて紹介していきましょう。
WIPはWork In Progressの略です。日本語でいうと作業中とかそういった意味になります。
先程まで紹介したGithub-Flowですが、一つ欠点(とは呼べないほど小さなことですが)があります。それは、PRを投げる(=作業が完了してpushする)までレビューを受けられないことです。
「当たり前じゃん?」って感じですかね?でも考えてみてください。小さなトピックならそれでも良いかもしれないですが、複数ファイルに跨がるような大規模な作業のトピックの場合、部分部分の作業が完了する度にレビューを受けられた方が便利だと思いませんか?
トピックが複数のやること(ToDO)を持つような場合に、小分けにしてToDO毎にPushしてレビューを受けられるような運用方法をWIPと言ったりします。
WIPは運用方法であり、Githubにそれを実現する機能はありません。そのため、WIPを実現するには、
というように、WIPを他の人に示すようなルールを敷くことで実現します。
4〜5.でToDO毎にどのようなコミットをしたかが変更履歴として見えるため、作業者はToDOを消化しつつ、他の人は既にPushされている変更履歴をレビューする。といった並行作業が可能になります。
4.でPR内にToDOを並べると書きましたが、GithubのPRの本文はmarkdownで書けるため、
- [ ] ToDO1 - [ ] ToDO2 - [ ] ToDO3
のように記載すると、チェックボックスでToDOを並べることが出来ます。おわったToDOにチェックを付けるようにすれば、他の人にも進捗が分かりやすくていいですね。
※ なお、2.で空コミットを作ってPushするとありますが、初回のToDOコミット時にPRを作っても問題ありません(というかそちらの運用の方が多いと思います)。あくまで1つのPR内で複数のToDOがある場合に小分けにPushして都度レビューしてもらうことが目的となります。
以上、でわでわ。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索