摘要: 貌似現在流行知乎live和微信公眾號, 博客已經有些過時了,但關鍵是你對技術的思考和總結, 采用什么方式其實不重要。
(1) 界面和邏輯的分離, view和controller可以由不同的人分別實現, 獨立變動
(2) 基于接口分層設計, 單向依賴且低耦合
(3) UI層數據類型的分類,共有共享的還是私有的
(4) 消息中心,同時支持同步/異步的消息廣播機制, Manager/Controller/Data Model可以各自訂閱自己感興趣的消息
閱讀全文
posted @
2018-05-19 19:50 Richard Wei 閱讀(3711) |
評論 (1) |
編輯 收藏
摘要: 現在世面上的操作系統個可以說是百花齊放,但是它們的基本功能都是類似的, 包括:
進程管理, 內存管理,文件系統,網絡通訊,安全機制,用戶界面,驅動程序等。
同時我們會發現它們的基本架構也都是類似的,包括應用層, API層, 內核層。
閱讀全文
posted @
2016-11-27 22:25 Richard Wei 閱讀(1744) |
評論 (0) |
編輯 收藏
摘要: 總之,無論學什么,先深入一個平臺, 從C++編譯器到CRT運行庫, 再到操作系統, 從用戶態API到內核和驅動,越深越好,然后再跳出這個平臺,接觸其平臺,會發現各個平臺基本都是大同小異。
閱讀全文
posted @
2015-09-18 00:49 Richard Wei 閱讀(4021) |
評論 (10) |
編輯 收藏
摘要: 盡管我N次吐槽基于GDI的DirectUI界面庫會隨著XP的淡出而逐漸失去市場, 但是實際工作中還是要經常和GDI打交道,外面招聘單位還是有不少Windows客戶端的開發崗位。 在這"移動互聯和"Web前端"橫行的"大數據"時代,很多同事開始向移動App和大數據轉型, 盡管這幾年PC客戶端的開發人員是只出不進, 但是只要Windows存在一天,我們的工作就還是有價值的..
閱讀全文
posted @
2014-11-15 00:01 Richard Wei 閱讀(8343) |
評論 (7) |
編輯 收藏
摘要: 技術深了可以再深,從C++編譯器到CRT運行庫, 再到操作系統, 從用戶態到內核和驅動, 最后到硬件, 原理背后還有原理, 真正能掌握所有細節的又有幾人呢?
閱讀全文
posted @
2014-10-12 22:03 Richard Wei 閱讀(5454) |
評論 (3) |
編輯 收藏
摘要: 異常和中斷是程序運行時比較重要的2個概念, 異常通常是由程序內部引起的(比較常見的如堆棧溢出, 空指針訪問等),中斷通常是由外部系統引起的, 外部產生的中斷在應用程序中很多時候會以事件或回調的方式通知出來(比如常見的IO事件)。
閱讀全文
posted @
2014-09-19 21:00 Richard Wei 閱讀(4136) |
評論 (3) |
編輯 收藏
摘要: 一個基本的圖形引擎要包括幾個方面的支持:位圖繪制,文字繪制,矢量繪制(如矩形,線條)。
可惜GDI這個20多年前發明的老古董,對這幾項的繪制, 除了位圖繪制可以通過AlphaBlend支持alpha通道,其他繪制都不支持alpha通道。
閱讀全文
posted @
2014-08-26 00:22 Richard Wei 閱讀(5269) |
評論 (3) |
編輯 收藏
摘要: 對于客戶端架構設計,個人覺得最大的原則就分層設計, 每層都封裝一個概念并保持獨立, 同時根據依賴倒置的原則, 站在上層客戶的角度提供接口。軟件工程里面的一條黃金定律:“任何問題都可以通過增加一個間接層來解決。
閱讀全文
posted @
2014-07-26 23:49 Richard Wei 閱讀(7374) |
評論 (2) |
編輯 收藏
摘要: 一直覺得客戶端開發的頂級就是瀏覽器開發, Webkit作為應用最廣泛的開源瀏覽器內核,無疑具有很高的研究價值
閱讀全文
posted @
2014-07-26 20:01 Richard Wei 閱讀(1622) |
評論 (0) |
編輯 收藏
摘要: 計算機的好處是它永遠不會欺騙你, 它只會按部就班的執行, 所以很多看似奇怪(甚至看似不可思議的問題), 只要你理解了程序背后的機制原理,都是可以找出根本原因的。
閱讀全文
posted @
2014-05-30 23:18 Richard Wei 閱讀(2675) |
評論 (2) |
編輯 收藏
摘要: 工作越久, 越覺得數據結構和算法才是程序的關鍵, 語言只是實現工具, 平臺只是運行環境,數據結構和算法才是解決問題的思路, 很多時候我們過度關注外圍的東西, 卻反而忽視了程序的內在本質。
閱讀全文
posted @
2014-05-15 20:10 Richard Wei 閱讀(1655) |
評論 (1) |
編輯 收藏
摘要: 簡單總結下,我們從C++的內置數組講到標準庫提供的vector, 最后談到C++11新增的array, 數組這個最基本的數據結構在C++中終于有了完整的支持。
閱讀全文
posted @
2014-05-12 22:05 Richard Wei 閱讀(2613) |
評論 (1) |
編輯 收藏
摘要: 本文講的的Windows 環境下exe可執行文件的運行原理,這里面涉及的知識很多,需要讀者對Windows操作系統(如注冊表、進程、線程、內存管理、PE文件格式等)、Windows編程(本文使用c++語言)等有所了解。
閱讀全文
posted @
2014-04-05 11:48 Richard Wei 閱讀(2472) |
評論 (0) |
編輯 收藏
摘要: 簡單總結下,操作系統通過一層層的封裝,隱藏了太多的東西, 很多看似簡單的行為, 實際上背后都有很復雜層層調用。理解這些原理,可以讓你的知識達到一定的深度,幫助你更好的解決問題。
閱讀全文
posted @
2014-04-05 00:57 Richard Wei 閱讀(5314) |
評論 (2) |
編輯 收藏
摘要: 計算機技術發展日新月異, 作為程序員的我們很多時候都很迷茫, 因為發現自己無論怎么努力, 也追趕不上新技術的步伐。這個時候我們有必要對整個技術發展的趨勢做一個比較全局的判斷, 這樣才能做到心中有譜, 才能把握自己學習的方向。 TIOBE的編程語言排行榜為我們指明了方向, 通過對該排行榜不同時間段的排名比較, 可以幫我們理清技術發展的趨勢。
閱讀全文
posted @
2014-03-16 22:48 Richard Wei 閱讀(5397) |
評論 (0) |
編輯 收藏
摘要: 如果說以前XP時代我們還有理由不關注高DPI, 那么在移動設備時代和大顯示器的高分辨率時代, 我們就沒有理由不關注高DPI了, 比如Surface Pro的分辨率是1920x1080, 這種情況下如果系統我們不設置高DPI, 基本上就沒法觸摸和操作了,所以現在普通程序對高DPI的支持已經成為趨勢了。
閱讀全文
posted @
2014-02-18 23:12 Richard Wei 閱讀(41864) |
評論 (10) |
編輯 收藏
摘要: 在XP時代我們的程序沒有響應后只能通過任務管理器強制殺掉,但是Vista之后情況變了, 我們仍然可以拖動失去響應的窗口,甚至可以嘗試最小化和關閉窗口, 我們把這個特性叫住Window Ghosting。
閱讀全文
posted @
2014-01-08 21:26 Richard Wei 閱讀(3231) |
評論 (3) |
編輯 收藏
摘要: 我觀察圈子里很多成功和不成功的技術人,提出一個觀點,那就是個人的核心競爭力是是他獨特的個性知識經驗組合。這個行業里擁擠著上百萬聰明人,彼此之間真正的不同在哪里?不在于你學的是什么技術,學得多深,IQ多少,而在于你身上有別人沒有的獨特的個性、背景、知識和經驗的組合。如果這種組合,1,絕無僅有;2,在實踐中有價值,3,具有可持續發展性,那你就具備核心競爭力。因此,當設計自己的發展路線時,應當最大限度地加強和發揮自己獨特的組合,而不是尋求單項的超越。而構建自己獨特組合的方式,主要是通過實踐,其次是要有意識地構造。
閱讀全文
posted @
2013-12-21 12:43 Richard Wei 閱讀(1758) |
評論 (0) |
編輯 收藏
摘要: 最后簡單總結下 , 我們可以看到Windows系統上基本沒有一種通用的抓屏技術可以高效的抓取所有的系統(XP/Win7/Win8), 很大一部原因是操作系統的顯示驅動模型在從XPDM向WDDM轉變, 應用層的API也在從GDI向D3D轉變 。 相對于Linux的穩定, Window的不斷發展和進步, 對開發人員究竟是喜是悲?
閱讀全文
posted @
2013-12-01 22:04 Richard Wei 閱讀(38813) |
評論 (16) |
編輯 收藏
摘要: 我們可以看到數組new[]和delete[]的關鍵是, C++編譯器在數組起始地址之前的4個字節保存了對象的數量N,后面會根據這個數量值進行N次的構造和析構 。
我們可以看到C++ 編譯器在背后干了很多事情,可能會內聯我們的函數, 也可以修改和產生其他一些函數, 而這是很多C開發者受不了的事情, 所以在內核級別, 很多人寧愿用C來減少編譯器背后的干擾。
閱讀全文
posted @
2013-11-17 21:17 Richard Wei 閱讀(5638) |
評論 (0) |
編輯 收藏