iT邦幫忙

鐵人檔案

2024 iThome 鐵人賽
回列表
Software Development

程式淨化計畫:痛苦是重構的起源! 系列

以C#程式語言介紹Clean code、架構等相關內容.

鐵人鍊成 | 共 31 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 1

Code smells簡介與Boolean Blindness的重構

什麼是Code smells? 簡單來說, 是指在軟體開發過程中, 描述不良的程式設計或實作所擁有的常見特徵. 這些特徵會導致程式碼難以了解、維護或擴展. 有哪...

2024-09-15 ‧ 由 glj8989332 分享
DAY 2

Conditional Complexity的重構

Conditional Complexity 簡介 在程式碼區塊使用不同的冗長的if/else/switch判斷條件, 該函數的複雜度越來越大. 重構前範例 假...

2024-09-16 ‧ 由 glj8989332 分享
DAY 3

Data clump的重構

Data clump 簡介 有些欄位會一起出現在不同的class與參數列表.當一個系統的各處程式碼常出現這些欄位且形影不離, 勢必得思考他們與類別或參數列表的關...

2024-09-17 ‧ 由 glj8989332 分享
DAY 4

Feature envy 的重構

Feature envy 簡介 當有個方法,他處理眾多的欄位、函數來自於別的class, 這方法稱之為feature envy. 重構前範例 假設有位富人, 聘...

2024-09-18 ‧ 由 glj8989332 分享
DAY 5

Replace Nested Conditional with Guard Clauses 的重構

Replace Nested Conditional with Guard Clauses 簡介 假如你有一組巢狀式條件, 且很難去了解正常的程式碼執行流程.此...

2024-09-19 ‧ 由 glj8989332 分享
DAY 6

Breaking Yo-Yo Hierarchies 的重構

Breaking Yo-Yo Hierarchies 簡介 假如你在尋找一個方法的具體實作, 必須在這方法的類別階層裡上上下下尋找.這種階層稱為Yo-Yo Hi...

2024-09-20 ‧ 由 glj8989332 分享
DAY 7

Replace Method with Method Object 的重構

Replace Method with Method Object 簡介 假如有個很長的函數, 有很多的區域變數且交織在一起, 難以用Extract Metho...

2024-09-21 ‧ 由 glj8989332 分享
DAY 8

Replace Constructor with Creation Method 的重構

Replace Constructor with Creation Method 簡介 假如有個類別, 它有很多的建構函數, 對使用者來說, 會混淆何時該呼叫哪...

2024-09-22 ‧ 由 glj8989332 分享
DAY 9

程式接縫 Seam

程式接縫 Seam 簡介 定義: 程式碼裡面特殊的一個點, 在這些點上不需做任何更改即可達到改變程式行為的目的 如何讓一個程式碼做改變呢? 假設原有個fun...

2024-09-23 ‧ 由 glj8989332 分享
DAY 10

新生(Sprout) 方法與類別

新生方法 重構前 假如有個類別TransactionGate, 用來處理每個交易的日期設定, 並賦予manager做處理. public class Trans...

2024-09-24 ‧ 由 glj8989332 分享