読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

LT3 Railsでのシステム構築のアーキテクチャについて

第三回若手Webエンジニア交流会

10xLab(GaiaXの福岡開発拠点)

Railsを使ったBtoB向け自社プロダクトを新規開発
開発のなかでアーキテクチャがどう変遷したか

構成1

所謂MVC
モデルとテーブルは1:1
コントローラとモデルは1:多

課題
コントローラが太っていく
保守性、可読性の低下
モデルにビジネスロジックを移していく

1つのモデルに紐付いていない処理はどこに書くのか?

構成2

MVC wiht Logic
Logic層の導入
データを疎結合で扱える

ビュー 表示
コントローラ ビューに一連のデータを渡す
ロジック 一連の処理を処理する
モデル データを保存する

サイドバー、ヘッダーなどの共通パーツに必要なデータを
用意しなければならないので面倒。

→Cellsを用意する
コンポーネントに必要な要素を切り離す
テンプレートを用意できる。

構成3

MVC with Logic and Cells
ヘッダーやサイドバーなど共通パーツのテンプレをCellsで用意する

サイドバー単位でキャッシュをクリアできる利点もある

validationをどこでするか
helperが太る…

気をつけていること

  • 箱を最初に用意する(LogicとかCellsとか。中身はなくてもよい)
  • 呼び出しの流れを一方向にする(ModelからLogicへの呼び出しみたいなことは絶対にやらない。LogicからModelへの呼び出しのみを許可する)


どこかで箱をまとめて再構成するフレーズが必要になるのだろうか