システムをゼロから設計および開発してきた私たちの多くは、プロジェクトのアーキテクチャについて厳しい決定を下さなければならない状況にあります。アーキテクチャ的に健全でスケーラブルなシステムを構築するための「次のステップ」を実行する上で、どこに線を引きましたか。
アーキテクチャの面でかなり崩壊した大規模なWebサイトを構築しました。フロントエンドコードを含むWebレイヤーがあり、次に、実行する実際の作業を処理するビジネスレイヤーとデータレイヤーがありました。論理分離のさまざまなレイヤーが同じ物理マシン上に共存していました。Webサービスのレイヤー/層を使用することで、物理的または単純に論理的な分離が存在する可能性があります。さまざまな理由で、そのように実装されていませんでした。決定が正しかったか間違っていたかは、単に意見の問題です。私の観点からすると、比較的単純なアプリケーションが過剰に設計されている他の状況にあります。
新しいプロジェクトのアーキテクチャを設計する際に考慮する要素には、どのようなものがありますか?頻繁に使用する一貫したプロジェクト設計がありますか、最初からn層ですか、それとも各プロジェクトが入ってくるたびに評価しますか?
これらの経験を繰り返し経験していると、同じ立場にいる他の人がこれらの考慮事項をどのように正当化し、行うのか疑問に思うことがよくあります。私たち全員がさまざまな意見を持っていると思いますが、意見の背後にある思考プロセスを理解することは啓発的であると信じています。