1. 程式人生 > 其它 >About this book (Code like pro in C#)

About this book (Code like pro in C#)

本書以您現有的程式設計技能為基礎,幫助您無縫提升您的編碼實踐或從Java或其他面嚮物件語言過渡到C#。您將學習編寫對企業開發至關重要的慣用C#程式碼。這本書討論了基本的後端技能,並將其應用於一個常見的職業挑戰:重構遺留程式碼庫,使其安全、乾淨、可讀。完成後,您將具備C#的專業水平,並準備好開始使用高階資源。

通過重新構建過時的遺留程式碼庫,使用新技術、工具和最佳實踐使其符合現代C#標準,您將不會學到“Hello,World”或電腦科學101基礎知識。在本書中,我們使用一個現有的程式碼庫(用.NETFramework編寫),並使用一個簡化的API將其重構為.NET5。

誰應該讀這本書

如果你是一個精通面向物件程式語言的開發人員,無論是Java、Dart、C++或其他語言,本書都可以幫助你快速掌握C#和.NET,而無需從頭開始。你的很多知識都會傳承下來,那麼為什麼要學習第500次寫if語句呢?

同樣,如果你精通程式語言,如Go、C、JavaScript、Python或任何其他主流語言,那麼在閱讀本書後,你可以寫出乾淨、地道的C#。您可能想了解一些面向物件的設計原則,但這不應該成為進入的障礙(如果您來自Go,請確保在使用介面時要格外注意;它們的工作原理不一樣)。

最後,如果你是一個使用C#已有一段時間的開發人員,並且想知道如何“提升”你的知識:這本書適合你。許多高階C#資源假定了入門或初學者資源中沒有涉及的知識。本書旨在彌合這一差距。

本書的組織方式:路線圖

與普通的技術書籍相比,這本書的結構有點非傳統。大多數技術書籍都是參考書,或者可以按任何順序閱讀。這本書不是一本參考書,為了充分利用它,你需要按順序閱讀章節。本書由以下六個部分組成,如圖1所示:

 圖1 閱讀本書的建議路線流程圖。按照步驟,回答問題以獲得理想的閱讀體驗。該流程圖的靈感來自唐納德·克努思(Donald Knuth)的《計算機程式設計的藝術》(the Art of Computer Programming)系列中的書籍結構流程圖。

  1. "使用C#和.NET”-在第1章中,我們討論了本書是什麼,它教了什麼,它不教什麼。第2章簡要介紹了C#語言和.NET生態系統,重點介紹了.NET與其他平臺的區別以及C#編譯故事。
  2. “現有程式碼庫”-在本部分中,我將指導您探索我們繼承的程式碼庫。這部分詳細介紹了現有程式碼庫,並討論了潛在的改進和設計缺陷。
  3. “資料庫訪問層”-在第2部分之後,我們開始重寫整個服務。在第3部分中,我們將重點關注建立一個新的.NETCore專案,並學習如何使用EntityFrameworkCore連線到雲(或本地)資料庫。其他討論的主題包括儲存庫/服務模式、虛擬方法和屬性以及密封類。
  4. “儲存庫層”-在第4部分中,我們進入了儲存庫/服務模式的領域,並實現了五個儲存庫類。您還學習了依賴注入、多執行緒(包括鎖定、互斥鎖和訊號量)、自定義相等比較、測試驅動開發、泛型、擴充套件方法和LINQ。
  5. “服務層”-下一步是實現服務層類。在第5部分中,我們從頭開始編寫了四個服務層,並討論了反射、模仿、耦合、執行時斷言和型別檢查、錯誤處理、結構和收益返回。
  6. “控制器層”-第6部分是我們重寫第2部分中最初繼承的服務的最後一步。這一部分看到我們編寫了兩個控制器類,並讓我們執行驗收測試。除了這些主題,我們還討論了ASPNETCore中介軟體、HTTP路由、自定義資料繫結、資料序列化和反序列化,以及在執行時生成OpenAPI規範。

本書中的許多章節(以及章節中的一些章節)都有練習,旨在測試你對材料的瞭解。你可以很快完成這些練習。我鼓勵您在遇到這些問題時完成這些問題,並重新閱讀您可能忽略或誤解的部分。

關於程式碼

在撰寫本文時,.NET環境可以分為三個主要部分:.NET Framework 4.x、.NET Core 3.x和.NET 5。除第3章和第4章外,整本書都使用了.NET 5(原因是您在閱讀這些章節後會理解)。

使用的C#語言版本是C#3和C#9(我們在本書的大部分內容中沒有使用任何C#9特有的功能,所以安裝C#8也可以)。因為C#語言是向後相容的,所以您只需要安裝最新版本(在編寫本文時,可以是C#8或C#9預覽版)。提供原始碼的章節為2、3和4(組合)、5、6、7、8、9、10、11、12、13和14。

要執行程式碼,需要安裝高於3.5的.NET Framework版本(如果要執行第3章和第4章中的程式碼)和.NET 5。如果要在本地執行本書中使用的資料庫或在安裝本書中所需的任何內容時遇到問題,可以在附錄C(“安裝指南”)中找到安裝說明。本書主要使用Visual Studio作為IDE,但如果您願意,您可以使用任何支援C#的IDE(或者根本不支援)。Visual Studio 2019有一個名為Visual Studio 2019社群的免費版本。當我們遇到需要Visual Studio的事情時,本書會這樣做。程式碼和.NET5應該在Windows、macOS和Linux上執行。本書儘可能使用命令列(或終端,對於macOS使用者),以避免對任何特定IDE或作業系統的依賴。

本書包含許多原始碼示例,包括編號列表和普通文字。在這兩種情況下,原始碼都採用這樣的固定寬度字型進行格式化,以將其與普通文字分開。有時程式碼也以粗體突出顯示與本章前面步驟不同的程式碼,例如當新功能新增到現有程式碼行時。

在許多情況下,原始原始碼已被重新格式化;添加了換行符,並修改了縮排以適應書中可用的頁面空間。在某些情況下,甚至這還不夠,列表中包括行延續標記(➥). 程式碼註釋伴隨著許多清單,突出了重要的概念。還要注意,對於新程式碼塊,大括號通常放在前面的行上。這不是合適的真實世界C#約定,但這樣做是為了保留空間。原始碼本身不使用此約定。

liveBook討論論壇

購買C#中的Code Like a Pro包括免費訪問Manning Publications運營的私人網路論壇,在那裡您可以對本書發表評論,詢問技術問題,並獲得作者和其他使用者的幫助。要訪問論壇,請轉到https://livebook.manning.com/book/code-like-a-pro-in-c-sharp/welcome/v-9/.您還可以在https://livebook.Manning.com/#/討論。

曼寧對讀者的承諾是提供一個場所,讓讀者之間以及讀者和作者之間進行有意義的對話。這不是提交人對任何具體參與量的承諾,提交人對論壇的貢獻仍然是自願的(且未支付)。我們建議你試著問他一些有挑戰性的問題,以免他的興趣分散!只要這本書還在印刷,就可以從出版商的網站訪問論壇和以前討論的檔案。