原创 《大規模C++程序設計》讀書筆記8

定義14:迴歸測試指的是這樣的規程:運行一個程序(該程序被給定了一個固定期望結果集合的特定輸入),比較其結果,以便檢驗程序從一個版本升級到另一個版本時是否能夠繼續如所期望的那樣運行。 基於啓發式技術的軟件、使用異步通信的系統,系統行爲具有

原创 《大規模C++程序設計》讀書筆記5

原則2:邏輯設計只研究體系結構問題;物理設計研究組織問題。 定義5:一個組件(component)就是物理設計的最小單位。 一個組件包含一組邏輯設計的子集,類、函數、枚舉等等都是構成組件的邏輯實體。每個類定義都應該嚴格的只駐留在一個組件

原创 天與地:Nokia與Motorola的第四季度財報

Nokia:Nokia今天發佈了2007年第四季度財報。報告顯示,得益於新型手機的熱銷,Nokia第四季度淨利潤同比增長44%,超過了分析師的預期。在截至12月31日的這一財季,Nokia的淨利潤爲18.35億歐元(約合27億美元),每股

原创 《大規模C++程序設計》讀書筆記11

定義28:如果編譯函數f的函數體時要求提前看到類型T的定義,則稱函數f實質(in size)使用了類型T。 實質使用會導致直接的編譯時依賴。 定義29:如果編譯函數f以及f可能依賴的任何組件時,不要求提前看到類型T的定義,則稱函數f只在名

原创 《大規模C++程序設計》讀書筆記16

定義33:一個被包含的實現細節(類型、數據或函數)如果被修改、添加或刪除時不會迫使客戶程序重新編譯,則稱這樣的實現細節被絕緣了。 封裝:圍繞一個類的實現的極薄的透明膜,用於防止只通過編程來訪問類的實現。 絕緣:圍繞組件的無限厚的不透明的障

原创 《大規模C++程序設計》讀書筆記20

Technorati 標籤: C++,大規模C++程序設計,讀書筆記 提供給最終用戶的編程接口,應該符合以下需求: 接口必須提供必要的功能來操縱基礎系統。 接口一定不能暴露私有實現細節。 基礎組織的變化必須與客戶程序絕緣。 與該

原创 《大規模C++程序設計》讀書筆記18

定義34:滿足下列條件的抽象類是一個協議類: (1)它既不包含也不繼承那些包含成員數據、非虛擬函數或任何種類的私有(或保護的)成員的類; (2)它有一個非內聯虛析構函數(定義了一個空實現); (3)所有成員函數(除了包含被繼承函數的析構函

原创 《大規模C++程序設計》讀書筆記14

原則45:不加選擇的使用回調(callback)可能導致難以理解、調試和維護的設計。 原則46:對回調的需求可能是不良的整體體系結構的一個症狀。 回調比傳統函數更難以理解、維護和調試,應當被當作是最後的手段。 原則47:建立較低層次對象的

原创 《大規模C++程序設計》讀書筆記32

Technorati 標籤: C++,大規模C++程序設計,讀書筆記 原則126:通過在一個僞參數化類型中嵌入實際參數類型(如 gen_StackItem嵌入到gen_Stack),我們可以在繼承方面像處理用戶自定義類型那樣處理基本類

原创 《大規模C++程序設計》讀書筆記30

Technorati 標籤: C++,大規模C++程序設計,讀書筆記 定義51:如果一個基本類型實例的大小能整除其地址值,那麼它是自然對齊的(naturally alligned)。 定義52:一個聚集類型的實例,如果其對齊要求最嚴格

原创 用vimdiff查看cvs管理下的不同版本

cvs diff的展現力太寒酸了,一直想着用vimdiff/gvimdiff取而代之,在網上搜索到一個shell腳本cvsvimdiff,這個腳本沒發

原创 《大規模C++程序設計》讀書筆記27

Technorati 標籤: C++,大規模C++程序設計,讀書筆記 指導方針29:避免在接口中使用short,改爲使用int。 C++語言要求,聲明爲char或short的變量,在參與一個表達式之前,要被自動提升爲int類型,也就是說

原创 生日,大雪

1月27日,西元生日,天降大雪。 據媒體說,這場大雪爲歷史上所罕見。我來南京7年,這是記憶中的第三次大雪。第一次在02年聖誕前後,校園裏銀裝素裹,到處是大大小小的雪人,有同學扮成聖誕老人,浪漫而溫馨。第二次是在05年,沒有02年的雪大,但

原创 《大規模C++程序設計》讀書筆記6

定義10:如果編譯或連接組件y時需要組件x,則組件y DependsOn組件x。 DependsOn關係是一種物理關係,而IsA、Uses等關係是邏輯關係。物理關係作用於物理實體(文件、組件、包)之間,邏輯關係作用於邏輯實體(類、函數)之

原创 《大規模C++程序設計》讀書筆記12

原則41:啞數據可以用來打破in-name-only依賴,促進易測試性和減少實現的大小,但是,不透明指針可以同時保持類型安全和封裝;而啞數據通常是不能的。 例子:用整數作爲索引,而不是用迭代器訪問容器內的數據。該索引只在一個有限的上下文中