像C#高手一樣編程 Code Like a Pro in C#
Jort Rodenburg 譯毛鴻燁 吳曉梅
- 出版商: 北京航空航天大學
- 出版日期: 2022-06-01
- 定價: $774
- 售價: 8.5 折 $658
- 語言: 簡體中文
- 頁數: 366
- 裝訂: 平裝
- ISBN: 7512436882
- ISBN-13: 9787512436886
-
相關分類:
C#
- 此書翻譯自: Code Like a Pro in C# (Paperback)
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
單元測試的藝術, 2/e (The Art of Unit Testing: with examples in C#, 2/e)$650$507 -
為你自己學 Git$500$390 -
領域驅動設計精粹 (Domain-Driven Design Distilled)$390$371 -
Kubernetes 最佳實務 : 成功部署應用程式的藍圖 (Kubernetes Best Practices: Blueprints for Building Successful Applications on Kubernetes)$520$411 -
$454C# 程序員面試算法寶典 -
深入解析 C#, 4/e (C# in Depth, 4/e)$774$735 -
Kent Beck 的測試驅動開發:案例導向的逐步解決之道 (Test-Driven Development: By Example)(TDD)$560$437 -
Clean Code 學派的風格實踐:重構遺留 Codebase,突破 C# 效能瓶頸 (Clean Code in C#: Refactor your legacy C# code base and improve application performance by applying best practices)$690$538 -
Spring Boot:建置與執行 (Spring Boot: Up and Running: Building Cloud Native Java and Kotlin Applications)$580$458 -
CQRS 命令查詢職責分離模式 (Command Query Responsibility Segregation)$500$390 -
$469C# 編程魔法書 -
C++ 碼農日記 (全程視頻講解)$774$735 -
C++ 新經典:模板與泛型編程$534$507 -
Rust 程式設計, 2/e (Programming Rust: Fast, Safe Systems Development, 2/e)$1,200$948 -
玩真的!Git ✕ GitHub 實戰手冊 - coding 實境、協同開發、雲端同步, 用最具臨場感的開發實例紮實學會! (Git for Programmers)$580$458 -
Visual C# 從入門到精通, 10/e$1,134$1,077 -
Python ✕ ChatGPT ✕ Excel 高效率打造辦公室作業 + 數據分析自動化$699$552 -
現代軟件工程:如何高效構建軟件$479$455 -
駕馭 ChatGPT 4: 探索 Azure OpenAI 與 Cognitive Service for Language 開發實踐 (使用.NET 與 Node.js)$650$507 -
C# 函數式編程, 2/e (Functional Programming in C#, 2/e)$768$730 -
Pragmatic TDD:以 DDD 寫出鬆散耦合、文件化和高品質的程式碼 (Pragmatic Test-Driven Development in C# and .NET: Write loosely coupled, documented, and high-quality code with DDD using familiar tools and libraries)$720$540 -
$359程序員的制勝技 -
實戰領域驅動設計:高效軟體開發的正確觀點、應用策略與實作指引 (Implementing Domain-Driven Design)$1,280$960 -
簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 Javascript 為例 (Grokking Simplicity: Taming Complex Software with Functional Thinking)$1,000$790 -
先整理一下?|個人層面的軟體設計考量 (Tidy First?: A Personal Exercise in Empirical Software Design)$480$379
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
75折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$375 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書將會討論一些C#編程重要的後端技能,
並且在典型情形(重構一個代碼庫,以確保其安全,整潔和可讀)中練習應用這些技能。
本書包括6部分,
第1部分位基礎知識講解,
第2部分為代碼設計和改進,
第3部分為訪問數據庫,
第4部分為存儲模式,
第5部分為服務層講解,
第6部分為控制器類講解。
在完成這些內容和練習之後,讀者將對C#語言具有更深刻的理解,
並且可以準備學習更高水平的內容。
作者簡介
Jort Rodenburg
是一名專門從事C#的軟件工程師,他為許多領域的應用構建軟件。
同時,Jort還是一名教授,他指導並教授面向對象編程的課程,以幫助開發人員掌握C#和.NET。
目錄大綱
第1部分使用C#和.NET第1章C#和.NET相關概念及使用說明3
1.1 C#的優勢4
1.1.1 C#的經濟性5
1.1.2 C#的可維護性5
1.1.3C#的易於操作性6
1.2為什麼有時不使用C#7
1.2.1操作系統開發7
1.2.2嵌入式開發7
1.2.3數值計算8
1.3C#使用入門8
1.4本書涉及C#的主要內容10
1.5本書不涉及的C#的內容11
1.6總結12
第2章.NET及其編譯13
2.1.NET框架14
2.2.NET514
2.3兼容CLI的語言的編譯15
2.3.1C#代碼(高級語言)的編譯17
2.3.2通用中間語言(彙編層)的編譯19
2.3.3本地代碼(處理器層)的處理26
2.4練習27
2.5總結28
第2部分現有代碼庫第3章這個代碼有多糟糕33
3.1飛翔荷蘭人航空公司簡介34
3.2應用代碼庫的基本要求35
3.2.1映射對象關係35
3.2.2GET/flight 終端地址——檢索所有航班的信息36
3.2.3GET/flight/ 終端地址——獲取特定航班信息37
3.2.4POST/booking/終端地址——預定航班38
3.3保存部分現有代碼40
3.3.1評估現有數據庫架構及數據表40
3.3.2現有代碼庫的網絡服務配置文件41
3.3.3查看現有代碼庫中的模型和視圖47
3.4總結54
第4章非託管資源管理55
4.1FlightController——GET/flight56
4.1.1GET/flight終端地址以及它的功能56
4.1.2方法簽名——響應類型的含義和typeof58
4.1.3使用集合收集航班信息60
4.1.4使用連接字符串的弊端61
4.1.5使用IDisposable釋放託管資源61
4.1.6使用SqlCommand查詢數據庫63
4.2FlightController: GET/flight/{flightNumber}66
4.3FlightController: POST/flight69
4.4The FlightController: DELETE/flight/{flightNumber}74
4.5練習75
4.6總結76
目錄像C#高手一樣編程第3部分數據庫訪問層第5章使用Entity Framework Core設置項目和數據庫79
5.1創建.NET5解決方案和項目80
5.2設置和配置網絡服務84
5.2.1配置一個.NET5網絡服務84
5.2.2創建和使用HostBuilder86
5.2.3創建Startup文件89
5.2.4使用存儲/服務模式作為網絡服務架構92
5.3構建數據庫訪問層93
5.3.1Entity Framework Core和逆向94
5.3.2DbSet和Entity Framework Core工作流程96
5.3.3配置方法和環境變量97
5.3.4Windows中環境變量設置98
5.3.5macOS中環境變量設置99
5.3.6通過代碼檢索運行環境變量99
5.4練習102
5.5總結103
第4部分存儲層第6章測試驅動開發和依賴註入107
6.1測試驅動開發108
6.2CreateCustomer方法112
6.2.1驗證輸入參數113
6.2.2使用arrange、act和assert流程編寫單元測試114
6.2.3無效字符的驗證115
6.2.4具有\[DataRow\]屬性的內聯測試117
6.2.5對像初始化器和自動生成代碼118
6.2.6構造器、反射和異步編程120
6.2.7lock鎖、mutex互斥鎖和semaphore信號量122
6.2.8同步執行轉換到異步執行123
6.2.9Entity Framework Core測試124
6.2.10依賴註入控制依賴關係的使用126
6.3練習132
6.4總結133
第7章對像比較134
7.1GetCustomerByName方法135
7.1.1可空類型及其應用137
7.1.2LINQ和擴展方法137
7.2C#的由來142
7.2.1應用EqualityComparer創建“比較器”類144
7.2.2覆蓋Equals測試等價性146
7.2.3重載等價運算符147
7.3練習150
7.4總結151
第8章stub泛型和耦合153
8.1Booking存儲庫的實現154
8.2關註點分離與耦合156
8.3對像初始化器的使用160
8.4stub單元測試的使用163
8.5泛型編程的使用167
8.6使用可選參數提供默認參數169
8.7條件語句、Func和switch表達式171
8.7.1三元條件運算符171
8.7.2使用函數數組進行分支172
8.7.3switch語句和表達式173
8.7.4Entity Framework Core中的待處理更改查詢174
8.8練習177
8.9總結179
第9章擴展方法、流和抽像類181
9.1Airport存儲庫的實現182
9.2Airport對象的獲取——通過機場ID數據庫183
9.3AirportID輸入參數的驗證185
9.4輸出流186
9.5Airport對象的獲取——通過數據庫查詢191
9.6Flight存儲庫的實現199
9.6.1IsPositive擴展方法和“魔法數字”201
9.6.2數據庫中航班的獲取206
9.7練習209
9.8總結210
第5部分服務層第10章反射和模擬213
10.1回顧存儲/服務模式214
10.1.1服務類的用途是什麼?215
10.2實現CustomerService216
10.2.1為成功做準備——創建類骨架216
10.2.2刪除自己代碼的方法217
10.3BookingService的實現219
10.3.1跨架構層的單元測試223
10.3.2stub和mock的區別224
10.3.3Moq庫模擬類的使用225
10.3.4存儲庫調用231
10.4練習233
10.5總結236
第11章運行類型檢查回顧和錯誤處理237
11.1驗證服務層方法的輸入參數238
11.1.1is和as運算符的運行類型檢查241
11.1.2is運算符的類型檢查242
11.1.3as運算符的類型檢查243
11.1.4驗證服務層方法總結244
11.2BookingServiceTests類清理244
11.3服務類中的外鍵約束247
11.3.1Flight存儲庫的調用248
11.4練習260
11.5總結261
第12章IAsyncEnumerable和yield return的使用262
12.1程序需要AirportService類嗎?263
12.2FlightService類的實現264
12.2.1通過FlightRepository獲取特定航班信息264
12.2.2數據流視圖組合268
12.2.3trycatch代碼塊與yield return使用276
12.2.4GetFlightByFlightNumber的實現281
12.3練習287
12.4總結288
第6部分控制器層第13章中間件、HTTP路由以及其響應293
13.1存儲/服務模式中的控制器類294
13.2決定要實現的控制器類別296
13.3FlightController的實現297
13.3.1HTTP響應(GetFlights)的返回298
13.3.2使用中間件將依賴項註入控制器301
13.3.3GET/Flight/{FlightNumber}終端地址實現310
13.4將HTTP請求路由至控制器和方法314
13.5練習319
13.6總結320
第14章JSON序列化/反序列化以及自定義模型的綁定321
14.1BookingController類的實現322
14.1.1數據反序列化簡介323
14.1.2使用\[FromBody\]特性反序列化傳入的HTTP數據327
14.1.3自定義模型綁定器及其對應方法特性的使用328
14.1.4CreateBooking終端地址方法邏輯的實現332
14.2驗收測試及添加Swagger中間件337
14.2.1OpenAPI的手動驗收測試338
14.2.2生成OpenAPI規範342
14.3結束語348
14.4總結348
附錄A練習答案349
附錄B整潔代碼檢查表355
附錄C安裝指南357
附錄DOpenAPI360
附錄E閱讀列表363
