讀《浮現式設計-專業軟體開發的演進本質》有感
題記: 在敏捷實踐的間隙,由忠利推薦,草覽了名作《浮現式設計》,受益匪淺,寫下讀後感聊表心得,以期拋磚引玉。
套用一書評中的話,翻譯出來,本書的書名小眾了點(Emergent Design,要怎麼翻?),看似一本軟體設計方面的專業書籍,又似一本行業版哲學書,實際上,作為行業同仁,為明確自己的方向,這本書絕對值得一讀。
從作坊到工廠再到組織,軟體開發經歷了近四十年的發展,在我看來已是欣欣向榮,卻被Bain一語道破:短短數十年,豈是新興行業發展所能倚仗的時間歷程?
大師不愧是大師,站得高也看得遠,當我們這群無名小輩熱衷於軟體工程化時,他們已敏銳地發現行業專業化的方向;當我們亦步亦趨地學習著敏捷開發時,他們已上升到演進的本質。
本書作為敏捷開發的經典之一,重點講述的即是軟體的專業化及演進本質。
所謂專業化,絕不是簡單地把軟體開發類比成建築工程,設計師是總工,程式設計師是工人,而是將它看作一個獨一無二的行當,我的地盤我做主,誰敢班門來弄斧?大師一句話,醍醐灌頂,經過了個人英雄式的開發過程,上升到工程化的管理模式,以至近年來流行的敏捷開發團隊,無疑都是從業者們探尋行業真理的必經之路,雖未找到放之四海皆準的真理,卻總結出了很多最佳實踐,成為有價值的模版(最著名的當數設計模式),為專業化程式提供了標準和依據。
由此,作為這一飽受爭議的行業成員,是時候解放思想實事求是,代表本行業的專業化程式,代表標準實踐的應用前景,代表先進軟體的發展方向了。
所謂演進,即標明軟體並非硬梆梆一段程式碼,而是有活力能進化的一份子。說得有點邪乎哈,某個不得志的程式設計師寫下畢生傑作後抑鬱隱退,而那段靜態程式碼吸收了主人的情感,演化成智慧生物,意欲消滅愚昧的人腦世界,建立機器碼的智慧社會……可以拍部科幻大片,再來幾部前傳後記——跑偏了,趕緊切入正題。
這個演進,實質是被動體,需要我們來推動軟體的演進,將軟體看作我們的孩子,不傷害它,讓它健康成長。作為專業化道路上最顯而易見又最實用的演進方式,模式,重構,測試驅動開發,一個都不能少。
模式不是概念不是炒作,是實實在在的經驗積累,嚴格說來不僅僅是設計模式,而是行業規範的模式,實戰中不存在用還是不用的問題,而是要遵守而且如何遵守的問題。
重構,一聽就是個大傢伙,將原有架構大卸八塊甚至更多塊,剔除所有程式,再換上全新的架構元件,裝飾上新鮮出爐的整潔程式碼——儘管重構必不可少,卻也並非如此可怕。預構,能從設計伊始就為日後的重構打下鋪墊;現有的重構技巧也能為重構過程提供幫助,並減少風險。
測試驅動開發,看似可有可無,實際上卻為一開始的設計提供依據,為此後的重構減輕工作量。尤其是針對各種模式的測試方式,衍生出了針對各種設計模式的測試模式,讓人眼前一亮,也更易於理解各類設計模式了。
大師一部書,解我七成疑,好書同分享,自在IT行。
付豆
2012.1.20
本文經得付豆同學同意,發表在此。付豆同學後曾受託,在公司內部交流會講述本書,書中的知識得到了有效的放大,相信能夠對廣大開發人員,設計人員有更多的提升。
相關文章
- 《軟體開發本質論》讀書筆記筆記
- “高質高效嵌入式軟體開發”的企業內訓開始
- 讀《Node Web開發》有感Web
- 關於軟體專案開發的分析與設計
- 嵌入式軟體開發的特點、設計流程、嵌入式軟體的結構
- 軟體開發設計文件
- 淺談軟體開發中的防禦式程式設計程式設計
- 遊戲設計的本質(一):數值的本質遊戲設計
- 程式設計的本質程式設計
- 團軟體的設計與開發
- 讀軟體開發安全之道:概念、設計與實施09安全設計
- 基於窗體設計器的企業管理軟體開發工具
- 讀《現代軟體工程——構建之法》第1~5章有感軟體工程
- 商業軟體開發的下一個重大步驟:協作建模(CoMo)的本質 - WPS
- 就業素質有感薦就業
- 軟體專案管理 8.4.軟體專案質量計劃專案管理
- 《軟體工程》第一週作業,閱讀別人部落格有感軟體工程
- 架構設計的本質架構
- 程式設計師的本質程式設計師
- 讀《程式設計師的思維修煉》有感程式設計師
- 軟體成分安全分析(SCA)能力的建設與演進
- 軟體設計雜談(二)--軟體設計與設計人員的個人素質 (轉)
- 軟體專案的鐵三角模型:軟體質量與快速開發的矛盾 - Richard模型
- 讀《程式設計師修煉之道:從小工到專家》有感程式設計師
- 讀軟體開發安全之道:概念、設計與實施10安全設計審查
- 用例設計在軟體開發專案計劃中的應用(轉)
- 軟體開發定律系列之布魯克斯定律有感
- Art Text 4 Mac(專業字型設計軟體)Mac
- 懸浮窗開發設計實踐
- QuickLens for Mac - UI設計/開發軟體UIMac
- 定製直播軟體,分散式鎖的演進你瞭解多少?分散式
- 軟體系統的架構演進以及叢集和分散式架構分散式
- 三個因素是軟體本質?
- 讀《大道至簡:軟體工程實踐者的思想》有感軟體工程
- 讀軟體設計的要素01概念
- 有哪些值得設計師進階閱讀的專業書籍?
- 讀軟體開發安全之道:概念、設計與實施11安全地程式設計程式設計
- 軟體專案設計與開發管理——指數效應(原創)