モダンな開発手法を学びたくて『GitHub実践入門』を読んでみました。実際に手を動かして、手法を学べるようにサンプルのレポジトリを筆者の方が用意してあったりと、とても読みやすい本でした。
コードレビューを必ず行うことでソフトウェアの品質をしっかりと管理することができつつ、チームのレベルもこのおかげでどんどん上がっていきそう。早く実際に経験しよう。
あとで読み返す時のためのメモ。
1章
1章は GitHub に関して。Git と GitHub の違いなので本当に基本的なことから始まり、GitHub が考える GitHub やソーシャルコーディングの魅力が述べられています。企業でGitHubを使用した開発方法を実践していれば、企業外でオープンソースのプロジェクトに参加しようと思った時にも何の抵抗もなく貢献できます。また、オープンソースに積極的に参加しているような凄腕エンジニアたちが、企業に参加した場合にも、彼らに企業特有の余分な学習コスト少なくなるというのは魅力的です。
2章
2章は、Gitに関して。ここではSubversionのような集中型とGitのような分散型の簡単な説明、またGitのインストール方法と簡単な初期設定が説明されています。
3章
3章は、GitHubの登録、SSHの登録、新しくデモ用のレポジトリの作成。
4章
4章は、基本的なGitの使い方がまとめられています。とても丁寧にまとめられていて分かりやすいです。本当に基本的なログの確認方法や実際にファイルを作成した後、コミットをするようなことから始まります。ブランチを使用した管理方法も丁寧に触れられています。Gihutbへのプッシュ、第三者の変更をローカルに取り組むことまでよく解説されています。
5章
5章は、本格的にGitHubの解説。GitHubのあらゆるページや機能を網羅的に解説しています。もし、なんのためにある機能なのか分からない場合はこのページを見ると分かるかも。
6章
6章は、PRの方法。実際に筆者が用意してくれているレポジトリをフォークし、作業用のブランチを作成し、コードを変更後PRを作成する手順が説明されています。また実際の開発現場でよく使用されるPRを開発段階で作成するという作法の説明や、リモートのリポジトリの変更を自分のリポジトリに反映させる方法も解説されている。
7章
7章は、PRが送られてきた時に、安全にマージする方法が丁寧に書かれています。GitHubでボタンひとつでマージもできますが、その前にローカルで変更内容を再現してテスト等してからマージという方法が重要です。また、これらのコードマネジメントスキルを伸ばすには経験を積むしかないということです。自分でブランチを分けて、自分でPRを送る等してこのスキルを伸ばしていこうという提案がなされています。
8章
8章は、GitHubに関連したサービスを紹介しています。まずは、hub。これはコマンドラインツールでgitとGitHubを便利にしてくれます。Travis CIの紹介。Coverallというテストカバレッジのレポートを詳細に得ることができるサービス。Gemnasiumというライブラリのバージョンを監視してくれる。Code Climateというコードの品質を監視してくれるサービス。Rubyにのみ現在は対応。Jenkins。PRを起点として自動でテストを実行し、テスト結果を通知してくれる設定を解説しています。
9章
9章は、GitHubを使用した開発フローを実際に細かく解説してくれている。GitHub Flowという常にデプロイし、作業は新しくブランチを作成し、定期的にpushし、PR、レビューといった流れ。また、オランダのエンジニアの Vincent Drissenという方が提唱したGit FlowというGitのマネジメントの方法も詳しく述べられている。
10章
10章は、企業で使用していく中でのメリットや、考慮して置くべき点について述べられている。