
ソフトウェアアーキテクチャに関するGrady Boochの一連のツイート:
https://twitter.com/Grady_Booch/status/1301810358819069952
ソフトウェア集約システムのアーキテクチャに関するスレッド。
ソフトウェア集約システムの世界には、大規模なWebセントリックプラットフォーム以外にも多くのものがある。
優れたアーキテクチャは、明確な抽象化、適切な関心の分離、責任の明確な分散、そしてシンプルさによって特徴づけられる。それ以外はすべて詳細である。
ソフトウェア集約システムの複雑さを減らすことはできない。できることは、それを管理することだけである。
時の流れの中で、すべての活力あるアーキテクチャは進化しなければならない。
古いソフトウェアは決して死なない。あなたがそれを殺さなければならない。
一部のアーキテクチャは意図的であり、一部は偶発的であり、ほとんどは創発的である。
意味のあるアーキテクチャは、熟考、設計、決定の生きた活力あるプロセスである。
日、月、年、そして数十年にわたるコードの容赦ない蓄積は、成功したすべての新しいプロジェクトを迅速にレガシーなものに変える。
あなたのチームの組織を見せてくれれば、あなたのシステムのアーキテクチャを見せよう。
よく構造化されたソフトウェア集約システムはすべてパターンに満ちている。
コードを書かないソフトウェアアーキテクトは、食べない料理人のようなものである。
パターンと横断的関心事に焦点を当てることで、より小さく、よりシンプルで、より理解しやすいアーキテクチャを生み出すことができる。
設計決定は、特定のステークホルダーができることを促進すると同時に、ステークホルダーができないことを制約する。
最初に、ソフトウェア集約システムのアーキテクチャはビジョンの表明である。最終的に、そのようなすべてのシステムのアーキテクチャは、その過程で行われた何十億もの小さな、そして大きな、意図的で偶発的な設計決定の反映である。
すべてのアーキテクチャは設計であるが、すべての設計がアーキテクチャではない。
アーキテクチャは、システムの形と機能を形作る重要な設計決定の集合を表し、重要性は変更のコストによって測定される。
著者:Chuck Conwayはソフトウェアエンジニアリングと生成AIを専門としています。ソーシャルメディアで彼とつながりましょう:X (@chuckconway) または YouTube をご覧ください。