1. 程式人生 > >程式碼大全 讀書筆記(1)

程式碼大全 讀書筆記(1)

1. 軟體構建活動:

定義問題(problem definition)

需求分析(requirements development)

規劃構建(construction planning)

軟體架構(software architecture),或高層設計(high-level design)

詳細設計(detailed design)

編碼和除錯(coding and debugging)

單元測試(unit testing)

整合測試(integration testing)

整合(integration)

系統測試(system testing)

保障維護(corrective maintenance)



2. 構建活動中的具體任務

驗證有關基礎工作已完成,因此構建活動可以順利進行下去

確定如何測試所寫的程式碼

設計並編寫類(class)和子程式(routine)

建立並命名變數(variable)和具名常量(named constant)

選擇控制結構(control structure),組織語句塊

對你的程式碼進行單元測試和整合測試,排除其中的錯誤

評審開發團隊其他成員的底層設計和程式碼,並讓他們評審你的工作

潤飾程式碼,仔細進行程式碼的格式化和註釋

將單獨開發的多個軟體組織成為一體

調整程式碼,讓它更快、更省資源


3. 軟體構建活動很重要

是軟體開發的主要組成部分(30% - 80%)

是軟體開發中的核心活動

可以提高程式設計師的生產率

構建活動的產物-原始碼-往往是對軟體的唯一精確描述


4. 用隱喻來理解軟體開發


使用隱喻的方法叫“建模(modeling),隱喻的作用更像啟示(heuristic,啟發、試探法),而不是演算法。可以用它來提高對程式設計問題和程式設計過程的洞察力,幫助思考程式設計過程中的活動。

常用的軟體隱喻方法有:

1)書寫程式碼(Writing Code)

      好比寫信,寫錯了就扔掉

2)培植系統(Growing a System)

      類似播種和耕作的情形,一次設計系統的一小部分、寫出一段程式碼、做一點測試,並將成果一點點新增到整個系統中。每次做一點,小步前進。

      無法對開發軟體的過程和方式進行任何直接的控制。

3)系統生長(System Accretion)

     一次為軟體系統增加一個小部分,增量的、迭代的、自適應的以及演進的。以增量方式進行設計、編譯和測試,都是目前已知的最強有力的軟體開發概念。

     增量式開發的優勢在於未做過度的承諾。

4)建造軟體(Building Software)

     建造,和軟體生長的概念是相通的,且提供了更詳細的指引。暗示了軟體開發中存在著諸多階段,如計劃、準備以及執行等。

5)智慧工具箱

    能有效的開發高質量軟體的人們,在長年累月中積累了大量的技術、技巧和訣竅。程式設計方面的只是學的越學越多,腦中的工具箱中就會有更多的分析工具,也會知道在何時使用這些工具,以及怎樣正確的使用他們。

6)組合各個隱喻

    隱喻是一種啟發而不是演算法,彼此之間並不排斥。