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