[memo]railsとclean architecture

motivation

最近、アーキテクチャについて関心が深まってきたので調べてみoる。

僕の下調べ情報によると、近年MicroServiceが流行ってきたことがあり、Rails の全部入りのMVCのようなものが適していないのではないかという話が上がっているように感じている。 Goの薄いフレームワークが流行るのも、Micro Serviceを考えやすいからのような考察もあった。

また、Railsで開発していくと、全部入りのアプリケーションになってしまうことが多く、Classの責務などが曖昧になり、FatなClassが生まれてしまうという議論をよく見けてきた。

それを避けるためには、Layer(層)を設けて、Layerごとの責務を明確にするべき。そしてそのLayer Archtectureで今流行っているのがClearnArchtectureという認識を僕は持っている。

今後、Railsの開発において、アーキテクチャとどのように向き合って行くべきなのかを考察するべく、ClearnArchtecture X Railsというテーマで調査する。

memo

  • railsに足りないのは、ModelとControllerの間のlayer
  • 2019年の記事。比較的新し目。ソースコードをみると、presenter層を入れている。 Why take a Clean Architecture approach to Rails?

    DDDでのサービス層という名前があるっぽい https://gist.github.com/blaix/5764401

    hanamiはclearnArchtectureにinspireされているっぽいので使ってみたい http://hanamirb.org/

    少し前だが、結局 controllerとmodelの間に層を一個いれたいようねって話でTrailblazergemを使ったという話。 https://qiita.com/kbaba1001/items/e265ad1e40f238931468

    https://goiabada.blog/interactors-in-ruby-easy-as-cake-simple-as-pie-33f66de2eb78 https://guides.hanamirb.org/architecture/interactors/#creating-our-interactor

    Interactorで使えるgem https://github.com/collectiveidea/interactor https://github.com/trailblazer/trailblazer

    気をつけるべきは、Services層が何でも屋にならないこと。 ActiveModel::Concernに切り出すのが良さげ。 https://techracho.bpsinc.jp/hachi8833/2018_04_16/55130

    ← Go home