さてさて、最近、私は新しく開発するプロダクトについてはすべてRuby on Railsを使って開発を行うようになりました。
半年前まではCakePHPをメインで使っていたのですが、すっかりRailsに乗り代わってしまいました。
元々、受けている受託開発はCakePHPで行っておりました。EC-CUBEもPHPなので、そういった意味でもCakePHPは扱いなれていました。
しかし、あるエンジニアの方に生産性を考えたらRailsのほうが絶対にいいとの助言をいただき、元々、Railsは気になっていたのもあり、ある新規プロジェクトをRailsで開発を行うことにしました。
元々CakePHPもRailsに影響を受けて作られたフレームワークなので似ている部分もかなりあります。
モデルのアソシエーションや「設定よりも規約」という考え方も共通していて、割りとすんなり行くのではと想定してました。
しか〜し、これが飛んだ思い違いで、開発が全然進みません。。。単純なCRUDはなんとかなるのですが、ちょっと複雑になると、途端に開発スピードがダウンしてしまいます。
CakePHPでやっていた手法を使ってやろうとしても、うまく行かなかったり、ググっても、特定の知識は出てくるのですが、それを応用した設計手法などはなかなか出てきません。
ここでCakePHPとRuby on Railsは似て非なるものと気づきました。
途中でRailsにしたのは失敗だったかもと頭によぎったのですが、ここで後戻りはできません。
ということで私は一旦、プロジェクトをストップして、一冊のRails本をいちから読み直すことを始めました。
それがこちらです。私は主に業務的なシステムを作ることが多いので、こちらの本は顧客管理システムを作ることを想定したサンプルプロジェクトを掲載していたので、この本を一通りやってみることにしました。実は結果的にこれが大正解でした。
とりあえず、この本を一通り読んで理解し、その上で、今度は実際にこの本に載っている顧客管理システムのプロジェクトを全て
写経し、同じプログラムを作りました。
説明を読みつつ、コードを書き、分からない部分は更にググるなどして、理解を深めつつ写経を進めて行きました。
で、とりあえず一通りプログラムが完成し、一通り終わった段階で、今度は中断したプロジェクトを再開しました。
すると、どうでしょう。今までなかなか進まなかった開発がサクサク進んでいきます。あ、このパターンはあのサンプルのこの部分だよね、とか、ここはあの部分の応用だな、など今まで全然分からなかった部分がすんなり進んでいきます。
これは正直自分でも驚きました。写経の効果は効果絶大でした。その後も、ググった情報なども理解するスピードも格段に上がり、開発がとてもスムーズに進んでいくようになりました。
現在では、CakePHPで開発を行うよりもRuby on Railsのほうが早くできるようになっています。
もし、Ruby on Railsを今後はじめてみようと思う方は是非、一冊Rails本を購入し写経してみてください。かなりレベルアップしますのでお勧めです。