メモ置き場

いろんなメモを置いておく場所。自分用ですが、誰かの助けにもなるかも。

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を使おう」とだけ決めており、下記については決めなかったせいで、いろいろと混乱してしまった。

  1. どの単位でbranchを作るか?
  2. どの単位でcommitするか?
  3. どの単位でpushするか?
  4. branch名に規約を作るか?
  5. commitメッセージに規約を作るか?

というのも、今回のツール開発は

  • 複数人で作業を実施する
  • 対面で話す機会が少ない
  • ほぼ全員が未経験者

という事情があったので、「Aはこうやってたけど、Bはこうやってた、じゃあ私はどうやればいいの?」と疑問に思っても、相談しにくい環境だった。
また、開発初期は「Aが担当する機能Xを実装しないと、Bが担当する機能Yを実装できない。機能Yを実装しないと、Cが担当する機能Zが実装できない」ということも起こった。(今にして思えば、作業分担をもっとしっかり検討するべきだったが、素人集団にはそこまで考慮できていなかった)

作業のルール化

開発も中盤になり、細かい機能の実装が作業の中心になってきたこと、作業者が小慣れてきたことなどから、前記1〜3については下記のとおりルールを決めた。

  1. どの単位でbranchを作るか?
    • 実装する機能の単位。
  2. どの単位でcommitするか?
    • 作業の区切りが良いとき。(全テストがpassしていること。どうしても通らない場合はpendingやコメントアウトで。)
  3. どの単位でpushするか?
    • commitと同じタイミング。


ルールは決まったが、まだ課題はあった。それは次回。