適切なアーキテクチャ
あらゆる問題を解決する銀の弾丸のようなアーキテクチャは存在しない。
とある特性を選んだら他の特性とトレードオフになる。
「プロダクトとして一番何を大事にしたいのか?」によって適切なアーキテクチャを選ぶことが大事。
しかしプロダクトのフェーズによって「一番大事にしたいこと」は変わり続けていくと思う。
プロダクトが世の中にフィットするのか不確実なフェーズにおいては、高速で仮説検証を進められるような開発生産性の高いアーキテクチャを選ぶのが適切だと思うが、プロダクトが成長してユーザー数も増えてユーザーにとってミッションクリティカルなものに変わったときは、パフォーマンスを高くしやすいアーキテクチャのほうが適切だったりする。
モノリスからマイクロサービスアーキテクチャへリアーキテクチャした事例などを見るとまさに適切なアーキテクチャが変わったことが大きく関係していそう。
技術者としては常に今のアーキテクチャが最善なのかは考えていきたい。
また今のアーキテクチャの意図を汲み取ってコードを設計できているのかも考えたい。特に何も考えないで開発すると、アーキテクチャの特性を損じてしまうことがあるから。