3dwoo大學簡體電腦書店
C++碼農日記(全程視頻講解)
( 簡體 字)
作者:白振勇類別:1. -> 程式設計 -> C++ -> C++
出版社:清華大學出版社C++碼農日記(全程視頻講解) 3dWoo書號: 55667
詢問書籍請說出此書號!
缺書
NT售價: 645
出版日:1/1/2022
頁數:487
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302591054 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章入職準備 1
第01天求職與面試 1
第02天了解跨平臺開發 5
第2章開發命令行程序 9
第03天使用VS2019和Qt構建一個命令行程序 9
第04天使用pro文件與pri文件開發項目 21
第05天獲取程序的命令行參數 25
第06天帶菜單的終端程序 29
第07天使用VS2019調試程序 31
第08天使用QtCreator調試程序 39
第09天在Linux系統中以守護進程方式運行程序 45
第10天在Windows系統中以后臺服務方式運行程序 51
第11天讓程序在操作系統啟動時自動運行 60
第12天溫故知新 64
第3章庫的開發與第三方庫的使用 66
第13天開發一個DLL 66
第14天可動態加載的DLL 79
第15天將動態加載DLL的功能封裝到自定義類中 87
第16天動態加載DLL時區分Debug版/Release版 91
第17天利用動態加載DLL技術制作插件 96
第18天POCO庫安裝與使用 103
第19天溫故知新 114
第4章跨平臺文件操作 115
第20天使用操作系統API操作文本文件 115
第21天跨平臺開發中的數據類型、大小端 126
第22天使用操作系統API操作二進制文件 135
第23天封裝文件操作類 141
第24天可以讀寫INI文件的自定義類 143
第25天使用tinyXML訪問XML文件 146
第26天內存數據保存、恢復 155
第27天升級的二進制文件格式 166
第28天設計向后兼容的二進制文件 173
第29天溫故知新 181
第5章多線程和進程內通信 183
第30天跨平臺的多線程應用 183
第31天在多線程應用中使用互斥鎖保護數據 194
第32天在多線程中使用事件進行同步 201
第33天使用單體模式保證數據唯一性 209
第34天檢測線程的運行狀態 213
第35天使用POCO庫開發多線程應用 217
第36天為線程專門分配一個CPU內核 224
第37天溫故知新 228
第6章進程間通信 229
第38天阻塞式網絡通信程序 229
第39天非阻塞式套接字 237
第40天單客戶端的網絡通信程序 253
第41天TCP/IP多客戶端通信 269
第42天通信用結構體的內存對齊、位域大小端處理 279
第43天溫故知新 293
第7章異步串口通信 294
第44天串口通信的基礎知識 294
第45天封裝跨平臺的異步串口通信類庫 296
第46天簡單的串口通信程序 309
第47天開發簡單的通信規約 316
第48天雙向通信 336
第49天使用結構體組織通信數據 352
第50天用串口傳輸文件 357
第51天確認幀、三次重發 368
第52天串口調試工具 395
第53天溫故知新 414
第8章訪問數據庫 415
第54天數據庫、SQL語言基礎 415
第55天使用POCO訪問數據庫 426
第56天溫故知新 434
第9章項目實戰——Client/Server模式的數據中心 435
第57天建立結構化內存數據區 435
第58天數據發布/多客戶端訂閱 447
第59天在線更新內存模型 475
第60天數據斷面保存與恢復 483
參考文獻 488
VI

VII
《C++碼農日記(全程視頻講解)》共9章。第1章講述程序員入職前的準備以及C++跨平臺開發入門知識,著重介紹求職面試相關知識,以及Qt的安裝配置、開發環境搭建、第三方跨平臺庫基礎知識、配套資源等內容;第2~8章通過50多個實際案例講述命令行程序的開發、DLL(動態鏈接庫)的開發與第三方庫的使用、跨平臺文件操作、多線程和進程內(多線程間)通信、進程間通信、異步串口通信、數據庫訪問等常用開發技能;第9章通過一個數據中心的案例介紹C/S模式(Client/Server模式,客戶端/服務器模式)軟件的綜合開發技能。本書提供的案例覆蓋了C/S模式軟件開發工作的常見場景。
《C++碼農日記(全程視頻講解)》側重無界面程序的開發,倡導的理念是系統全面、貼近實戰。
《C++碼農日記(全程視頻講解)》可作為計算機軟件類專業本科生或研究生、C++軟件工程師、C++編程愛好者的參考資料。
一、為什么要寫本書
  很多朋友在學校參加過“C++語言”課程的學習,或許還讀過《C++Primier》《C++編程思想》等經典著作,但是當參加工作進入C++研發崗位時,卻仍然感覺不會寫程序。這是為什么呢?因為這些C++經典著作側重介紹C++理論知識,很少講到軟件設計、工程實踐等方面的內容。這些書能夠用淺顯易懂的語言把深刻的理論知識講得非常透徹,讓讀者非常容易理解,因此稱之為經典,但是這些經典卻很少介紹怎樣完整開發一款軟件,也很少講到在實際工作中開發一款軟件到底會用到哪些知識。即使市面上有所謂的C++實戰類書籍,它們中的大部分也只是增加了教學視頻,或再介紹些網絡開發知識和STL的用法,甚至都沒有介紹多個客戶端情況下的網絡通信程序設計、通信規約的設計與開發、插件開發、向后兼容的二進制文件格式的設計與開發等內容,而這些才是工作中真正需要用到的技能。用建筑房屋來舉例,這些書只給讀者提供了一堆建筑材料和特性說明,卻沒有提供建造一座完整房屋的具體步驟、方法和經驗,假如讀者想要建造一間浴室、一個游泳池、一間客廳或一棟別墅,僅靠一堆建筑材料和說明是無法完成的。介紹工作中真正用得上的實用技術才是本書關注的內容。作者從業20年來,經常需要給新員工做入職培訓,但是手頭卻缺少一本全面、系統介紹C++跨平臺研發實踐技能的書籍,因此在完成《Qt 5/PyQt 5實戰指南》的書稿后,作者就冒出了編寫本書的想法。依賴多年的一線研發工作經驗,對于本書的寫作作者一氣呵成。考慮到系統性、實用性,在編寫本書時,著重思考了下列問題。
* 一名C++軟件工程師在入職前應該做哪些準備?
* 怎樣編寫命令行程序?
* 怎樣讓程序以后臺服務方式運行?
* 怎樣開發可跨平臺(Windows/Linux)的程序?
* 怎樣讓程序隨操作系統自動啟動?
* 怎樣開發DLL?
* 插件是什么?
* 怎樣開發插件?
* 怎樣引入第三方庫?
* 怎樣訪問磁盤上的文件?
* 怎樣設計向后兼容的文件格式?
* 怎樣開發多線程程序?
* 怎樣開發網絡通信程序?
* 怎樣開發串口通信程序?
* 怎樣開發更加可靠的通信規約?
* 怎樣訪問數據庫?
* 怎樣利用單體模式實現對數據的唯一訪問?
* 怎樣設計、開發C/S(客戶端/服務器)程序?
* 怎樣利用觀察者模式實現訂閱、發布功能?
* 怎樣保存程序的運行數據斷面并在程序重新啟動后恢復數據?
  
  通過60天的學習,這些問題在本書中都能一一找到答案。本書側重介紹客戶端/服務器模式的無界面程序開發,而《Qt 5/PyQt 5實戰指南》著重介紹界面類應用程序的開發方法,因此,在C++跨平臺程序開發方面,這兩本書互為補充。
  在本書寫作之初,作者就曾考慮應該用什么風格進行寫作。后來聯想到自己20年的工作經歷,想起自己如何從一位非計算機專業的學生通過努力一步一個腳印走到今天,所以,作者最終決定以日記體這種方式進行寫作。選擇日記體,不僅可以體驗每天進步一點點的成就感,還可以讓讀者在本書學習的最后階段回顧個人的成長歷程,非常具有紀念意義。
二、內容特色
  與同類書籍相比,本書有如下特色。
  (1)為求職、面試指明方向。
  很多人在求職時面對企業的求職及面試要求四處碰壁、一籌莫展。殊不知,求職、面試應該及早準備,甚至在畢業前一兩年就開始。通過本書第1章的學習,可以熟悉C++軟件研發崗位的求職必備知識,了解面試注意事項,為求職、面試指明方向。
  (2)系統全面、貼近實戰。
  市面上大部分所謂的C++實戰類書籍,一般都講解C++基礎語法知識,配備一些短小的案例,但是看完后還是不知道該怎樣從無到有開發完整的Client/Server(客戶端/服務器)程序。本書的案例來自作者20年C++跨平臺研發工作經驗,結合軟件研發工作中典型案例進行設計,還原真實場景,完全貼近實戰。例如,帶菜單的命令行程序、讓程序以后臺服務方式運行、多客戶端的網絡通信程序設計、進程間通信、串口通信及串口調試工具、通信規約設計與實現等,這些案例所采用的技術全都來自真實的軟件項目。除此之外,很多案例還涉及軟件設計技能以及不同設計模式的運用,如工廠模式、觀察者模式、單例模式、策略模式等,這對于培養、提升軟件研發人員的設計思維有很好的指引作用。
  (3)60天輕松掌握C++跨平臺開發技能。
  所謂跨平臺,指的是開發一套代碼,只需要進行編譯而無須進行修改就能運行在不同的平臺上。也就是說,對于同一套程序,既能在Windows上編譯運行,也能在UNIX/Linux上編譯運行。對跨平臺的需求已經成為現今軟件研發工作的一種趨勢。本書案例融入了跨平臺軟件研發所需掌握的相關內容,如類庫選擇、數據的大端小端知識、開發通信軟件的注意事項、跨平臺數據庫訪問、跨平臺文件訪問、跨平臺多線程程序開發等多方面的知識。通過掌握本書內容,就可以滿足C++跨平臺開發的常用技能要求。絕大部分案例采用標準C++、操作系統API、STL庫進行實現,運行時避免依賴第三方庫。本書旨在通過60天時間帶領讀者循序漸進地進入客戶端/服務器程序設計、開發的世界。
  (4)拒絕從零開始。
  配套代碼含有改動前的基礎代碼(也稱作基線代碼)及改動后的最終代碼。其中改動前的代碼在src.baseline目錄,改動后的最終代碼在src目錄。在閱讀時,讀者可以在改動前的基礎代碼上對照案例講解的內容直接進行修改,這樣可以有效提高學習效率,方便練手。通過利用WinMerge等對比軟件,也可以對比改動前后的代碼,查看改動的具體內容,加深對案例的理解。
  (5)代碼兼容性好。
  絕大部分案例采用標準C++以及通過調用操作系統API來實現功能,從而減少對第三方類庫的依賴,個別案例引入第三方類庫。在案例開頭一般都配有運行效果圖,并說明是否依賴第三方類庫以及依賴哪種第三方類庫。
  (6)配套資源豐富,提供超值服務。
  本書提供以下配套資源。
* 程序代碼、輔助資料等,請掃描此處二維碼或到清華大學出版社官方網站本書頁面下載。
* 微課視頻(44集,共1150分鐘),請掃描各章節對應位置的二維碼觀看,讀者可跟隨視頻中演示的步驟進行學習。
* 第2~8章附有配套練習,配套練習的參考答案見配套資源。
* 想獲取更多跨平臺開發知識,請關注微信公眾號“軟件特攻隊”(詳見配套資源)。
* 加入書友群,與更多朋友交流軟件開發技能。書友群見配套資源中的“書友群”文件夾。
三、閱讀建議
* 先下載本書附帶的源代碼(見配套資源中),閱讀本書時請查閱對應源代碼進行學習。
* 本書的源代碼分為兩部分,改動前的代碼在src.baseline目錄中,各案例以改動前的代碼為基礎進行修改,改動后的最終代碼在src中。可以使用WinMerge等對比軟件對比案例中改動前后的代碼,以便查看到底進行了哪些改動。
* 第1章為環境搭建及準備工作,第2~8章介紹C++跨平臺軟件開發的各方面技能,第9章為綜合案例。請根據需求進行閱讀。
* 部分章節的代碼依賴POCO、tinyXML或Qt類庫,在各章節開頭已進行說明。
* 在進行描述時,有的接口只寫了接口名稱,但是并未寫明詳細的參數列表,請根據上下文理解。
* 因篇幅所限,文中部分代碼做了省略,請查看附帶的源代碼。
* 代碼清單中第一行一般是源代碼的文件路徑,并非源代碼內容。
* 為了節省篇幅,個別頭文件代碼中省略了命名空間描述namespace xxx {},請查看附帶的源代碼。
* 本書與《Qt 5/PyQt 5實戰指南》一起堪稱C++跨平臺研發領域的雙劍合璧。同時學習這兩本書,既能學到無界面類程序的開發方法,又能學到界面類程序的開發方法。
四、讀者對象
* 有一定C++語法基礎的軟件愛好者。
* 在職的C++跨平臺軟件研發人員。
* 計算機科學與技術相關專業有C++語法基礎的畢業生。
五、致謝
  感謝領導、同事對我工作中的幫助與指引、包容與理解。感謝我的家人對我一如既往的支持,感謝父母教會我勤勞、不怕吃苦,感謝妻子讓我懂得溫柔,感謝女兒帶給我的各種 感動。
  限于編者的水平和經驗,加之時間比較倉促,書中疏漏或者錯誤之處在所難免,敬請讀者批評指正,有興趣的朋友可發送郵件

編 者
  2021年7月于濟南
  
II
III
pagetop