你好,C++(簡體書)
商品資訊
ISBN13:9787302672586
出版社:清華大學出版社(大陸)
作者:陳良喬
出版日:2024/10/01
裝訂/頁數:平裝/366頁
規格:24cm*17cm (高/寬)
版次:一版
商品簡介
《你好,C 》主要介紹C 開發環境的搭建、基礎語法知識、面向物件編程思想以及標準模板庫的應用,特別針對初學者在學習C 過程中可能遇到的難點提供了解決方案。全書共分13章,以一個工資程序的不斷優化和完善為線索,展示了如何利用C 進行設計和解決實際問題。《你好,C 》遵循最新的C 23標準,更新了所有代碼和講解,並增加了新標準引入的特性,如智能指針、std::thread等,使讀者能夠掌握最新的C 知識。每章末尾都配有“本章練習”,幫助讀者通過實際編寫代碼來加深對知識的理解。
《你好,C 》語言風格輕鬆幽默,還收錄了一些公司的典型筆試題,無論是C 初學者還是中級程序員提升技能,都是極佳的選擇。同時,《你好,C 》也適合作為應用型本科及高職高專相關專業的教材使用。
作者簡介
陳良喬,程序員、自由撰稿人,畢業於西安交通大學。敏而好學,樂於分享,連續六年獲得微軟最有價值專家(MVP)稱號。因撰寫一系列Visual Studio 2010技術文章和Windows 7開發技術文章,2010年獲“MSDN原創之星”稱號。曾組織翻譯Bjane Stroustrup的《C 11 FAQ》。著有《我的第一本C 書》和《C語言程序伴侶》。
名人/編輯推薦
要掌握C 這門強大的編程語言嗎?本書將成為你的最佳伙伴!從C 的歷史淵源到未來發展,從基礎語法到高級特性,這本全面的指南涵蓋了你需要了解的一切。
特色亮點:
1. 全面覆蓋:基礎語法、面向物件設計、STL與模板、多線程編程,應有盡有。
2. 實踐導向:大量實例和練習,讓你在實操中掌握知識。
3. 深入淺出:作者憑借多年工作經驗,解答初學者最常見、最關切的問題。
4. step by step:詳細指導如何一步步編寫功能齊備的程序。
無論你是編程新手還是想要提升技能的開發者,這本書都能滿足你的需求。讓我們一起踏上C 大師之路,釋放你的編程潛力!
序
當你翻開本書的這一刻,是否正在尋找一本既通俗易懂又簡單實用的C 參考書?沒錯,這本書正是你要找的那本。
在本書的引導下,你的C 學習之旅將充滿樂趣。
學習C ,就是學習如何用這門語言描述和表達現實世界。本書系統地介紹了C 的基本數據類型、邏輯控制語句、函數、面向物件編程、類與物件,以及標準模板庫等核心概念。通過學習,你將能夠使用int、double、string等數據類型來描述現實世界的數據;掌握if...else等邏輯控制語句來實現條件判斷;理解如何用函數封裝算法;利用面向物件的封裝、繼承和多態來抽象現實世界;以及運用標準模板庫來簡化數據管理和算法處理。這些基礎知識是C 語言中最實用的核心部分,能幫助你用C 解決現實問題。
面對C 語言的複雜性,學習之路是否充滿挑戰?
答案是肯定的。但幸運的是,你擁有了《你好,C 》這本書。
本書不深究語法細節,也不堆砌編程技巧,而是以簡單實用為原則,用通俗易懂的方式介紹C 的精髓。通過閱讀本書,你將發現邏輯控制語句如何串聯程序流程,函數如何封裝程序邏輯,面向物件如何賦予程序結構,算法如何豐富程序功能。本書以一個工資程序的優化過程為例,展示了C 知識的實際應用,讓你在輕鬆的故事中掌握C 。
拜師學藝,不僅學習的是師傅的技術,更重要的是傳承師傅的經驗。作者憑借10多年的C 開發經驗和微軟最有價值專家(Most Valuable Professional,MVP)的榮譽,將豐富的實踐經驗融入本書。你將從中獲得關於如何選擇float和double、理解const關鍵字的重要性、區分指針和引用等實用問題的解答,使你從新手成長為熟練的開發者。如果你已是C 開發者,這些經驗同樣能助你的編程技能更進一步。
那麼,為何不立即開始我們的C 學習之旅呢?
配書資源
本書配套提供源代碼,讀者可用微信掃描下面二維碼獲取。如果在閱讀本書的過程中發現問題或有疑問,請聯繫booksaga@126.com,郵件主題為“你好,C ”。
致 謝
在本書的創作過程中,我得到了許多人的幫助和支持。感謝家人的默默支持,感謝康雁老師、周靜姐姐、唐總和蘭姐的教誨,感謝單春輝、丁春利、馬洪旭在困難時刻的無私幫助。特別感謝Elmar Driesch先生、Andreas Muench先生及Thorsten Thomsen先生的幫助和指導,以及Bjane Stroustrup先生在創作過程中的寶貴指導。感謝所有參與翻譯《C 0x FAQ中文版》的志願者們,本書的部分章節參考借鑒了該文檔。同時,也感謝網絡上的知識分享者們提供的資料。
感謝所有關心我的朋友,我愛你們!
陳良喬
2024年5月於西安
目次
第1部分 基礎篇
第1章 需要提前掌握的知識 2
1.1 Node中的請求與響應物件 2
1.1.1 原生Node處理HTTP請求 2
1.1.2 Express處理HTTP請求 4
1.1.3 Nest處理HTTP請求 7
1.2 TypeScript基礎與應用 7
1.2.1 TypeScript編譯 8
1.2.2 TypeScript類型系統 9
第2章 Nest初識 15
2.1 什麼是Nest 15
2.1.1 Nest概述 15
2.1.2 Nest的主要特點 15
2.1.3 Nest的應用場景 16
2.2 快速上手Nest CLI 16
2.2.1 Nest CLI的安裝 16
2.2.2 創建項目 17
2.2.3 生成指定的代碼片段 19
2.2.4 構建應用 22
2.2.5 啟動開發調試 24
2.2.6 查看項目信息 25
2.3 創建第一個Nest應用 25
2.3.1 生成後端項目 26
2.3.2 生成前端項目 26
2.3.3 準備工作 27
2.3.4 運行結果 29
2.3.5 模塊化開發 30
2.4 Nest的AOP架構理念 32
2.4.1 MVC架構概述 32
2.4.2 AOP解決的問題 33
2.4.3 AOP在Nest中的應用 33
2.5 IoC思想解決了什麼問題 40
2.5.1 IoC核心思想概述 40
2.5.2 IoC在Nest中的應用 41
2.6 學會調試Nest應用 44
2.6.1 Chrome DevTools調試 44
2.6.2 VS Code調試 46
2.6.3 擴展調試技巧 48
第3章 Nest核心概念介紹 51
3.1 貫穿全書的裝飾器 51
3.1.1 基本概念 51
3.1.2 裝飾器的種類 51
3.1.3 Nest中的裝飾器 59
3.2 井然有序的模塊化 60
3.2.1 基本概念 60
3.2.2 創建模塊 61
3.2.3 共享模塊 62
3.2.4 全局模塊 64
3.2.5 動態模塊 65
3.3 控制器與服務的默契配合 66
3.3.1 基本概念 66
3.3.2 Controller管理請求路由 67
3.3.3 Controller處理請求參數與請求體 68
3.3.4 Service處理數據層 70
3.3.5 服務與服務提供者 71
3.4 耳熟能詳的中間件 71
3.4.1 類中間件 71
3.4.2 函數式中間件 74
3.4.3 局部中間件 74
3.4.4 全局中間件 74
3.5 攔截器與RxJS知多少 75
3.5.1 基本概念 75
3.5.2 創建項目 76
3.5.3 攔截器的基本使用方法 76
3.6 數據之源守護者:管道 79
3.6.1 基本概念 79
3.6.2 內置管道 80
3.6.3 自定義管道 88
3.7 Nest實現文件上傳 89
3.7.1 初識Multer 89
3.7.2 單文件上傳 91
3.7.3 多文件上傳 94
3.7.4 上傳任意文件 98
3.7.5 文件驗證 99
第2部分 進階篇
第4章 Nest與數據庫 102
4.1 快速上手MySQL 102
4.1.1 安裝和運行 102
4.1.2 MySQL的常用命令 105
4.1.3 可視化操作MySQL 107
4.2 MySQL表之間的關係 112
4.2.1 一對一關係 112
4.2.2 一對多/多對一關係 119
4.2.3 多對多關係 121
4.3 快速上手TypeORM 126
4.3.1 基本概念 126
4.3.2 項目準備 126
4.3.3 創建模型及實體 126
4.3.4 定義數據列及類型 127
4.3.5 連接數據庫 128
4.3.6 使用Repository操作CRUD 129
4.3.7 使用QueryBuilder操作CRUD 131
4.4 使用TypeORM處理多表關係 134
4.4.1 一對一關係 134
4.4.2 一對多/多對一關係 140
4.4.3 多對多關係 142
4.5 在Nest中使用TypeORM操作MySQL 144
4.5.1 項目準備 144
4.5.2 使用EntityManager操作實體 147
4.5.3 使用Repository操作實體 148
4.5.4 使用QueryBuilder操作實體 151
第5章 性能優化之數據緩存 154
5.1 快速上手Redis 154
5.1.1 安裝和運行 154
5.1.2 Redis的常用命令 155
5.2 在Nest中使用Redis緩存 162
5.2.1 項目準備 162
5.2.2 Redis初始化 164
5.2.3 建表並構建緩存 165
5.2.4 運行代碼 167
5.2.5 設置緩存有效期 169
5.2.6 選擇合理的有效期 170
第6章 身份驗證與授權 171
6.1 Cookie、Session、Token、JWT、SSO詳解 171
6.1.1 什麼是身份驗證 171
6.1.2 什麼是授權 172
6.1.3 什麼是憑證 172
6.1.4 什麼是Cookie 172
6.1.5 什麼是Session 173
6.1.6 Session與Cookie的區別 173
6.1.7 什麼是Token 174
6.1.8 什麼是JWT 176
6.1.9 JWT與Token的區別 177
6.1.10 什麼是SSO 177
6.2 基於Passport和JWT實現身份驗證 180
6.2.1 基本概念 181
6.2.2 項目準備 181
6.2.3 用本地策略實現用戶登錄 182
6.2.4 用JWT策略實現接口校驗 184
6.2.5 代碼優化 188
6.3 基於RBAC實現權限控制 191
6.3.1 基本概念 191
6.3.2 數據表設計 192
6.3.3 項目準備 193
6.3.4 創建實體 194
6.3.5 啟動服務 196
6.3.6 實現角色守衛控制 196
6.3.7 生成測試數據 200
6.3.8 測試效果 202
第7章 系統部署與擴展 203
7.1 快速上手Docker 203
7.1.1 初識Docker 203
7.1.2 安裝Docker 204
7.1.3 Docker的使用 205
7.2 快速上手Dockerfile 209
7.2.1 Docker的基本概念 209
7.2.2 Dockerfile的基本語法 210
7.2.3 Dockerfile實踐 210
第3部分 擴展篇
第8章 單元測試與端到端測試 216
8.1 重新認識單元測試 216
8.1.1 什麼是單元測試 216
8.1.2 為什麼大部分公司沒有進行單元測試 217
8.1.3 為什麼要編寫單元測試 217
8.1.4 先編寫單元測試還是先編寫代碼 218
8.1.5 測試驅動開發 219
8.2 在Nest中使用Jest編寫單元測試 220
8.2.1 初識Jest 220
8.2.2 項目準備 223
8.2.3 編寫測試用例 224
8.2.4 實現業務代碼 225
8.2.5 重構代碼 229
8.3 集成測試 230
8.3.1 編寫測試用例 230
8.3.2 測試效果 232
8.4 端到端測試 232
8.4.1 編寫測試用例 233
8.4.2 實現業務代碼 235
第9章 日志與錯誤處理 237
9.1 如何在Nest中記錄日志 237
9.1.1 為什麼要記錄日志 238
9.1.2 內置日志器Logger 238
9.1.3 定制日志器 240
9.1.4 記錄日志的正確姿勢 241
9.1.5 第三方日志器Winston 241
9.2 Winston日志管理實踐 241
9.2.1 Winston的基礎使用 242
9.2.2 本地持久化日志 244
9.3 面向切面日志統計實踐 248
9.3.1 中間件日志統計 248
9.3.2 攔截器日志統計 249
9.3.3 過濾器日志統計 251
第4部分 Nest項目實戰篇
第10章 數字門店管理平臺開發 254
10.1 產品需求分析與設計 254
10.1.1 產品需求說明 254
10.1.2 功能原型圖 255
10.2 技術選型與項目準備 262
10.2.1 前端技術選型 262
10.2.2 初始化前端項目 262
10.2.3 前端架構設計 263
10.2.4 後端技術選型 264
10.2.5 初始化後端項目 265
10.2.6 後端架構設計 266
10.3 API接口及數據庫表設計 268
10.3.1 API接口功能劃分 268
10.3.2 數據庫設計 269
10.4 實現注冊登錄 273
10.4.1 頁面效果展示 273
10.4.2 接口實現 281
10.5 實現用戶與角色模塊 290
10.5.1 頁面效果展示 290
10.5.2 表關係設計 295
10.5.3 接口實現 299
10.6 實現商品與訂單模塊 303
10.6.1 頁面效果展示 304
10.6.2 表關係設計 306
10.6.3 接口實現 307
10.7 基於Redis實現商品熱銷榜 315
10.7.1 頁面效果展示 316
10.7.2 接口實現 317
10.8 實現活動模塊與定時任務 320
10.8.1 頁面效果展示 320
10.8.2 表關係設計 322
10.8.3 接口實現 323
10.9 使用Docker Compose部署項目 325
10.9.1 編寫後端Docker Compose文件 325
10.9.2 編寫Dockerfile文件 330
完結語:是終點,更是新的起點 334
一個小小的決定 334
時間的杠桿 334
結語 334
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。