😊

全RailsエンジニアはいますぐWritebookをダウンロードすべき

2024/10/31に公開

こんにちは、みてねコールドクターでエンジニアマネージャーをしている遠藤です。
タイトルは煽りすぎました、すみません…。

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

※ コードは一部改変しています。

resourcescopemoduleを効果的に活用することで、簡潔で分かりやすいルーティングを実現しています。

モデルの書き方

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