There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. -- C.A.R. Hoare.
我不知這句諺語C.A.R.Hoare是甚麼時候講的,對於軟體發展方法的演變而言,可以說,他是屬「舊時代」的大師級人物,他最為人稱頌的是1985年出版的"Communicating Sequenctial Processes"一書,他也跟Dijkstra一起提倡"Structured Programming",那個時代好像不流行(或許尚無)Iterative & Incremental的觀念,但以近代的方法學而言,大家都是提倡Iterative & Incremental的發展的方式,如UP,Agile Methods等等,也就是說,一套軟體系統的產生,由沒有錯誤的簡單software piece逐漸「堆積」成大甚至複雜的系統,這種發展方式幾乎已為大家所接受,許多design patterns,如Decorator也都是這種觀念,所以Hoare這種說法是否貼切,值得考量。
回覆刪除這句話是我過去看一本談架構的書裡看到的(書名忘了),就把它收錄起來。前半段說的架構設計,後半段是細部設計。與細部設計比較起來,架構設計顯得精簡的許多(至少頁數少得多),但其困難度是很高的。
回覆刪除這句話精妙的點出架構設計的重要性與困難,個人很喜歡。