原创 看《重構-設計模式》第七章 在對象之間搬移特性

7.1搬移函數 如果一個類有太多的行動,或者如果一個類與另一個類有太多合作而形成高度耦合。 做法:找到使用另一個對象的次數比使用自己所在類的對象的次數還多的函數,將其調用的字段和函數放在另一個類中。 7.2 搬移字段 某個字段被所駐類之類

原创 看《重構-設計模式》第五章 重構列表和第六章 重新組織函數

第五章: 重構的記錄格式:名稱、簡短概要、動機、做法、範例 尋找引用點:找到對於某個函數、某個字段或某個類的所有引用點,可以通過刪除引用點,讓編譯器幫助找到被懸掛的引用點; 這些重構手法有多成熟:基本技巧:小步前進,頻繁測試,這些重構手法

原创 四種接口隔離模式

接口隔離模式主要有四種:proxy  facade adapter mediator;代理、門面、適配器、中介者。 proxy:爲了解決兩個類之間的交互,間接增加一個類用來處理之間的交互,如外部接口直接訪問數據庫,防止數據庫接收到大量數據

原创 看《重構-設計模式》第四章 構建測試體系

自測試代碼的價值:確保所有測試都完全自動化,讓他們檢查自己的測試結果 一套測試就是一個強大的bug偵測器,能夠大大縮減查找bug所需要的時間。 JUnit測試框架:頻繁地運行測試,每次編譯請把測試也考慮進來--每天至少執行每個測試一次 單

原创 看《重構-設計模式》第一章

重構:當你想爲程序加上一個特性,發現很難加上時,就先重構該程序。 重構之前要保證有一套可靠的測試機制,有自我檢驗能力。 重構的步伐就是以微小的步伐修改程序,即使犯錯也很容易發現。 注意程序中的命名規範:任何傻瓜都能寫出計算機理解的程序,寫

原创 看《重構-設計模式》第二章 重構原則

何爲重構: 作爲名詞:  對軟件內部結構的一種調整,目的是在不改變軟件可觀察的行爲的前提下,提高其可理解性,降低其修改成本。 作爲動詞:使用一系列重構手法,在不改變軟件可觀察的行爲的前提下, 調整其結構。 爲何重構: 重構改進軟件設計 重

原创 看《重構-設計模式》第三章 代碼的壞味道

沒有特別精確的衡量標準,只能有類似的跡象 重複代碼: 同一個類的兩個函數含有相同的表達式。 兩個互爲兄弟的子類內含有相同的表達式。 過長函數:找到能提取爲子函數的方法之一是找到註釋 過大的類:分割爲子類,可以先根據調用該類的接口進行分割

原创 學習c++設計模式--模式簡介

好的程序應該是有複用的,代碼中會有穩定的結構,變化的結構; 對於設計模式來說,就是將變化的模塊與穩定的模塊設計成相應的模板。 模式設計的原則有以下的: 單一職責原則 類的職責要單一,一個類實現一種功能。引起類的修改只有一種原因,這樣降低複

原创 讀陳黎娟的《C、C++實踐進階之道,寫給程序員的編程書》--關於指針

指針學習記錄: 指針有兩個屬性:值和類型。值是存儲的地址,類型表示所指向的變量的數據類型。 指針的類型有兩個作用:1、指示編譯在解引用時從內存讀取幾個字節;2、指示編譯在進行指針類型轉換時如何進行類型檢查和匹配 指針有兩類:空指針和voi

原创 讀《STL源碼剖析》----第一章STL概論與版本簡介

STL六大組件 containers 容器,如vector,map等 algorithms 算法   如sort、copy等  iterators 迭代器  在容器與算法之間扮演膠合劑作用 functors仿函數   類似函數 --- 不

原创 解決mysql出現ERROR 1064 (42000)

shell中加入登錄mysql的語句後,執行報錯,如下 ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that c

原创 讀陳黎娟的《C、C++實踐進階之道,寫給程序員的編程書》--關於字符和字符串、函數

關於字符和字符串: c中只有字符數組來存儲字符串,需要先聲明長度;c++中通過string類型來定義字符串。 c++中string類型的字符串以'\0'來結尾,計算長度用strlen時不包含結尾的字符,用sizeof()函數時包含結尾字符