Ruby on RailsによるWebアプリ開発記(02)
前回
Ruby on RailsによるWebアプリ開発記(01) - メモ置き場
Ruby On Railsって何?そもそもRubyって何?
という疑問がまずあったので、「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」でお勉強。
のそれぞれの基本は学べた。ただし、解説は執筆時点のバージョンで行われている。一部、最新バージョンでは別の書き方をするものもあるので、そのへんは注意が必要。
まだまだ謎は多かったが、疑問が発生したらその都度調べれば良いと判断したため、作業に着手することにした。
GitHub Flowって何?
ソースコード管理にGitHubを使用することにしたため、開発手法もGitHub Flowというものを使用することになった。解説サイトは多数存在するが、個人的にもっともわかりやすいと思ったのが「Github-flowを分かりやすく図解してみた - pyar.bz」。
開発当初、「GitHub Flowを使おう」とだけ決めており、下記については決めなかったせいで、いろいろと混乱してしまった。
- どの単位でbranchを作るか?
- どの単位でcommitするか?
- どの単位でpushするか?
- branch名に規約を作るか?
- commitメッセージに規約を作るか?
というのも、今回のツール開発は
- 複数人で作業を実施する
- 対面で話す機会が少ない
- ほぼ全員が未経験者
という事情があったので、「Aはこうやってたけど、Bはこうやってた、じゃあ私はどうやればいいの?」と疑問に思っても、相談しにくい環境だった。
また、開発初期は「Aが担当する機能Xを実装しないと、Bが担当する機能Yを実装できない。機能Yを実装しないと、Cが担当する機能Zが実装できない」ということも起こった。(今にして思えば、作業分担をもっとしっかり検討するべきだったが、素人集団にはそこまで考慮できていなかった)
作業のルール化
開発も中盤になり、細かい機能の実装が作業の中心になってきたこと、作業者が小慣れてきたことなどから、前記1〜3については下記のとおりルールを決めた。
- どの単位でbranchを作るか?
- 実装する機能の単位。
- どの単位でcommitするか?
- 作業の区切りが良いとき。(全テストがpassしていること。どうしても通らない場合はpendingやコメントアウトで。)
- どの単位でpushするか?
- commitと同じタイミング。
ルールは決まったが、まだ課題はあった。それは次回。