Windows 程序員必備的知識和工具


最近一直忙於項目,好久沒寫文章了,今天終於有些時間,把一些沉淀和思考總結一下,希望對大家有所幫助,也是對知識的一次梳理。

轉眼做windows開發已經又有5年的時間了,5年時間一直徘徊在幾個大系統之間,原型設計,組件設計,重構,features實現,調試,修改bug,寫過C++,用過COMATL,寫過.Net,做過互操作,寫過services用過WCF,可以說十八般武藝至少都嘗試過,不敢說精通,但是至少對大部分的問題有自己的理解。

首先我把目標鎖定在Windows平台,因為我的工作要求我在這個平台下去做,實戰經驗也都是在這個平台上面積累起來的。對於LinuxJava我也會關注一些相關的東西,也會去學習,但是限於個人興趣,同時也是為了更好的在windows平台上面完成我的工作。

首先我們來說說做Windows開發的必備知識,我們的目標是寫運行在windows上的代碼,所以我們需要對Windows 本身有所了解,這樣在我們寫的代碼遇到相關問題的時候我們才知道該干什么,什么是對的,什么事不對的,那么以下我所列舉的就是最基本的一些知識。

1.       進程和線程的關系以及同步,線程池技術。

2.       什么是用戶模式,什么是內核模式,什么是windows session/terminal

3.       什么是虛擬內存,為什么會有內存泄漏,如何去抓內存泄露。

4.       什么叫對象,什么叫句柄,如何監控句柄和對象的泄露。

5.       什么叫注冊表,和COM有什么關系,.Net是怎么建立起來的,互操作的原理是什么。

下面說說工具,好的工具往往可以達到事半功倍的效果,對的時候用對的工具很重要。

Procexp.exe:有了這個工具所有callstack, DLL,句柄, 調用關系一目了然。

Procmon.exe:這個工具可以幫你監控差不多所有類型的文件。

Wireshark: 遇到網絡問題的時候,抓包分析很方便。

Performance: memory Leak, 分析用戶態和內核態相關的問題很有用。

Windbg/SOS 當你需要調試,客戶環境又不允許你用visual studio的時候,通過他們你可以看到一切你想看的東西。

 

時間關系先寫這些啦,希望對大家有所幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM