1分クリーンアーキテクチャって何がいいの?私は、クリーンアーキテクチャは最初は実装面倒だなって思うけど後になってじわじわとええやん!ってなるアーキテクチャだと思ってます。することになってもコードを見れば理解でき、開発速度を落とさずに継続的に開発していくことができるということにつながります本記事には具体的なコードは出てこないのでクリーンアーキテクチャ本を読んでもあまり理解できなかった方を対象に概念的なことを書いていきますアーキテクチャとはアーキテクチャとは、開発の生産性を上げ、運用・保守を楽にできるようにし、デプロイを継続的にしていくことができるようにシステムの構成を形作るものです例えば、あなたが学生時代に書いたアーキテクチャもへったくれもないクソコードはそのとき限りの開発には使えたかもしれないですが、継続的にしかも他の人がみても開発速度を落とさずに進めていくことができるでしょうか??できませんね。設計をしっかりしている人もいるでしょうですが、多くの初心者プログラマにとってアーキテクチャとは難解で理解しにくいものですここで、一つ問いをしてみたいと思いますアーキテクチャがよければシステムがうまく動き問題なくサービスを受けることができるでしょうか。いかがでしょうか、一見それっぽい文章に見えますね答えは、アーキテクチャとシステムの振る舞いは関係がないです。世の中にはアーキテクチャがしっかり組まれていなくても普通に動いている(ようにみえる)サービスは存在するからですそれこそ、学生時代に書いたコードはそうじゃなかったですか??私はそうでした。読み返すたびになんてコードを書いてしまったのかと自問自答したものです。それはさておき、小規模な開発で、短期間という見通しのついている体制ならば適当なアーキテクチャでそのまま開発を続けてもいいでしょう。デプロイへのコストと生産性を高めるためのものだからです。アーキテクチャの良さがわかるのは開発初期ではなくて、数年運用して規模も変わった時にようやくわかる事になるでしょう。一つのアクションで容易にデプロイできるようにすること全てを最大に保つことは難しい基本的に開発はサーバーやストレージなどのハードウェアは人間に比べて安価で、人はとても高価ですそう考えてみると開発・保守は明らかに人に対するコストを払いますが、運用はハードウェアに頼れば解決できることもあります。ストレージを増やしたりサーバーのスペックを上げることで、いまいちなアーキテクチャやコードでも処理速度が出せることでしょう。お金で解決できる問題(運用の一部分)をアーキテクチャで解決しようとすると、それ以上に開発や保守に対するコストが大きくなることが往往にしてあるでしょう。処理速度をロースペックなマシンでも捌く方法を設計すること自体が難しく、またそういった設計ができる一部のスーパーエンジニアに対する給料は高くなるので結果的にお金がかかることもあるでしょう。いった理由がありアーキテクチャが全ての目的に対して最適であることを保つことはほぼ不可能ともいえるでしょう。Analyticsを利用しています。保守デプロイ全てを最大に保つことは難しいまとめ。