寫下標題,就想起冬冬那句"人生像個舞台,請良家婦女離開
" ,什麼時候開始,已寫不出那樣的文字。
在程式世界,記憶體,檔案,網路連線,資料庫會話,執行緒甚至一切的物件,都是資源。《pattern-oriented software architecture v3 --patterns for resource management 》(posa第三卷),講的就是資源管理,外表輕薄(145頁)而內裡熟悉,很好讀。
什麼資源需要管理?
全書把10個模式分成生命期分成三個部分:資源獲取,資源生命週期,資源釋放。
一、資源獲取
資源獲取,一是lookup模式,二是lazy/eager/partial 三種獲取模式。
1.lookup:
大家熟悉的corba的naming service,j2ee的jndi,com+的登錄檔,webservice的uddi,還有最有現實感的dns,所有這些,都是通過中介例項來發現和訪問資源,遮蔽資源的物理位置(還可以進一步遮蔽資源的負載均衡和故障轉移)。
幾個值得筆記的地方:
2.lazy acquisition:
hibernate的lazy load已經深入人心,一種樸素的jit思路。
幾個值得筆記的地方:
3.eager acquisition:
財大氣粗,記憶體多多的伺服器,喜歡在啟動時就將資料先裝進記憶體裡,使得執行時效能(performance)與可**(predictability)兼得,不會忽然來乙個時間不可控的資料庫查詢。
4.partial acquisition:
中庸從來都是解決實際問題的不錯方式,既然上面兩種方式互有長短,那我們可以把資源獲取分成多個階段。
比如郵件系統的認證模組,就會eager load這兩個月裡有登陸郵箱的活動使用者,而lazy load其他long time no see的使用者。
又如瀏覽器裡漸進的影象載入,或者資料驅動的網路協議中先解包資料報頭,再逐步獲取資料報體等等。
剩下還有6個模式,下篇繼續。
一切物件都是資源,請用模式管理 I
寫下標題,就想起冬冬那句 人生像個舞台,請良家婦女離開 什麼時候開始,已寫不出那樣的文字。在程式世界,記憶體,檔案,網路連線,資料庫會話,執行緒甚至一切的物件,都是資源。pattern oriented software architecture v3 patterns for resource m...
第二章 一切都是物件
string a new string 10 system.out.println a 0 null string b system.out.println b 編譯不通過 q的生命在此結束 x q 2 q cannot be resolved to a variable end of scope ...
JS學習總結1(一切都是物件)
一切 引用型別 都是物件。一 值型別 值型別包括string number boolean undefined null 二 引用型別 引用型別包括物件 object 函式 function 陣列 array 三 typeof操作符 作用 驗證變數是什麼資料型別。值型別 console.log ty...