//cs-a.ecimg.tw/items/DJAA2VA900HBEW7/000001_1710758659.jpg;
商品編號:DJAA2V-A900HBEW7

重構:改善.NET與C#應用程式的設計,償還欠下的技術債(使用GitHub Copilot與Visual Studio)

$672
$850
  • P幣

    全盈+PAY單筆消費滿1200回饋80P幣(每帳號限乙次,限量5000名)

  • 登記送

    【7-11】單筆滿$350純取貨/取貨付款訂單登記送韓風拌拌炸雞兌換券乙張(限量)

  • 登記送

    【第四波】書店/閱讀器/寵物指定品單筆滿$1,500登記送100P幣(使用效期30/限量)

付款方式
出貨
  • PChome 倉庫出貨,24小時到貨
配送
宅配滿$490免運,超取滿$350免運
  • 宅配到府(本島/低溫)
    滿$699免運
  • 宅配到府(本島/常溫)
    滿$490免運
  • 超商取貨(常溫)
    滿$350免運
  • 超商取貨(低溫)
    滿$699免運
  • i郵箱(常溫)
    滿$290免運

商品評價

5.0
共 1 則評價
5.0
100%
4.0
0%
3.0
0%
2.0
0%
1.0
0%
最相關
*柏*
2024/06/09
商品詳情
作者:
譯者:
AI人工智慧小組(GPT、博碩編輯室)編譯/陳傳興(Bruce Chen)審校
ISBN:
9786263337787
出版社:
出版日期:
2024/03/26
  • 內文簡介

  • <內容簡介>

    『技術債在每個程式倉庫(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。

    【彩色圖片】
    博碩文化官網也有提供本書使用的螢幕畫面截圖及彩色圖表。


    ★目錄:

    審校序
    推薦序
    貢獻者
    前言

    Part 1:在Visual Studio中使用C#進行重構
    第1章:技術債、程式碼異味與重構
    1.1 理解技術債和遺留程式碼
    1.2 識別程式碼異味
    1.3 介紹重構
    1.4 案例研究:雲霄航空公司
    1.5 小結
    1.6 問題
    1.7 延伸閱讀

    第2章:重構簡介
    2.1 技術需求
    2.2 重構行李費用計算器
    2.3 在其他編輯器中的重構
    2.4 小結
    2.5 問題
    2.6 延伸閱讀

    第3章:重構程式碼流程和迭代
    3.1 技術需求
    3.2 重構登機應用程式
    3.3 控制程式流程
    3.4 執行個體化物件
    3.5 迭代集合
    3.6 重構LINQ陳述式
    3.7 檢查並測試我們重構後的程式碼
    3.8 小結
    3.9 問題
    3.10 延伸閱讀

    第4章:在方法層級的重構
    4.1 技術需求
    4.2 重構航班追蹤器
    4.3 重構方法
    4.4 重構建構函式
    4.5 重構參數
    4.6 重構為函式
    4.7 介紹靜態方法和擴充方法
    4.8 檢查並測試我們重構後的程式碼
    4.9 小結
    4.10 問題
    4.11 延伸閱讀

    第5章:物件導向重構
    5.1 技術需求
    5.2 重構航班搜尋系統
    5.3 透過重構來組織類別
    5.4 重構與繼承
    5.5 使用抽象控制繼承
    5.6 為更好的封裝進行重構
    5.7 透過介面和多型來改善類別
    5.8 檢查並測試我們重構後的程式碼
    5.9 小結
    5.10 問題
    5.11 延伸閱讀

    Part 2:安全地重構
    第6章:單元測試
    6.1 技術需求
    6.2 理解測試和單元測試
    6.3 使用xUnit測試程式碼
    6.4 重構單元測試
    6.5 探索其他測試框架
    6.6 採取測試心態
    6.7 小結
    6.8 問題
    6.9 延伸閱讀

    第7章:測試驅動開發(TDD)
    7.1 技術需求
    7.2 什麼是TDD?
    7.3 使用Visual Studio的TDD
    7.4 何時使用TDD?
    7.5 小結
    7.6 問題
    7.7 延伸閱讀

    第8章:使用SOLID避免程式碼反模式
    8.1 識別C#程式碼中的反模式
    8.2 撰寫SOLID程式碼
    8.3 考慮其他的架構原則
    8.4 小結
    8.5 問題
    8.6 延伸閱讀

    第9章:進階單元測試
    9.1 技術需求
    9.2 使用Shouldly建立易讀的測試
    9.3 使用Bogus產生測試資料
    9.4 使用Moq與NSubstitute模擬依賴關係
    9.5 使用Snapper固定測試
    9.6 使用Scientist .NET進行實驗
    9.7 小結
    9.8 問題
    9.9 延伸閱讀

    第10章:防禦性程式設計技巧
    10.1 技術需求
    10.2 介紹雲霄API
    10.3 驗證輸入內容
    10.4 防止null值
    10.5 超越類別
    10.6 進階型別使用
    10.7 小結
    10.8 問題
    10.9 延伸閱讀

    Part 3:利用AI和程式碼分析進階重構
    第11章:AI輔助重構:使用GitHub Copilot
    11.1 技術需求
    11.2 介紹GitHub Copilot
    11.3 在Visual Studio中開始使用GitHub Copilot
    11.4 使用GitHub Copilot Chat進行重構
    11.5 使用GitHub Copilot Chat撰寫文件
    11.6 使用GitHub Copilot Chat產生Test Stub
    11.7 理解GitHub Copilot的限制
    11.8 案例研究:雲霄航空公司
    11.9 小結
    11.10 問題
    11.11 延伸閱讀

    第12章:Visual Studio中的程式碼分析
    12.1 技術需求
    12.2 在Visual Studio中計算程式碼度量
    12.3 在Visual Studio中進行程式碼分析
    12.4 探索進階的程式碼分析工具
    12.5 案例研究:雲霄航空公司
    12.6 小結
    12.7 問題
    12.8 延伸閱讀

    第13章:建立一個Roslyn分析器
    13.1 技術需求
    13.2 理解Roslyn分析器
    13.3 建立一個Roslyn分析器
    13.4 使用RoslynTestKit測試Roslyn分析器
    13.5 將分析器分享為Visual Studio擴充功能
    13.6 小結
    13.7 問題
    13.8 延伸閱讀

    第14章:使用Roslyn分析器重構程式碼
    14.1 技術需求
    14.2 案例研究:雲霄航空公司
    14.3 建立一個Roslyn分析器程式碼修正
    14.4 使用RoslynTestKit測試程式碼修正
    14.5 將Roslyn分析器發佈為NuGet套件
    14.6 小結
    14.7 問題
    14.8 延伸閱讀

    Part 4:企業中的重構
    第15章:溝通技術債
    15.1 克服重構的障礙
    15.2 溝通技術債
    15.3 優先處理技術債
    15.4 獲得組織的認同
    15.5 案例研究:雲霄航空公司
    15.6 小結
    15.7 問題
    15.8 延伸閱讀

    第16章:採用程式碼標準
    16.1 技術需求
    16.2 理解程式碼標準
    16.3 建立程式碼標準
    16.4 在Visual Studio中進行格式化和程式碼清除
    16.5 使用EditorConfig套用程式碼標準
    16.6 小結
    16.7 問題
    16.8 延伸閱讀

    第17章:敏捷重構
    17.1 在敏捷環境中的重構
    17.2 成功應用敏捷重構策略
    17.3 完成大規模重構
    17.4 重構出錯時的復原方式
    17.5 部署大規模重構
    17.6 案例研究:雲霄航空公司
    17.7 小結
    17.8 打造更永續的軟體
    17.9 問題
    17.10 延伸閱讀


    <作者簡介>

    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開發人員指南》,為繁體與簡體中文化的主要貢獻者。
購物須知
寄送時間
全台灣24h到貨,遲到提供100元現金積點。全年無休,週末假日照常出貨。例外說明
送貨方式
透過宅配送達。除網頁另有特別標示外,均為常溫配送。
消費者訂購之商品若經配送兩次無法送達,再經本公司以電話與Email均無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
送貨範圍
限台灣本島與離島地區註,部分離島地區包括連江馬祖、綠島、蘭嶼、琉球鄉…等貨件,將送至到岸船公司碼頭,需請收貨人自行至碼頭取貨。注意!收件地址請勿為郵政信箱。
註:離島地區不配送安裝商品、手機門號商品、超大材商品及四機商品。
售後服務
缺掉頁更換新品
執照證號&登錄字號
本公司食品業者登錄字號A-116606102-00000-0
關於退貨
  • PChome24h購物的消費者,都可以依照消費者保護法的規定,享有商品貨到次日起七天猶豫期的權益。(請留意猶豫期非試用期!!)您所退回的商品必須回復原狀(復原至商品到貨時的原始狀態並且保持完整包裝,包括商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性)。商品一經拆封/啟用保固,將使商品價值減損,您理解本公司將依法收取回復原狀必要之費用(若無法復原,費用將以商品價值損失計算),請先確認商品正確、外觀可接受再行使用,以免影響您的權利,祝您購物順心。
  • 如果您所購買商品是下列特殊商品,請留意下述退貨注意事項:
    1. 易於腐敗之商品、保存期限較短之商品、客製化商品、報紙、期刊、雜誌,依據消費者保護法之規定,於收受商品後將無法享有七天猶豫期之權益且不得辦理退貨。
    2. 影音商品、電腦軟體或個人衛生用品等一經拆封即無法回復原狀的商品,在您還不確定是否要辦理退貨以前,請勿拆封,一經拆封則依消費者保護法之規定,無法享有七天猶豫期之權益且不得辦理退貨。
    3. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,一經您事先同意後始提供者,依消費者保護法之規定,您將無法享有七天猶豫期之權益且不得辦理退貨。
    4. 組合商品於辦理退貨時,應將組合銷售商品一同退貨,若有遺失、毀損或缺件,PChome將可能要求您依照損毀程度負擔回復原狀必要之費用。
  • 若您需辦理退貨,請利用顧客中心「查訂單」或「退訂/退款查詢」的「退訂/退貨」功能填寫申請,我們將於接獲申請之次日起1個工作天內檢視您的退貨要求,檢視完畢後將以E-mail回覆通知您,並將委託本公司指定之宅配公司,在5個工作天內透過電話與您連絡前往取回退貨商品。請您保持電話暢通,並備妥原商品及所有包裝及附件,以便於交付予本公司指定之宅配公司取回(宅配公司僅負責收件,退貨商品仍由特約廠商進行驗收),宅配公司取件後會提供簽收單據給您,請注意留存。
  • 退回商品時,請以本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋),原封包裝後交付給前來取件的宅配公司;如果本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋)已經遺失,請您在商品原廠外盒之外,再以其他適當的包裝盒進行包裝,切勿任由宅配單直接粘貼在商品原廠外盒上或書寫文字。
  • 若因您要求退貨或換貨、或因本公司無法接受您全部或部分之訂單、或因契約解除或失其效力,而需為您辦理退款事宜時,您同意本公司得代您處理發票或折讓單等相關法令所要求之單據,以利本公司為您辦理退款。
  • 本公司收到您所提出的申請後,若經確認無誤,將依消費者保護法之相關規定,返還您已支付之對價(含信用卡交易),退款日當天會再發送E-mail通知函給您。