天天看點

代碼大全——第一部分

 本書第一部分以一種幽默有趣的方式介紹了軟體工程的内容,其核心圍繞着建構(construction)展開。軟體建構對我來說是個新的詞語。建構雖然包括軟體過程的各個方面(除了問題定義),但它更側重于實際設計、代碼和測試。說得更直接一點就是,建構就是軟體專業技術上的活,但作者又不斷強調建構之前的“問題定義”的重要性,并且“問題定義”應該使用使用者的語言,而非專業語言,同時“問題定義”也是一個項目的基石,引用一句經典的話“許多項目在開始編碼之前就已經決定其成敗”

後面文章用軟體隐喻(Software Metaphors)來表達了軟體工程中的不同模型,有點類似原型模型,疊代模型,瀑布模型等。相比一般軟體工程教科書的獨到之處在于,作者闡述了不同規模的項目,應該選擇與之相适應的開發模型。“适用的才是最好的”

第三章闡述了建構之前的工作,這往往是一個方向性的問題,如果方向錯了,後面的工作也隻是南轅北轍了。對問題的正确認識,“殺雞用牛刀,或者用鉛筆刀,都是錯誤的判斷”

最後,文章描述了建構中關鍵的決策,如語言選擇,程式設計的約定,在技術浪潮的位置,這主要是讓設計者意識到自己所做的開發其技術的成熟性,許多技術已經很成熟,如在windows下用dotNET設計應用程式,這樣就可以花更多時間在設計本身上,而在某些其他領域裡,技術并不是非常成熟,如在ucLinux下做圖形設計,要是還用了一個不是很成熟的圖形庫,那要做的事情完全不是和windows做應用程式一回事了。

看慣了教科書式的軟體工程,讀起該書來,更能體會到作者實際項目經驗和思想的表達,而不是概念的堆砌。

技術性文章不一定是要“說明文”,再看《深入淺出設計模式》,死闆的陳述已經落伍,如何诙諧有效的表達才是好的表達。技術也是藝術。

繼續閱讀