kawasaki.rb #127 を(オンライン) を開催しました

Peranikov
kawasakirb
Published in
Jan 24, 2024

2023年12月20日(水)に、 Discord にて kawasaki.rb #127 を開催しました。

※126回は参加者不足のためスキップとなりました。

Sustainable Web Development with Ruby on Rails 読書会

引き続き、書籍「Sustainable Web Development with Ruby on Rails」を読み進めていきます。

「Business Logic Code is a Seam」と「Business Logic Code Must Reveal Behavior」の章では、ビジネスロジックをActiveRecordから分離することは極めて重要であり、ビジネスロジックの構造はそこまで重要ではないが、無視することはできないという解説がされました。ビジネスロジックのAPI(クラス、メソッド、戻り値)を繋ぎ目として意識し、ユースケースとしての振る舞いを明確にするべきということでした。また、コードが「オブジェクト指向」であるかどうか、設計パターンやプログラム言語の慣習をどれだけ満たすかは二次的であり、振る舞いを理解しやすくすることが最優先であるということも解説されていました。

「Services are Stateless, Explicitly-Named Classes with Explicitly-Named Methods」では、具体的にどのようにサービスクラスを作成するべきかをコードを通して解説されました。会場のディスカッションではValidationはControllerとServiceどちらのレイヤーでやるべき?という話で盛り上がり、APIとしての制約と、ビジネスロジックとしての制約で各場所を分けるべきでは?という議論を行いました。

どうやらこのValidationの議論はのちに「Models Part 2」で解説されそうなので、それを楽しみにしたいと思います。

次回予告

次回は1/24 (水)に開催します。connpass及びTwitterでご連絡いたします。また、Slackもあるのでよければご参加ください。

書いた人

https://twitter.com/Peranikov

--

--