kawasaki.rb #129 を(オンライン) を開催しました
Published in
Feb 28, 2024
2023年2月28日(水)に、 Discord にて kawasaki.rb #129 を開催しました。
Sustainable Web Development with Ruby on Rails 読書会
引き続き、書籍「Sustainable Web Development with Ruby on Rails」を読み進めていきます。
今回は「2.11.2 Validations Are Awesome For User Experience」から読み始めました。
この章では validation, callback, scope についての解説を行っていました。この本ではDBでの制約とRailsのvalidationのどちらを優先して使うべきか、ということを解説してきていましたが、この両者はトレードオフにあるとし、ユーザーエクスペリエンスを考慮した場合においてRailsのvalidationを使う方がよいため、一部ビジネスロジックをModelに寄せることを許容すると述べていました。callbackはネットワークコールなど重たい処理を呼ばないこと(おそらくテストもしにくくなる)、scopeについてはまずはクラスメソッドで代用できないかを考えることを推奨していました。
「2.11.5 Model Testing Strategy」からは、モデルのテストの勘所について3つを挙げていました。
- データベース制約のテストは、その制約を持つテーブルをのActive Recordを使用して行う。
- 複雑なバリデーションやコールバックのテストを書く。
- モデルの信頼性が高く現実的なテストインスタンスを簡単に生成できるように、RailsのフィクスチャよりもFactory Botを使う。
次回予告
次回は3/27 (水)に開催予定です。connpass及びTwitterでご連絡いたします。また、Slackもあるのでよければご参加ください。