原创 設計模式(1): 工廠模式

  工廠模式屬於創建型設計模式(Creational Patterns),實現了“工廠”概念的面向對象設計模式。就像其他創建型模式一樣,它也是處理在不指定對象具體類型的情況下創建對象的問題。工廠方法模式的實質是“定義一個創建對象的

原创 設計模式(0): 簡介及SOLID原則

  在軟件工程中,設計模式(design pattern)是對軟件設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。   設計模式並不直接用來完成代碼的編寫,而是描述在各種不同情況下,要怎麼解決問題的一種方案。面向對象設計

原创 大型網站技術架構筆錄(1):演化

一)大型網站軟件系統特點: 1)高併發、大流量:想想每年雙十一 2)高可用:7*24小時不間斷服務 3)海量數據:存儲管理海量數據 4)用戶分佈廣泛,網絡情況複雜 5)安全環境惡劣:黑客,黑客,黑客 6)需求快速變更,

原创 白話同步異步、阻塞非阻塞機制

  如果你想了解同步異步、阻塞非阻塞的基本概念,可以看下面,欲瞭解具體實現,請自行google^^,若有錯誤,請指出。 來看生活中的例子:   比如你在天貓超市買了東西,短信通知說快遞很快到了,這時候你有兩個選擇:   1)下

原创 圖算法(1):Dijkstra's algorithm

  Dijkstra’s algorithm使用了廣度優先搜索解決非負權圖的單源最短路徑問題,算法最終得到一個最短路徑樹。該算法常用於路由算法或者作爲其他圖算法的一個子模塊。舉例來說,如果圖中的頂點表示城市,而邊上的權重表示著城市

原创 C++泛型 && Java泛型實現機制

C++泛型   C++泛型跟虛函數的運行時多態機制不同,泛型支持的靜態多態,當類型信息可得的時候,利用編譯期多態能夠獲得最大的效率和靈活性。當具體的類型信息不可得,就必須訴諸運行期多態了,即虛函數支持的動態多態。   對於C++泛型,每

原创 樂觀鎖與悲觀鎖

  爲了得到最大的性能,一般數據庫都有併發機制,既然是併發,不可避免的將帶來數據訪問的衝突。爲了解決這個問題,大多數數據庫採取了併發控制。樂觀鎖和悲觀鎖是併發控制常用的技術手段。下面來看看吧。   樂觀鎖,顧名思義,就是保持一種樂觀精神,

原创 STL源碼剖析(4):容器(list)

  相較於vector的連續線性空間,list就顯得複雜許多,它的好處是每次插入或刪除一個元素,就配置或釋放一個元素空間。因此,list對於空間的運用有絕對的精準,一點也不浪費。而且,對於任何位置的元素插入或元素移除,list永遠是常數時

原创 設計模式(5): 命令模式

  命令(Command)模式:又稱Action模式或者Transaction模式。它屬於對象的行爲模式。   命令模式把一個請求或者操作封裝到一個對象中,於是這些命令可以被:   重複多次   取消   取消後又再重做   命令

原创 SQL必知必會Note(1-10)

第1章 瞭解SQL 【數據庫】保存有組織的數據的容器(通常是一個文件或一組文件)。 【表】某種特定類型數據的結構化清單,存儲在表中的數據是同一種類型的數據或清單。   在相同數據庫中不能兩次使用相同的表名,但在不同的數據庫中卻可以使用

原创 阻塞睡眠實現機制

  在看阻塞睡眠實現機制前,我們來看一下內核中廣泛用到的等待隊列。   Linux內核的等待隊列爲雙循環鏈表結構,與進程調度機制緊密結合,能夠用於實現核心的異步事件通知機制。它有兩種數據結構:等待隊列頭(wait_queue_head_

原创 計算機程序的構造和解釋筆錄(2-1):構造數據抽象

  現在到了數學抽象中最關鍵的一步:讓我們忘記這些符號所表示的對象。(數學家)不應該在這裏止步,有許多操作可以應用於這些符號,而根本不必考慮它們到底代表這什麼。                 (Hermann Weyl 思維的數學方式

原创 Go併發(1)

  Go從語言本身支持併發,而不是由某個庫或者模塊來實現併發,可謂天生麗質。goroutine從根本上與線程不同,goroutine更加輕量化。   看下面這個常見的網絡模型: package main import ( "fmt

原创 Quorum/NRW機制

  Quorom 機制,是一種分佈式系統中常用的,用來保證數據冗餘和最終一致性的投票算法,其主要數學思想來源於鴿巢原理。   什麼是鴿巢原理?   其中一種簡單的表述法爲:   若有n個籠子和n+1只鴿子,所有的鴿子都被關在鴿籠裏,那

原创 數據庫系統0T1(0):基礎概念

  數據庫,簡單來說可視爲電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據運行新增、截取、更新、刪除等操作。   數據庫存儲的基本對象是數據,數據可以是數字、文字、圖片、音頻、視頻等等。 數據庫的基本特徵   數據按一定的