Architecture-centric

注重架构意味着不仅要编写出大量的类和算法,还要设计出这些类和算法之间简单而有效的协作。高质量的软件中大量是这类的协作。而设计模式也是为这些协作起名和分类,使它们更易于重用。最好的架构就是“概念完整性 conceptual integrity”,它驱动整个项目注重开发模式并力图使它们简单。

conceptual integrity的说法出自《人月神话》。"概念完整性(conceptual integrity)"可能算是贯穿全书的概念之一。宁可少添加一些七七八八的功能(anomalous features),也应该保证,整个系统体现的是完整的一套设计理念 :这是引入概念完整性的含义。概念完整性的受益者包括最终用户、系统开发者、培训员和服务人员。概念完整性保持得好的系统更易用,需要较短的培训时间和学习时间,同时也更易于开发。但是在软件生产的实践中,各级决策者都很容易产生强调 "功能"而忽视概念完整性的倾向。因此我们看到了太多包含大量"功能",而就整体而言不知所云的系统,也出现过太多次由于一两个附加功能的实现难度而导致整个系统开发推迟、甚至难产的事例。 

说到架构和概念完整性,Joel有一篇Blog“Don't Let Architecture Astronauts Scare You”。这个老油子在抨击夸大其辞和混淆概念的商业宣传的同时,这样描述那些架构太空人:“架構太空人會說會說出類似這樣的話:「你能想像一個像Napster這樣的程式,你可以用它下載任何東西而不只是歌曲嗎?」然後他們會建立像Groove這種自認比Napster一般性的應用程式,不過似乎卻忘了那個微不足道,讓你輸入歌名然後聽歌的小功能,那個我們從一開始就要的功能。說到搞不清楚重點。如果Napster不是做成點對點形式,卻的確能讓你輸入歌名就能聽歌,恐怕還是會一樣流行。”

posted on 2006-09-21 10:21  Realloc  阅读(245)  评论(0)    收藏  举报

导航