全RailsエンジニアはいますぐWritebookをダウンロードすべき
こんにちは、みてねコールドクターでエンジニアマネージャーをしている遠藤です。
タイトルは煽りすぎました、すみません…。
Railsアプリケーション開発において、ベストプラクティスに頭を悩ませる機会は少なくないと思います。
今回は、そんな皆様にぜひおすすめしたいプロダクト、writebook
をご紹介します。
Writebookとは
writebook
は、Ruby on Railsの作者であるDHHが率いる37signalsが開発した、self-hosted型のオンラインブック作成ツールです。現在、無償でダウンロードすることが可能です。
Writebookをおすすめする理由
writebook
を推薦する理由は以下の3点です。
- 37signals製であること: 開発元が37signalsであるということは、同社内で実践されているベストプラクティスに則っている可能性が高いと考えられます。
- 小規模なプロダクトであること: コードベースが小さく、全体像を容易に把握できるため、Railsアプリケーション設計の思想を理解するのに役立ちます。
- ソースコードの改変が許可されていること: ライセンス上、ソースコードの改変が認められているため、学習目的で自由にコードを修正し、動作を確認することができます。
DHH流コントローラーとroutesの書き方
コントローラーとroutesの設計は、Rails開発者にとって常に議論の的となるテーマです。DHHは、コントローラーにはCRUDアクション(index
, show
, new
, edit
, create
, update
, destroy
)のみを使用することを推奨しています。writebook
のコードを検証すると、まさにこの原則が忠実に守られていることが分かります。
インターネット上にはroutes.rb
の記述方法に関する推測に基づいた記事が多く見られますが、writebook
では実際のコードを確認することができます。
resource :user do
scope module: "users" do
resource :activation, only: :create
end
end
※ コードは一部改変しています。
resource
、scope
、module
を効果的に活用することで、簡潔で分かりやすいルーティングを実現しています。
モデルの書き方
writebook
のモデル実装も特徴的です。機能ごとにモジュール化されており、include
を用いて各モデルに必要な機能を組み込む設計になっています。
class User < ApplicationRecord
include Accessible
end
※ コードは一部改変しています。
include
を活用することで、モデルのコードが簡潔になり、可読性が向上します。これは、しばしば問題となるFat Modelへの対策として有効なアプローチと言えるのではないでしょうか?
中にはinclude
のみで構成されるモデルも存在し、徹底したモジュール化による責務の明確化と保守性の向上が図られています。
まとめ
model、controller、routingを紹介しましたが、helperなど、他にも参考になるコードが多数含まれています。writebook
をダウンロードし、コードを直接確認することで、特に初級〜中級者の方にとって、Railsアプリケーション開発のベストプラクティスを学べると思います。
その他
37signalsは、Campfireという有料のチャットアプリケーションも提供しています。writebook
よりもさらに実践的なコードが含まれている可能性があるため、興味のある方はぜひご確認ください。
※ 個人的にはまだ見たことがないため推測です。
writebook
はこちらからダウンロード可能です。
Railsのベストプラクティスに課題を感じているRailsエンジニアの皆様、writebook
を通してDHH流のRailsアプリケーション開発を学び、新たな知見を獲得してみてはいかがでしょうか。
Discussion