原创 冒號課堂節選:併發範式
併發範式 真正的併發式編程,絕不只是調用線程 API 或使用 synchronized 、 lock 之類的關鍵字那麼簡單。從宏觀的架構設計,到微觀的數據結構、流程控制乃至算法,相比通常的串行式編程都可能發生變化。隨着硬件性能和用戶需
原创 設計模式學習筆記(四):封裝變化
設計模式與封裝變化 設計模式可以確保系統能以特定方式變化 ( 這很大程度是一種預測 ) ,從而幫助設計者避免重新設計系統。每一個設計模式允許系統結構的某個部分的變化獨立於其他部分,這樣產生的系統對於某一種特殊變化將更健壯。 下面闡述
原创 冒號課堂節選:泛型範式
泛型範式 Generic Programming ,簡稱 GP ,其基本思想是:將算法與其作用的數據結構分離,並將後者儘可能泛化,最大限度地實現算法重用。 這種泛化是基於模板的參數多態( parametric polymorphis
原创 設計模式學習筆記(三):模式的分類
模式的分類 模式依據其目的可分爲創建型( Creational )、結構型 (Structural) 、或行爲型 (Behavioral) 三種。創建型模式與對象的創建 有關;結構型模式處理類或對象的組合 ;行爲型模式描述類或對象
原创 冒號課堂節選:編程範式
編程範式 掌握一門語言的語法、工具和技巧固然重要,但那隻相當於學會一門兵器的招法,更重要的當然是心法。招法重形,心法重意。得形而忘意,無異捨本逐末;得意而忘形,方能遊刃有餘。下面要談的就是一種心法:編程範式。 範式譯自英文的
原创 zz C++的std::string的“讀時也拷貝”技術
嘿嘿,你沒有看錯,我也沒有寫錯,是讀時也拷貝技術。什麼?我的錯,你之前聽說寫過時才拷貝,嗯,不錯的確有這門技術,英文是Copy On Write ,簡寫就是COW,非常’牛’!那麼我們就來看看這個’牛’技術的效果吧。 我們先編寫一段程序
原创 zz 詳解Sizeof
前向聲明: sizeof ,一個其貌不揚的傢伙,引無數菜鳥竟折腰,小蝦我當初也沒少犯迷糊,秉着“辛苦我一個,幸福千萬人”的偉大思想,我決定將其儘可能詳細的總結一下。 但當我總結的時候才發現,這個問題既可以簡單,又可以複雜,所以本文有的
原创 設計模式學習筆記(五):創建型模式
創建型模式抽象了實例化過程 。它們幫助一個系統獨立於如何創建、組合、管理和表示它的那些對象 。一個類創建型模式使用繼承改變被實例化的類 ,而一個對象創建型模式將實例化委託給另一個對象。 隨着系統演化得越來越依賴於對象複合而不是類繼
原创 何爲框架?
什麼是框架( framework )?它與一般的庫( library )和工具包( toolkit )有何不同? 框架就是一組協同工作的類,它們爲特定類型的軟件構築了一個可重用的設計 。與庫和工具包不同之處在於前者側重設計重用 而
原创 [C++再學習系列] 深入extern關鍵字
變量的聲明與定義: A definition of a variable allocates storage for the variable and may also specify an initial value for
原创 冒號課堂節選:對象範式
對象範式 OOP 是一種計算機編程模式,它以對象作爲問題空間的基本元素,利用對象和對象間的相互作用來設計程序。所謂對象,是實際問題中實體的抽象,具有一定的屬性和功能。 OOP 的三個基本特性是:封裝性、繼承性和多態性。 OOP 雖然
原创 TCP狀態圖和常見問題
TCP 共有9 個網路狀態,其中涉及到關閉的狀態有5 個。 在我們編寫網絡相關程序的時候,這5 個狀態經常出現。因爲這5 個狀態相互關聯,相互糾纏,而且狀態變化觸發都是由應用觸發,但是又涉及操作系統和網絡,所以正
原创 設計模式學習筆記(八):重構與模式,參考書籍
備註 : 1. 模式常常組合使用,共同解決問題。 2. 模式是特定場景下優雅的解決方案,因此場景很關鍵。在軟件設計中,特定的場景可能是顯而易見的,可能是隱而不現的,有時甚至是設計者有意
原创 ICE常見編譯和運行(異常)錯誤
在編譯和 Ice 應用相關的文件中,經常因爲 ice 相關的文件包含關係而導致編譯無法通過,此時的錯誤一般提示和 handle.h 相關。然而想要解決這樣的錯誤,一般只需要把在無法編譯成 .o 文件的 .cpp 文件中和 ice 文件相關
原创 String和內存操作
C99 有很多和 string 相關的函數,如 strcat , strchr , strcmp , strcpy , strlen , strncat , strncmp , strncpy 等。然而使用 C++ 編程時,所有和 str