Saturday, March 9, 2013

C++_Smart Pointer_Naked Pointer_Note

當使用到 new這個關鍵字時,在C++則必須一定要做Delete的動作(Release),防止產生Memory leak。

Monday, February 25, 2013

C++_SelectionSort_DataStructure_Note

SelectionSort Steps:
假設有N筆資料,將他儲存至data陣列中。

1.從頭到尾選出最小的資料,然後將該筆資料輸出,再以一個足夠大的數,取代該筆資料。
2.重複上列動作直到所有N筆資料都被選出。

Friday, January 4, 2013

Books-Design Patterns

大話設計模式 (作者:程杰) :

這本主要是以C# 來編寫 GoF 的Design Patterns,是一本很不錯的工具書,不過在解釋 Object Oreient Desing (SOLID)六個原則內容上稍微薄弱了一點。

設計模式之禪(作者:秦小波):

這本主要是以Java來編寫GoF的Design Pattern,也是一本比較適合當工具書來用,解釋OOD的六大原則,是我看過最詳盡且好懂得,介紹GoF的範例所使用的故事這部分我反而覺得大話設計模式比較親切。

深入淺出設計模式(歐萊禮):

一樣是以Java來編寫,不過個人認為它算是學習用的書籍,如果完完全全的初學Design Pattern看這本觀念會學很快,我認為它不能夠成為工具書的原因:不好查閱。不過這本在末章有介紹到MVC(Model View Controller)的Pattern,不過MVC因該可以歸類成 Architect pattern。


個人認為:
完全得初學者可以看歐萊禮-深入淺出設計模式。
工具書選擇會是 大話設計模式(GoF的Pattern解釋比較親切)或設計模式之禪(OOD解釋比較好)。
最好還是3本都看過...

另一本

物件導向設計模式:可再利用物件導向軟體之要素(譯者:葉秉則)

如果C++很熟練的人可以看看....

Sunday, December 30, 2012

Design Patterns-Object Oriented Design

Oject Orient Design:提到SOLID(WIKI)

包含了6個原則,原則通常會隨著專案可能會違背這些原則,但這些原則可以幫助你在設計時所要考慮因素,為何要違背某一原則?是為了其他類別?在這專案下違背了影響層面很小?

Saturday, December 22, 2012

Desing Pattern–Overview

Design Pattern:

    如果發現處於某種情境下,面對著一群限制的問題,正影響著所欲達成的目標,然而,你能夠採用某個設計,克服這些限制並達到該目標,將你領向某個解決方案。
問題
情境
解決方案
模式是一種被證實過的設計經驗,可以避免某些常見的錯誤。
模式是共通詞彙,能夠讓我們和其他開發者之間,針對設計進行溝通。

Saturday, December 15, 2012

Design Patterns-Command Patterns

將一個請求封裝為物件,讓你可用不同的請求對客戶進行參數化。對請求排隊或記錄請求日誌,以及支援可取消的操作。

Wednesday, December 12, 2012

Windows Socket & C++ Basic UDP Socket

UDP Socket

1.之間不用建立連線

2.對客戶端來說建立socket後,直接把資料丟向Server

Monday, December 10, 2012

Windows Socket & C++ Basic TCP Socket

TCP server/Client Basic

TCP

TCP連線

重構-Code Refactoring-Vol.2

1.Replace Temp with Query

2.Introduce Explaining Variable

3.Split Temporary Variable

4.Remove Assignments to Parameters

5.Replace Method with Method Object

6.Substitute Algorithm

Design Patterns-Singleton Pattern& Thread

Singleton Patterns

保證一個類別僅有一個Instance,並提供一個全域訪問點。

1.該物件自行決定是否被Instance,而不是靠其他物件初始化。(將該物件的Constructor需告成Private)。

2.因建構子私有化,所以產生一個Method為公有化(物件為Publuc 、Static)。