ISBN: 9786263337787
出版日期: 2024-03-26
作者: Matt Eland
譯者: AI人工智慧小組(GPT、博碩編輯室)
裝訂: 平裝.單色印刷.480頁.23.
『技術債在每個程式倉庫(codebase)中幾乎無所不在。它是一種隱喻,代表著軟體演變過程中留下的小小麻煩(有時並不那麼小),例如捷徑、混亂、設計不相符等問題,這些問題往往是由於軟體無法適應不斷變化的外部因素所造成的。如果不加以控制,這些問題就會導致工作效率急遽下降,而重構(refactoring)正是開發者處理這個問題的主要工具。這是每位開發者都應該掌握的重要技能。』——NimblePros首席架構師 Steve "ardalis" Smith
『這是一本.NET資淺到資深開發者都能受益的書。程式開發沒有人不需要重構,而重構未必需要很多高深的理論才能做,只要你學好本書的精髓,沒有Visual Studio一樣可以重構,只是有工具的幫忙可以發揮加分效果,這是我在審校本書時很深的體悟。』——微軟最有價值專家(Microsoft MVP) 陳傳興(Bruce Chen)
重構:改善.NET與C#應用程式的設計,償還欠下的技術債
Refactoring with C#
使用GitHub Copilot與Visual Studio
每個軟體專案剛開始時都是一塊全新的綠地(greenfield)樂園,但技術債(technical debt)往往比預期更早出現,軟體專案很快就會變成一片棕地(brownfield)荒野,徒留滿地遺留程式碼(legacy code)和技術債。在本書中,你將了解技術債的概念與成因,並學習使用Visual Studio的現代化工具,以及C# 12和.NET 8的最新語言功能,以此安全地重構你的C#程式碼。
我們將一步步指引你學會使用xUnit和Moq、Snapper、Scientist .NET等函式庫,使用這些工具,你就能執行更進階的單元測試,安全地進行重構。我們也會詳述SOLID原則,以及新版C#帶來的防禦性程式設計技巧,藉此打造更容易維護的程式碼。我們還會說明如何執行程式碼分析,並撰寫自訂的Roslyn分析器,來檢測和解決程式碼中獨有的問題。
程式設計的性質正在發生變化,為了迎接AI帶來的衝擊,本書「第11章」會專門討論GitHub Copilot Chat這個AI助理,看看它如何協助我們進行重構、測試、撰寫文件和產生程式碼。最後,我們也會討論如何在敏捷團隊和企業組織中,向領導者們溝通技術債的風險與重構的必要性,並獲得組織的支持與尊重。
讀完本書,你將理解重構的本質,了解如何安全、有效、可重複地償還應用程式中的技術債,同時為企業帶來價值。無論你是新手開發者,還是有多年經驗的資深開發者,相信你們都能在本書中找到一些實用的提示和技術。
★學習目標★
・理解技術債的成因、影響及預防方法
・探索重構類別、方法和單行程式碼的不同做法
・如何使用Moq等函式庫撰寫有效的單元測試
・理解SOLID原則,以及如何打造可維護的程式碼
・GitHub Copilot Chat如何協助開發者分析、改善和測試程式碼
・應用程式碼分析和自訂Roslyn分析工具,確保程式碼保持整潔
・在敏捷團隊中正面表達技術債的風險,並採用一致的程式碼標準
【範例程式碼】
讀者可以從GitHub下載本書的範例程式碼,如果程式碼有更新,作者也會直接更新在存放庫上:https://github.com/PacktPublishing/Refactoring-with-CSharp。
【彩色圖片】
博碩文化官網也有提供本書使用的螢幕畫面截圖及彩色圖表。
作者簡介
Matt Eland
作者簡介
Matt Eland
Matt Eland是AI人工智慧領域的微軟最有價值專家(Microsoft MVP),從2001年開始從事.NET的工作。Matt曾任資深工程師、軟體工程經理及.NET程式設計講師。他目前是俄亥俄州哥倫布市附近Leading EDJE公司的AI專家和資深顧問,他利用C#和相關技術協助公司滿足軟體工程和資料科學方面的需求。Matt在他的社群中演說和寫作,並在攻讀資料分析碩士學位期間,共同組織了Central Ohio .NET Developers Group。Matt的個人網站:MattEland.dev。
審校者簡介
陳傳興(Bruce Chen)
由MS-DOS 6.22與Intel 486 DX2-66進入資訊領域,在QBasic寫下第一行Hello World,就愛上了開發的世界,目前任職於遠東金士頓科技擔任資深工程師。現任微軟最有價值專家(Microsoft MVP),喜歡分享技術心得於部落格(https://blog.kkbruce.net),瀏覽量超過七百萬。STUDY4與twMVC社群核心成員。合著出版作品有《ASP.NET MVC 4網站開發美學》、《ASP.NET MVC 5網站開發美學》。合譯出版作品有《Martin Fowler的企業級軟體架構模式》。協助翻譯GitHub上擁有17.2K星星的《ASP.NET Core開發人員指南》,為繁體與簡體中文化的主要貢獻者。
Zon | Jumlah Pesanan (RM) | Kos Penghantaran (RM) |
---|---|---|
West Malaysia | Kadar Rata | 6.00 |
Zon | Item/Berat | Kos Penghantaran (RM) |
---|---|---|
East Malaysia | Pertama 1.00 kg | 13.00 |
Tambahan 1.00 kg | 5.00 | |
Singapore | Pertama 1.00 kg | 25.00 |
Tambahan 1.00 kg | 5.00 | |
Australia, New Zealand | Pertama 1.00 kg | 159.77 |
Tambahan 0.50 kg | 52.65 | |
Austria, Denmark, Finland, Ireland, Switzerland, Russia | Pertama 1.00 kg | 157.78 |
Tambahan 0.50 kg | 34.31 | |
Brunei, Cambodia, Laos, Mongolia | Pertama 1.00 kg | 175.10 |
Tambahan 0.50 kg | 87.14 | |
Belgium,France, Germany, Netherlands, Spain, U.K | Pertama 1.00 kg | 150.94 |
Tambahan 0.50 kg | 30.46 | |
China | Pertama 1.00 kg | 96.44 |
Tambahan 0.50 kg | 25.35 | |
Bangladesh, Brazil, Iraq, Pakistan, Qatar, S.Arabia, UAE, Sri Lanka | Pertama 1.00 kg | 118.52 |
Tambahan 0.50 kg | 24.96 | |
South Africa | Pertama 1.00 kg | 118.52 |
Tambahan 0.50 kg | 24.96 | |
Philippines | Pertama 1.00 kg | 91.42 |
Tambahan 0.50 kg | 15.29 | |
Canada, United States, Mexico | Pertama 1.00 kg | 162.58 |
Tambahan 0.50 kg | 35.90 | |
Hong Kong | Pertama 1.00 kg | 80.63 |
Tambahan 0.50 kg | 29.06 | |
India | Pertama 1.00 kg | 113.30 |
Tambahan 0.50 kg | 22.28 | |
Indonesia | Pertama 1.00 kg | 107.35 |
Tambahan 0.50 kg | 24.87 | |
Japan | Pertama 1.00 kg | 112.97 |
Tambahan 0.50 kg | 35.03 | |
Macau | Pertama 1.00 kg | 92.93 |
Tambahan 0.50 kg | 13.82 | |
Singapore | Pertama 1.00 kg | 74.75 |
Tambahan 0.50 kg | 21.49 | |
Taiwan | Pertama 1.00 kg | 94.42 |
Tambahan 0.50 kg | 34.76 | |
Thailand | Pertama 1.00 kg | 94.10 |
Tambahan 0.50 kg | 28.25 | |
Vietnam | Pertama 1.00 kg | 98.94 |
Tambahan 0.50 kg | 14.34 |