2つのComplexity
2つのComplexity
Essential Complexity
Accidental Complexity
『Out of the Tar Pit』では理想的なシステムを最初に想定する
あらゆる処理にかかる時間が0秒であるような理想的なシステム
このシステム上でも必要になる項目がEssential Complexityと言える
Stateに着目した分類
/mrsekut-book-outoftarpit/23 (7.1.1 State in the ideal world)
理想世界で、その状態が必要なのかどうかを考えて分類する
table:Data and State
Data Essentiality Data Type Data Mutability Classification
Essential Input - Essential State
Essential Derived Immutable Accidental State
Essential Derived Mutable Accidental State
Accidental Derived - Accidental State
左のカラムのData Essentialityの判断は、
informal requirementsに含まれるかどうかで判断しているmrsekut.icon
例えば、ユーザが直接入力するデータはEssentialだし、
キャッシュなど要件に含まれないものはAccidental
とにかく、Derivedして作られる状態はAccidental State
Controlに着目した時
理想的なシステム上では処理は全て0秒で終わる
したがって、あらゆるControl flowはAccidentalなものであると言える
例
ユーザーが生年月日を入力すれば、生年月日はEssential Complexityだが、
年齢は、生年月日から派生して計算できるのでAccidental Complexityになる
参考
/mrsekut-book-outoftarpit/20 (6 Accidents and Essence)
システムの複雑さはどこから来るのか – Out of the tar pitを読む - Uzabase Tech