C++開源庫

        一、網絡

              網絡庫必須掌握 ACE 和 libevent, 一個是重量級的網絡庫,一個是輕量級的網絡庫。仔細想想,現在那個程序不用網絡啊。不懂網絡, 你將寸步難行啊。熟悉這兩個開源庫的前提是你必須懂socket的原理, 給大家推薦的好書就是 《UNIX網絡編程》,看懂這本書就可以了,其他的什麼《windows網絡編程》這些都不用看, 因爲網絡編程,你學會了伯克利的套接字, 你就可以在任何平臺上進行網絡編程了,不需要學什麼windows下的網絡編程, 因爲windows下的網絡也是從伯克利套接字搞過來的,如果你學習《windows網絡編程》, 那麼你那天在linux,unix下進行網絡編程,你還得在學習一下。

       二、數據庫

             數據庫嘛, 開源的Mysql和開源的PostgreSQL只要懂其中一個就可以了,商業數據庫在掌握一個Oracle就可以了,文件數據庫掌握 sqlite。 不過請大家注意, 不要被上面數據庫名字給迷惑了,數據庫的本質是SQL語句, 一定要懂數據庫的基本原理,熟練應用SQL語言,懂數據庫的優化,存儲過程等。數據庫的原理搞懂了,拿什麼數據庫過來都輕鬆掌握, 就不會在乎是Mysql還是Oracle了。

       三、日誌操作

             日誌操作推薦大家熟悉 log4cpp這個日誌庫, 支持多線程, 日誌重定向到網絡等都有, 反正你能想到的日誌的功能, 都有。

日誌嘛,一個是方便查找問題, 方便記錄程序運行的一些情況。這是必須的。

       四、管理後臺

             衆所周知, 寫程序是給其他人用的,不是自己用, 所以在程序的易用性上,多給對方提供一些可以直接查看的管理界面,顯得分成重要。爲程序提供一個web的管理界面,方便用戶登錄上去查看程序的各種信息, 很有必要。

             我這裏有一個方便的web後臺管理的http實現,可以方便的集成到應用程序中。在IE裏面輸入監聽的端口,就可以查看程序的狀態。代碼還沒有仔細整理。有需要的弟兄可以給我留言,給大家發。

       五、讀取配置文件

             所有的程序都必須有配置文件, 方便配置一些項目, 爲程序提供靈活性。 所以寫程序,必須有讀取配置文件的封裝類。

       六、內存池

             所有的進程都需要分配內存, 對C/C++來說, 分配和管理內存是已經很有挑戰性的工作。

             給大家推薦 nedmalloc 這個開源的內存池庫。nedmalloc是一個跨平臺的高性能多線程內存分配庫,很多庫都使用它。

       七、緩存庫

             衆所周知, 緩存庫用得最多的就是 memcache 了。在做數據庫開發的時候特別有用。

       八、腳本

             腳本是一個很有意思的東西,很多功能,其實我們只要寫個腳本就可以完成,代碼量少,開發速度快。

             必須掌握的腳本,比較通用的要算 perl 了, 很古老的語言,但是功能太強大了。我可以保證的說,.net,java能幹的工作,肯定可以讓perl來幹。 C能幹的, perl不一定能幹。 perl作爲linux, unix的系統集成的腳本語言,必須學會。

             lua 語言, 這個語言, 在遊戲行業用得比較多。不推薦學。

             python 腳本, 功能很強大, 推薦學。

        上面這些是所有程序都會用到的比較通用的功能。

        在不同的應用領域, 需要掌握不同開源庫, 比如搞遊戲開發的, 可能需要掌握開源的UI庫CEGUI, 開源的3D引擎OGRE等。

搞分佈式開發的可能會有分佈式的文件系統庫等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章