2009年3月12日 星期四

Q25: 有兩種體設計的方式。一種是設計的很簡單讓它很明顯的沒有錯誤,另一種是設計的很詳細讓它沒有明顯的錯誤。第一種相較之下更為困難。

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.
 

2 則留言:

  1. 我不知這句諺語C.A.R.Hoare是甚麼時候講的,對於軟體發展方法的演變而言,可以說,他是屬「舊時代」的大師級人物,他最為人稱頌的是1985年出版的"Communicating Sequenctial Processes"一書,他也跟Dijkstra一起提倡"Structured Programming",那個時代好像不流行(或許尚無)Iterative & Incremental的觀念,但以近代的方法學而言,大家都是提倡Iterative & Incremental的發展的方式,如UP,Agile Methods等等,也就是說,一套軟體系統的產生,由沒有錯誤的簡單software piece逐漸「堆積」成大甚至複雜的系統,這種發展方式幾乎已為大家所接受,許多design patterns,如Decorator也都是這種觀念,所以Hoare這種說法是否貼切,值得考量。

    回覆刪除
  2. 這句話是我過去看一本談架構的書裡看到的(書名忘了),就把它收錄起來。前半段說的架構設計,後半段是細部設計。與細部設計比較起來,架構設計顯得精簡的許多(至少頁數少得多),但其困難度是很高的。

    這句話精妙的點出架構設計的重要性與困難,個人很喜歡。

    回覆刪除

注意:只有此網誌的成員可以留言。

追蹤者