重構: 改善既有的程式設計2/E <碁峰>
類似書籍推薦給您
立即查看
重構:改善.NET與C#應用程式的設計,償還欠下的技術債(使用GitHub Copilot與Visual Studio) (1版)
類似書籍推薦給您
【簡介】
『技術債在每個程式倉庫(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 延伸閱讀
立即查看
地因人重,即景見心:清代地方園林志的典範追尋與文本重構 (1版)
類似書籍推薦給您
【簡介】
中國園林歷史悠遠,文化積澱深厚。除了實體空間外,更留下豐厚的文字紀錄,具備豐富的人文、社會意義向度。本書以清代地方園林專志為研究對象,以文學活動的書寫實踐為觀看窗口,探討園林文本當中典範人物形象的構建過程,思索園林空間記憶如何和地方社會產生聯繫與鏈結。
清代文士通過園林專志的纂輯,建構地方人文、歷史典範,並以之傳達教化理念。園林與人的交感互通,並非僅是在建造、觀覽等單向式、純粹主觀的遊賞與契悟,更具備與外部社會、公共性的互動意義。本書希望揭示清代園林志的文獻價值,以及文學史、社會文化史意義,除了從美學賞鑒與遊觀角度外,進而思索古典園林在空間、文字、記憶等不同層次形態展現的可能意義,以及園林與地方社會、文化社群共生、交涉的各種面向,期待以此作為探討清代士人文學、文化與思想主題一個的切面。
【目錄】
第一章 導論:園林與園林志
第二章 園林志的類型、編輯意識、表現形式
第三章 官方提倡文教範式的樹立
第四章 道藝之師的情思仰望
第五章 英烈高風與家國忠義的致敬
第六章 重構家鄉――《山陽河下園亭記》的地方歷史記憶與人文圖像再現
第七章 懷舊、重修與不朽――清代園林志的時間意識
第八章 文字與時相――清代園林志的話語運用與世變論述
第九章 結論
參考文獻
附圖
附錄
看更多
立即查看
經典秩序的重構:廖平的世界觀與經學之路 (1版)
類似書籍推薦給您
【簡介】
廖平,字季平,生於咸豐二年(一八五二),卒於民國二十一年(一九三二),四川井研縣人。廖平一生以研究經學、推闡孔子之道為本願,欲把經學扮演成時代的舵手,為中國開導新的方向,在清末民初時期於學術思想史上別開生面。
廖平思想轉折歷經六變:初變,論「平分今古」。二變,論「尊今抑古」。三變,論「大統小統」。四變,論「人學天學」。五變,論「人天小大」。六變,以《黃帝內經》解《詩》、《易》。廖平早期的經學一、二變之著作,在其當世已享有聲譽。至於經學三變以後(約甲午戰後)的理論,卻常讓學者們覺得穿鑿附會或不知所云,這是造成廖平經學中晚期的思想甚少被問津的主因。事實上這個時期正是他學術的亮點,交織著深刻的時代性,也是《經典秩序的重構:廖平的世界觀與經學之路》探討的重心所在。
《經典秩序的重構:廖平的世界觀與經學之路》共分六章:
〈從今古之辨到面向世界的經學之路〉:勾勒廖平經學一變到三變的產生因緣、轉折過程,以及各經的今古文論述,最終歸結到其三變以後的經學觀與特色。
〈讓孔子走入新世界〉:闡述廖平如何將經學含攝整個地球、與海外世界打成一片,並預示未來世界合一的願景。
〈經學理想的世界文化空間藍圖──兼論近代學術上的意義〉:廖平以《尚書》為孔子昭示大一統的藍圖,討論中國文化在世界所扮演的角色;在經典重釋的過程也涉及到經史關係、陰陽五行宇宙觀等學理在近代的轉變。
〈傳統與西學交會下的天學新論〉:來自傳統「天人合一」的信念,以人事價值必定有天道的根源,這是廖平在提出大統秩序的學說之際,還要架構一套屬「天」的理論之原因。內容包括哥白尼對廖平的影響,以及對廖平傳統天學的轉化性詮釋。
〈《春秋》撥正下的世界秩序與中國──從「二伯」的理想談起〉:在弱肉強食的國際現實下,廖平反思要以經典重構不同於西方主導下《萬國公法》的國際關係圖景;他以《春秋》的制度設計了一套國際新秩序模式,《春秋》的「二伯」是這個秩序模式下的核心制度內容。
〈文質彬彬──大統理想的經學實踐進路〉:在說明世界必可依照孔經的普世價值線性臻於大統的境地時,廖平也有一套支持自己想法的史觀,以及中國當下該如何實踐經典的方式。而且他的實踐方式理論也隨著時間而轉變,透露了經學於近代所面臨的問題。
《經典秩序的重構:廖平的世界觀與經學之路》呈現兩個層面的重點:首先是廖平如何運用經典以安排中國與世界的關係與位置,其次是廖平學術在近代的意義。作者魏綵瑩細密探討根植於經學的中國傳統學術思想,在受到西學(特別是天文、地理等自然科學知識)碰撞之後,所產生的新舊知識的交涉過程;而一生大多數時間都在四川的廖平,又如何回應時代的挑戰?魏綵瑩指出,廖平的經學其實只有兩大階段:從「今古之辨」到「以經學面向世界」。積極謀求經學面向世界,此即廖平個人心靈與生命志業的歸宿。
【目錄】
序 黃克武
引論
第一章 從今古之辨到面向世界的經學之路
第一節 平分今古:經學一變與對群經的今古文觀(一八八三─一八八六)
一、同等重視古文《毛詩》與今文《三家詩》
二、接受《尚書》殘缺的觀點
三、平分今古之下的三禮觀
四、平分今古之下的《春秋》三傳觀
第二節 尊今抑古:經學二變與對群經的今古文觀(一八八七─一八九六)
一、否定《毛詩》與推崇《三家詩》
二、《尚書》廿八篇為備,百篇《書序》為偽
三、尊今抑古之下的三禮觀
四、尊今意識下的《春秋》三傳觀
第三節 面向世界的經學:走出今古之辨後的群經觀(一八九七─一九三二)
一、面向世界的《詩經》學觀
二、面向世界的《尚書》學觀
三、走出今古之辨後的三禮觀
四、面向世界後的《春秋》三傳觀
小結
第二章 讓孔子走入新世界
第一節 傳統天下觀與「地球」概念的遭逢
第二節 重新「認識」鄒衍的「大九州」說
一、「大九州」說與世界
二、納「邊緣」入「主流」:鄒衍學說與孔子的聯繫
三、全球「皇帝」時代:從經學與中國歷史景望未來
第三節 《海國圖志》諸書與經典意識之間
第四節 建立符合「經旨」的「帝王政教」世界圖像
一、從「中國」擴及「世界」的文化疆域
二、包舉全球的〈禹貢〉經學微言
三、內外之際:「大〈禹貢〉」、「大五服」與「大九州」的精神
小結
第三章 經學理想的世界文化空間藍圖──兼論近代學術上的意義
第一節 肇開世界大統與中天下而立的「周公」
一、史實的周公與經典寄寓的「周公」
二、孔子藉「周公」開創東西兩半球的意義
第二節 世界萬邦來朝:太平之世的「大明堂」
一、明堂根源聖經指向大統
二、「萬邦歸極」與「辨方正位」:朝會世界諸國的禮序
第三節 「世運輪轉」與陰陽五行宇宙觀的重解
一、五德新說與五大洲之運勢流行
二、全球「正朔」所在:中國將得「土德」之運
三、「五行」僅表空間符記:西學影響下的陰陽五行新說
四、與傳統今文學的違異:對災異論的轉化詮釋
小結
第四章 傳統與西學交會下的天學新論
第一節 日心地動說與王權為尊的天道觀
一、天文新知已備於孔學體系中
二、以尊王為中心秩序的天道象徵
第二節 人、天秩序:六合之內與六合之外
一、《詩經》、《易經》為統宗的六合之外世界
二、天的運行、架構與人世秩序
三、天界進化的動力:另一種禮樂文明的傳播
第三節 西方天文地理知識洗禮下的新分野觀
一、星象分野與大一統的世界觀
二、時代考驗下的分野新說
三、天象的王化秩序之堅持與占驗的擺落
小結
第五章 《春秋》撥正下的世界秩序與中國──從「二伯」的理想談起
第一節 《春秋》的「二伯」與世界秩序
一、經典撥亂與致太平的期望
二、《春秋》的「二伯」與秩序關懷
第二節 對西方國際法的反思:素王禮制下的理想新世界體系
一、以《春秋》制度重構國際新秩序
二、為世界「立心」:以「素王之位」居中的道德共同體
第三節 理想的政治體制與倫理觀
一、廖平的三世觀與現實的政治意義
二、論立憲與革命皆背離三綱故不足取
三、為民立君的重要與經教三綱不違背平等精神
第四節 視野的轉變:從世界的「二伯」到中國的「二伯/二霸」
一、「王」、「伯/霸」的重辨:對伯/霸功的推崇
二、「譎而不正」更勝於「正而不譎」:伯/霸者應具備的特質
小結
第六章 文質彬彬──大統理想的經學實踐進路
第一節 以孔經文明為五大洲的進化座標
一、進化意識下的經史區別
二、孔經為進化公理
第二節 文質調和的孔經實踐
一、至聖六經兼包諸家:以儒墨為論述對象
二、中國當增進「質」的層面
第三節 從「六經」到「十二經」:論廖平道器觀的演變
一、十二經的提出與內容
二、實學的重要:「孔述六藝」與「孔作六經」合為十二經
小結
結論
重要參考資料
致謝
立即查看
中國原生性文學史理論重構 (1版)
類似書籍推薦給您
立即查看