私はこれに何度も遭遇しましたが、ここではやや誇張された最悪のシナリオがあります。
クライアントは、「この小さなタスクを実行するために、この小さなモジュールを作成してもらえますか」と言います。
私:「問題ない」。
そのため、予算や制約などに基づいて、設計の一部をスキップし、すぐに飛び込み、汗をかかないようにします。
次に、別のモジュールを要求します。そしてもう一つ。そしていくつかの機能強化。そして、これはすべて、長年にわたって非常にゆっくりと起こります。そして、あなたがそれを知る前に、あなたは恐ろしく設計されたこのモンスターアプリケーションを持っています。
何か小さなことをするように頼まれたらどうしますか?それが成長し続けるかどうかはわかりません...クライアントが追加を要求し続けるなら(そして、どちらもしません)。
結局のところ、それは単なる小さなアプリケーションであるため、オーバーアーキテクトすることはできません。あなたが言うなら(私はすべての声を知っているということで) -o-the-lineセキュリティと懸念の分離。実際、このことを本当に素晴らしいものにする、依存性注入ツールを使用してみましょう。
彼らは「そうだ」と言い、他の誰かに行きます。
予算、時間、認識は、アプリケーション自体の設計と同じくらい重要です。
これにどのようにアプローチする必要がありますか?
質問は、「小さなアプリケーションのように見えるものの最終結果に関するすべての情報が得られない場合、アーキテクチャおよび設計の決定を早期に行うことを完全に回避する(または軽減する)方法」後で不適切ですか?