《代码大全2》读书笔记 Week 1
《代碼大全2》第一、二、三章
?????? 隱喻思維在西方是一個熱門的話題,隱喻的認知功能在各個學科正受到越來越多的重視,依照我的理解,其實就是以眾所周知或者理解主體熟悉的事物為符號去將新事物、新概念具象化,與打比方的認知方式有同工異曲之妙。在《代碼大全2》第二章,作者Steve McConnell主要列舉了4種針對軟件工程的隱喻:書法(寫作代碼)、耕作(培養(yǎng)系統(tǒng))、牡蠣養(yǎng)殖(系統(tǒng)生長)、建造新建筑(建造軟件)。作者認為前兩者已無法、或者說從來都不能準確描述軟件工程,書法暗示軟件開發(fā)是一項代價昂貴的試錯過程,而耕作大大低估了開發(fā)者對軟件構(gòu)建的自主控制。而后兩種隱喻得到作者較大的認可。????
?????? 牡蠣養(yǎng)殖隱喻的本體是增量式開發(fā),也就是在開發(fā)前期先生成一個盡量簡單、但能運行的版本,不必接受真實的輸入或?qū)?shù)據(jù)進行處理,重點在構(gòu)造軟件的整體框架以支撐逐漸被完善,也就是“生長”的系統(tǒng)。根據(jù)個人經(jīng)驗,這種開發(fā)方式對于較大的工程有很大裨益,可以讓開發(fā)者對整個軟件的結(jié)構(gòu)有比較清晰的認識并降低修改的成本。最后一種隱喻——建構(gòu)軟件本質(zhì)上是適當?shù)亩鄬哟我?guī)劃,它強調(diào)“因地適宜”,根據(jù)軟件工程的類型和用戶的需求等等做出多個層次、循序漸進的規(guī)劃。
?????? 我非常贊成這一章中智慧工具箱的提議。學習更多的語言和分析方法可以防止我們在遇到問題時不必要地浪費時間。
??????? 第三章用了一整個章節(jié)來闡述構(gòu)建軟件的前期工作,如需求分析和架構(gòu)設計等,的必要性和重要性。書中讓我很有共鳴的一個原則是令發(fā)現(xiàn)錯誤的時間盡量接近引入錯誤的時間,因為錯誤在開發(fā)過程中會引發(fā)鏈式效應,令后期修復的代價不斷積累。另一個讓我印象深刻的是作者對前期需求分析和后期應對需求變更的建議。開發(fā)者和客戶都會在與軟件日積月累的接觸中不斷地調(diào)整自己的認知和相應的需求,???? 所以前期不能讓預設的需求束縛住構(gòu)建過程,有必要留有余地,而在構(gòu)建過程中,只接受最有價值的新需求。同時,使用能適應變更的開發(fā)方法,例如演進原型法和演進交付法能夠大幅提升對需求做出的響應的能力。
轉(zhuǎn)載于:https://www.cnblogs.com/VIAROW/p/8616487.html
總結(jié)
以上是生活随笔為你收集整理的《代码大全2》读书笔记 Week 1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决mysql插入数据时出现Incorr
- 下一篇: 《代码大全2》读书笔记 Week2