私は、ボブ・マーティンおじさんのビデオ「きれいな建築の原理」のコンセプトが本当に気に入りました。しかし、このパターンは、その中心にある抽象ファクトリーとビルダーのパターンの組み合わせのようなものだと思います。
程遠い。
これを見ると:
オブジェクトグラフの設計を見ています。これにより、何が何を知っているかが決まります。このストーリーから欠けているのは、オブジェクトグラフがどのように構築されたかです。申し訳ありませんが、ここにはありません。建設についての言及はありません。
これらすべてを、抽象的なファクトリやビルダーなしで構築できます。私はそれをやったので知っています。私はそれらを避けるために着手しませんでした。私は彼らを愛しています。私はそれらを必要とすることがたまたまなかった。参照渡しを使用しました。依存性注入は、そのための凝った用語です。
実際、メインの図にあるすべてのものを作成できました。次に、1つのオブジェクトで1つのメソッドを呼び出すだけで、すべての処理が開始されます。
物を他のものに押し込む前に、物は存在しなければなりません。私はここでそれを調べて、このかわいい小さな図を与えました:
そして、あなたはそこを離れることなくすべてを構築できますmain()
。
手続き構築コードの山を一口サイズの概念的なチャンクに分割したい場合は、ビルダーとファクトリーを使用することをお勧めします。しかし、クリーンアーキテクチャや他の流行語アーキテクチャには、あなたが行うことを要求するものは何もありません。だから、あなたが固執したいならmain()
、結構です。ただ、慈悲を持ってください。
Bob Martinの「Clean Architecture」は、すべてのアーキテクチャの経験則ですか、それともオプションの1つですか?
Clean Architectureは、人々をブログや本に誘導するための流行語と考えています。そのブログと本は、人々を古いブログや古い本に誘導するために使われた古い名前を持つ、非常によく似た古いアーキテクチャの非常に良い説明を持っています。具体的には、タマネギとポートおよびアダプタ。どれもあなたが持っている唯一のアーキテクチャ上のオプションではありません。
ボブおじさんは、素晴らしいパブリックスピーカーであり作家でもあるので好きです。彼は私がそうでなければ持っていないものを考えさせてくれます。しかし、あなたがそれをあなたが宗教的な熱狂に変えて、すべてを彼のやり方でやらなければならないと主張するなら、あなたはすぐにドキュメントの更新が私のコードに到達できるようにすることに最も近いことがわかります。
流行語アーキテクチャは、周囲の世界が変化する間、永続化する必要のある長寿命のコードがある場合に役立ちます。それが輝くときです。コードと比較して世界が安定している場合、正当な理由もなく物事を派手にしています。
どんなに素晴らしいものであっても、それを入れることのできるコンテキストがあり、それはばかげています。申し訳ありませんが、これも特効薬ではありません。
しかし、ビデオでは、クリーンなアーキテクチャにはビジネスロジックとフレームワークの明確な境界があるべきだと彼は示唆していると感じています。フレームワーク(web、androidなど)は、ビジネスロジックにプラグインするプラグインである必要があります。彼はビデオのレールをわずかにモックしています。
あなたが正しい。彼はやる。ボブおじさんは、フレームワークをライブラリのように扱うことができると感じています。そして、彼らはできます。しかし、その決定でさえも何かを犠牲にします。
マーティン氏が保存しようとしているのは、あなたの汎用言語がまだ一般的な空間です。フレームワークをどこにでも広げると、それはあきらめます。それを行うと、言語をドメイン固有言語と呼ばれるものにモーフィングするパスに向かっています。HTMLはドメイン固有の言語です。それは非常にうまくいきますが、まったくできない他の仕事があります。
フレームワークによってニーズが予測されている限り、事態は非常にスムーズに進みます。ニーズを予測しておくと便利です。それはあなたを物事をシンプルに保つ箱に入れます。これを得るためにあなたがgivingめていることを理解してください。Springをどこにでも広めると、それをJavaの仕事として宣伝することはできなくなります。これはJava / Springの仕事です。RubyとRailsについても同じことが言えますが、Railsはずっと前にRubyの昼食を食べました。