定價: | ||||
售價: | 561元 | |||
庫存: | 已售完 | |||
LINE US! | 詢問這本書 團購優惠、書籍資訊 等 | |||
此書籍已售完,調書籍需2-5工作日。建議與有庫存書籍分開下單 | ||||
付款方式: | 超商取貨付款 |
![]() |
|
信用卡 |
![]() |
||
線上轉帳 |
![]() |
||
物流方式: | 超商取貨 | ||
宅配 | |||
門市自取 |
為您推薦
類似書籍推薦給您
【簡介】 『技術債在每個程式倉庫(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 延伸閱讀
類似書籍推薦給您
【簡介】 這是一個科技發達、訊息快速傳遞的世界。本書以C#程式語言為實作對象,以圖像解說呈現資料結構的概念與運作,藉由C#程式語言的特色和語法來豐富資料結構的內涵,是學習資料結構最佳入門書。 全書重要主題如下: ●以淺顯、易懂的C#語言演示敘述、語法 ●認識C#程式語言OOP特有屬性和存取子,定義方法採「運算式主體定義」 ●使用C#程式語言詮釋、解說資料結構的多樣性,把理論化繁為簡,讓學習者能全盤掌握 ●範例皆有完整程式碼,學與做相互並行,不只能輕鬆上手,更能加快學習成效 ●搭配一目了然的圖像演示,系統化呈現資料,知識內涵以表格條理化,按部就班的圖解步驟,讓程式範例說明立體化,學習者跟上就能學會 ●各章節末皆有針對內容的課後習作,包含測驗和實作題型,規劃自己的學習進 度,練習或加強學習知識的範疇 期能把握最嚴謹的態度,輔以最精要的表達方式,降低閱讀的壓力,筆者深信本書能讓學習者對資料結構有更多收穫。 【目錄】 第一章 認識Visual C# 1.1 使用Visual Studio 2017 1.2 C#程式語言結構 1.3 Visual C#基本語法 1.4 運算子 1.5 流程結構 1.6 方法 課後習作 第二章 話說資料結構 2.1 資料是什麼? 2.2 資料結構簡介 2.3 演算法 2.4 分析演算法的效能 課後習作 第三章 善用陣列 3.1 話說陣列 3.2 陣列維度 3.3 計算陣列位址 3.4 矩陣 3.5 字串簡介 課後習作 第四章 鏈結串列 4.1 類別、物件和其成員 4.2 單向鏈結串列 4.3 環狀鏈結串列 4.4 雙向鏈結串列 4.5 鏈結串列的應用 課後習作 第五章 堆疊和遞迴 5.1 堆疊 5.2 堆疊應用 5.3 遞迴 課後習作 第六章 排隊的智慧──佇列 6.1 認識佇列 6.2 其他常見佇列 課後習作 第七章 樹狀結構 7.1 何謂樹? 7.2 二元樹 7.3 走訪二元樹 7.4 二元搜尋樹 7.5 平衡樹 課後習作 第八章 圖形結構 8.1 認識圖形和其定義 8.2 圖形的資料結構 8.3 圖形追蹤 8.4 擴張樹 8.5 最短路徑 課後習作 第九章 條理分明有排序 9.1 認識排序 9.2 換位置的交換排序 9.3 能插隊的插入排序 9.4 有選擇權的排序法 9.5 合併排序法 9.6 基數排序法 課後習作 第十章 眾裡找它談搜尋 10.1 常見搜尋法 10.2 費氏搜尋法 10.3 雜湊搜尋法 10.4 雜湊法的碰撞問題 課後習作
類似書籍推薦給您
【簡介】 由微軟MVP、MCSD認證專家與大學教師共同編著,是一本適合大專院校教學,以及MTA、MCSD認證課程的先修教材。內容豐富從基礎到進階,從地端到雲端,進而邁向AI影像辨識與OpenAI API開發,範例解說詳細,讓初學者學習完全無障礙。 ■ C#物件導向程式設計篇 以深入淺出方式讓初學者具有物件導向的觀念,並以主控台專案介紹C#資料型別、流程控制、陣列與方法(函式)、類別與物件、繼承、多型、介面、檔案存取、例外處理…等,進而領會出物件導向程式設計的要領。 ■ 視窗應用程式設計篇 介紹視窗程式開發,例如清單與容器、對話方塊、鍵盤與滑鼠事件、功能表與工具列、多表單與MDI 多表單的應用,使初學者具備建構豐富的視窗應用程式。 ■ 資料庫程式設計篇 介紹ADO.NET資料庫存取、交易處理、預存程序等議題。同時介紹 LINQ 和 Entity Framework存取陣列、集合物件、DataSet、SQL 資料庫等資料來源。 ■ 網路應用程式與跨平台行動裝置網站設計篇 介紹 ASP.NET MVC Web應用程式開發,讓初學者理解MVC的開發方式,並透過jQuery Mobile整合ASP.NET MVC建置跨平台書籍管理系統與書籍查詢行動網站。 ■ Azure雲端服務、影像辨識與OpenAI API應用篇 介紹Microsoft Azure雲端運算平台、OpenAI API與C#整合,透過App Services部署雲端網站、建置Azure SQL Database雲端資料庫,使用Azure認知服務分析影像資訊與臉部偵測,以及利用OpenAI API開發ChatGPT聊天機器人與AI繪圖程式,進而建置智慧化的商用應用程程式。 【目錄】 ch01 Visual Studio環境建置與C#程式架構 1.1 Visual Studio簡介 1.2 安裝Visual Studio 1.3 C#程式架構 ch02 資料型別與主控台應用程式 2.1 C#資料型別 2.2 C# 運算子 2.3 主控台應用程式 2.4 主控台應用程式格式化輸出入 2.5 資料型別轉換 2.6 列舉資料型別 2.7 結構資料型別 ch03 流程控制 3.1 選擇結構 3.2 重複結構 ch04 陣列與方法 4.1 陣列 4.2 規則與不規則陣列 4.3 結構與結構陣列 4.4 方法 4.5 方法的使用 4.6 引數的傳遞方式 4.7 如何在方法間傳遞陣列 4.8 方法多載 4.9 區塊變數、區域變數、靜態變數與類別欄位 ch05 視窗應用程式 5.1 Windows Forms App視窗應用程式專案 5.2 物件導向程式設計觀念 5.3 第一個Windows Forms App視窗應用程式 5.4 表單檔的組成 5.5 認識整合開發環境 5.6 控制項的操作 ch06 物件與類別 6.1 前言 6.2 物件與類別 6.3 物件導向程式設計的特性 6.4 物件與類別的建立 6.5 實例 - 堆疊 ch07 繼承、多型、介面 7.1 繼承 7.2 靜態成員 7.3 多型 7.4 介面與實作 7.5 delegate委派型別 7.6 結構與類別的關係 7.7 List泛型類別 7.8 視窗應用程式 ch08 列舉器與集合 8.1 使用列舉器瀏覽陣列內容 8.2 集合類別 8.3 泛型與非泛型集合類別實作 ch09 例外與檔案處理 9.1 try{...}catch{...}finally{...}語法 9.2 例外類別 9.3 自訂例外處理 - 使用throw敘述 9.4 例外類別繼 9.5 System.IO命名空間常用類別介紹 9.6 DirectoryInfo類別 9.7 FileInfo類別 9.8 檔案讀寫 9.9 Path類別 9.10 Drivelnfo類別 ch10 表單與基礎控制項 10.1 Form表單介紹 10.2 Label標籤控制項 10.3 LinkLabel連結標籤控制項 10.4 ToolTip提示控制項 10.5 Button按鈕控制項 10.6 TextBox文字方塊控制項 10.7 MessageBox.Show顯示對話方塊方法 ch11 常用控制項(一) 11.1 RadioButton選項按鈕控制項 11.2 CheckBox核取方塊控制項 11.3 容器控制項 11.4 清單控制項 ch12 常用控制項(二) 12.1 圖片控制項 12.2 上下按鈕控制項 12.3 捲軸控制項 12.4 計時器與日期時間控制項 ch13 豐富文字方塊與工具列 13.1 RichTextBox豐富文字方塊控制項 13.2 ToolStrip工具列控制項 13.3 ToolStripContainer工具列容器控制項 13.4 StatusStrip狀態列控制項 13.5 MenuStrip功能表控制項 13.6 ContextMenuStrip快顯功能表控制項 ch14 滑鼠鍵盤與共用事件 14.1 鍵盤事件 14.2 滑鼠事件 14.3 控制項共用事件 ch15 對話方塊與多表單應用 15.1 FontDialog字型對話方塊控制項 15.2 ColorDialog色彩對話方塊控制項 15.3 檔案對話方塊 15.4 多表單開發 15.5 MDI多表單開發 ch16 ADO.NET簡介與SQL Express資料庫設計 16.1 資料庫概念 16.2 SQL Server Express LocalDB資料庫介紹 16.3 SQL語法 16.4 ADO.NET簡介 16.5 .NET Framework Data Provider ch17 ADO.NET資料庫存取(一) 17.1 如何引用ADO.NET命名空間 17.2 如何使用Connection物件 17.3 如何使用DataReader物件 17.4 使用SQL語法的注意事項 cH18 ADO.NET 資料庫存取(二) 18.1 如何使用DataSet物件 18.2 如何使用Command物件 18.3 ADO .NET交易處理 ch19 資料繫結與預存程序的使用 19.1 資料繫結 19.2 如何將DataTable進行關聯 19.3 使用BindingManagerBase巡覽資料表記錄 19.4 如何使用預存程序 ch20 LINQ資料查詢技術 20.1 LINQ簡介 20.2 如何撰寫LINQ查詢 20.3 LINQ to Objects 20.4 LINQ to XML 20.5 LINQ方法 20.6 LINQ to DataSet 20.7 ADO .NET Entity Framework ch21 ASP.NET MVC應用程式 21.1 ASP.NET MVC應用程式簡介 21.2 ASP.NET MVC專案架構 21.3 ASP.NET MVC書籍管理網站實作 ch22 jQuery Mobile跨平台行動裝置應用程式開發 【PDF電子書,請線上下載】 22.1 Query Mobile簡介 22.2 jQuery Mobile開發 22.3 jQuery Mobile與ASP.NET MVC整合 ch23 Azure雲端服務 - 雲端網站與雲端資料庫 23.1 Azure雲端平台簡介與服務申請 23.2 App Service建立雲端網站 23.3 SQL Database建立雲端資料庫 23.4 Azure雲端圖書管理網站 ch24 Azure認知服務 - Computer Vision與Face API 24.1 認知服務簡介 24.2 Computer Vision電腦視覺服務 24.3 Face API臉部服務 ch25 OpenAI API開發 - 聊天機器人與AI 繪圖程式【NEW!!】 25.1 認識ChatGPT 25.2 OpenAI API申請付費帳戶 25.3 OpenAI API服務金鑰申請 25.4 使用Open AI製作聊天機器人 25.5 OpenAI繪圖 附錄A:C#常用類別 【PDF電子書,請線上下載】 附錄B:DataView物件的使用 【PDF電子書,請線上下載】 附錄C:讀寫XML文件 【PDF電子書,請線上下載】 附錄D:ASP.NET Web Form應用程式 【PDF電子書,請線上下載】