構建之法讀書筆記02

2022-06-13 06:00:11 字數 2010 閱讀 6453

第3章:軟體工程師的成長

軟體開發流程包括團隊的流程和個人開發流程。個人在團隊中有獨立的流程,而把每個人的工作有序的組織起來,就是團隊的流程。

所以,每個人的工作質量直接影響最終軟體的質量。psp

中衡量軟體開發的工作量和質量有以下

4個因素,

1、專案

/任務有多大?(一般用**行數來表示,也可用功能點來表示);

2、花了多少時間?(可以用小時、天、月、年來表示;一組人所花費的時間可以用(人數

*時間)來表示);

3、質量如何?(交付的**有多少缺陷?);

4、是否按時交付?

對於乙個軟體工程師的成長:(1

)steve mcconnell

版本:首先需要具備一定的知識和能力,乙個工程師對這些知識的掌握分為四個階段:

1、入門;

2、熟練;

3、帶頭人;

4、大師。其次,工程師有職業成長級別。

(2)大公司版本:初級軟體開發工程師、中級軟體開發工程師、高階軟體開發工程師、首席軟體開發工程師等。

第4章:兩人合作(前3節)

**規範分為兩個部分:(14

個空格;行寬限制為

100個字元;在複雜的條件表示式中,用括號清楚的表示邏輯優先順序;斷行以及空白的{}行;分行:即不把多條語句放在一行中;命名:要讓人看到;注釋:注釋用來解釋程式做什麼,為什麼這樣做,以及要特別注意的地方。      

(2)**設計規範。牽涉到程式設計、模組之間的關係、設計模式等方方面面的通用原則。程式語言的大多數功能,都在函式中實現,所以對函式來說,最重要的原則是:只做一件事,並且要做好;

goto

:函式最好有唯一的出口,可以使用

goto

來實現這一目的;對錯誤的處理:

1、引數處理:在

debug

版本中,所有引數都要驗證其正確性,在正式版本中,對從外部傳遞過來的引數要驗證其正確性;

2、斷言:是驗證錯誤的一種方式;

處理c++

中的類:

1、類:使用類來封裝物件導向的概念和多型,對於簡單的資料型別沒必要用類來實現,對於有顯式的構造和析構函式的類不要建立全域性的實體,僅在必要時,才使用「類」;

2、如果只是資料的封裝,用

struct

即可;3

、按以下次序來說明類中的成員:

public

、protected

、private;4

、資料成員:資料型別成員用

m_name

說明,不能使用公共的資料成員,要用

inline

訪問函式,這樣可兼顧封裝和效率;

5、虛函式:使用虛函式來實現多型,僅在必要時使用多型,如果乙個型別要實現多型基類中的析構函式應該是虛函式;

6、建構函式:在建構函式中只需簡單初始化所有的資料成員,建構函式不應該返回錯誤;

7、析構函式:把所有的清理工作都放在析構函式中,析構函式不應該出錯;8、

new和

delete

:實現自己的

new/delete

,這樣可以方便的加上自己的跟蹤和管理機制,檢查

new的返回值,釋放指標時不用檢查

null;9

、運算子:一般情況下,自己定義的類不需要自定義操作符,運算子不要做標準語義之外的動作,運算子實現必須非常有效率,如果有複雜的操作應定義乙個單獨的函式,當不知道怎麼辦時,用成員函式而不是運算子;

10異常:不能用異常作為邏輯控制來處理程式的主要流程,需要了解異常及處理異常的花銷,當使用異常時要注意在什麼地方清理資料,異常不能跨過

dll或程序的邊界來傳遞資訊;

11、型別繼承:僅在必要時,才可用型別繼承,用

const

標註唯讀的引數,用

const

標註不改變資料的函式

個人感受:

1、我過去是怎麼做的:對資料成員的命名不規範,左縮排也沒有注意到

2、結合書中所講,說明為什麼這樣不好:會導致我寫出來的程式,不能被別人很容易的看懂,修改bug時也不容易快速有效的找出bug

構建之法讀書筆記02

本次閱讀內容為 構建之法 的三四五章。這部分內容主要講的是軟體工程師的個人成長以及團隊協作。其中軟體工程師的個人衡量與發展我覺得給每個軟工人都指明了乙個方向。每個軟工人在軟體工程師的路上都會經歷初級 中級 高階階段,晉公升之道不僅僅在於技術的提公升,更重在知識的積累,軟體設計思想的積累,解決問題的經...

構建之法讀書筆記

場景 故事 版權 版本 維護人 1.背景 a.典型使用者 姓名 性別 年齡 職業等 b.使用者需求 痛點 c.假設 2.場景 關於這個場景的文字描述角色 與軟體互動的角色,如使用者等其他實體,甚至時間 主要成功場景 一系列步驟 步驟 描述每一步的互動 擴充套件場景 描述一些意外情況 軟體功能說明書 ...

《構建之法》讀書筆記

乙個軟體除了穩定 功能強大,使用者體驗也很重要。程式開發人員和測試人員在強調其功能和效能的同時,還有一點很注重的就是使用者體驗。在我們學習的最初階段老師們就強調對於軟體開發來說使用者體驗的重要性,無論軟體還是硬體,都有很多功能部件,各個部件還要郵寄的結合起來,才能滿足使用者的需求。其中有一點特別,就...