C++ Boost強化班課程,通過對Boost幾個實用組件的學習,掌握高吞吐量、低延遲的服務器端應用開發的有效知識,且通過最終項目的歷練,學員將對高性能服務器端應用開發有一個清晰的認識,并能熟練使用Boost相關的類庫來開發服務器端應用。
課程模塊
C++ Boost強化班課程由以下模塊組成:
Module04 - C++ Boost
Boost是由C++標準委員會成員發起、眾多C++業界高人參與設計并實現的一個涉及面廣、質量高且業已廣泛使用的C++標準后備庫,其中 TR1已經被納入C++0x標準庫。不論從風格和內容組織上講,都可以認為Boost項目是C++標準庫的延伸。截止到boost 1.43版本,boost項目擁有大約100個用途廣泛的實用庫。這部分課程將介紹服務器端開發所需要的幾個組件:
- 容器與數據結構
介紹boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等組件。 - 字符串算法和文字處理
介紹boost.lexical_cast, boost.format, boost.string_algo等組件。 - 正則表達式
正則表達式語法(perl正則表達式語法)的講解,boost.regex庫的使用。 - 智能指針
詳細介紹shared_ptr、scoped_ptr、weak_ptr等智能指針的使用。 - 函數對象相關
詳細介紹boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等組件。 - Boost.Signals2 - 實現回調機制
Boost Signal2:線程安全的Signal-Slot機制 (Publishers → Signals/Subscribers → Slots),即Observer模式的實現; - 序列化
通過實例熟悉boost.serialization庫的用法。 - 日期與時間
boost.date_time庫的詳細介紹。 - 多線程
作為服務器端開發必不可少的內容之一:多線程支持,boost提供了一個跨平臺的線程庫:boost.thread。
本單元的課程詳細介紹boost.thread。 - 網絡編程
boost.asio庫,通過對各類操作系統原生的socket API以及事件多路分離、異步I/O API的封裝,構成了一個性能優秀、便于編程的網絡編程框架,使復雜的網絡編程任務變得簡單、安全、并且高效。
本單元的課程通過一系列的示例來展示:通過asio來構建TCP同步/異步服務器和客戶端、UDP同步/異步服務器和客戶端應用,從而熟悉asio的接口和編程套路。
Module08 - 項目實戰
項目實戰可選以下項目之一:
- 項目1:X-Messenger Servers
IM(即時通信)服務器群,類似于MSN、QQ等IM的服務器。可以基于Boost.asio或ACE實現。 - 項目2:X-Messenger Client
IM(即時通信)客戶端軟件,類似于MSN、QQ等IM的工具。實現Contacts管理、P2P文件傳輸、P2P一對一文本聊天、群聊等現代IM客戶端功能,可以基于Boost.asio或ACE實現。 - 項目3:X-DB
一個小型的關系型數據庫系統,包括服務器和客戶端實現,建議基于Boost相關組件實現。 - 項目4:X-Crawler
一個網絡爬蟲,即搜索引擎的前端,負責收集網絡上的數據(網頁內容、解析URL)供搜索引擎使用。 - 其他項目,可由學員自行定義。
課程資源
可獲取的課程資源見:教學資源。