iT邦幫忙

鐵人檔案

第 12 屆 iThome 鐵人賽
回列表
Software Development

在Kata中尋找Clean Code是否搞錯了什麼 系列

這系列文章是最近幾年在學C#的過程中,從書上、同事身上、教練口中學到一些想法和技巧的整理。每一篇都是自己學到的一些簡單的入門觀念,透過Kata練習並解釋情境。大部分都會使用C#舉例,但是基本思路是可以套用到其他語言上。

鐵人鍊成 | 共 30 篇文章 | 12 人訂閱 訂閱系列文 RSS系列文 團隊威士忌打字機
DAY 11

Day 11 抽取方法的時機

很常在遺留代碼中發現方法很長,想整理卻不知道從何開始,所以今天想分享一些可以抽取方法的特徵,如果之後遇到類似代碼時,或許是一個好機會思考是否抽取方法。 每一段迴...

2020-09-11 ‧ 由 保羅 分享
DAY 12

Day 12 這個方法掛羊頭賣狗肉

相信大家多多少少都有遇過,看到某一段類似下面的代碼。 看上去HasEvenNumber會判斷numbers中是否存在。 if (!HasEvenNumber(n...

2020-09-12 ‧ 由 保羅 分享
DAY 13

Day 13 工廠方法

剛學寫程式時,每個人都會學到建構子,知道可以透過類別中的建構子來初始化類別的狀態。當一個類別需要依照不同情境來初始化類別時,就會需要多載許多不同的建構子,每個建...

2020-09-13 ‧ 由 保羅 分享
DAY 14

Day 14 一些Paging LINQ的使用情境

使用google搜尋或瀏覽部落格網站時,都是常會發現有一種設計:在網頁底部會有頁數可讓你瀏覽更多結果或文章。這些網站在渲染結果時,一方面為了改善系統效能,一方面...

2020-09-14 ‧ 由 保羅 分享
DAY 15

Day 15 兩個集合的比較

LINQ的Set method有很多,包含前幾天提到的All / Any、Contains、Distinct等,還有比較不常使用到的Union、Except和I...

2020-09-15 ‧ 由 保羅 分享
DAY 16

Day 16 當錯誤發生時(上)

很多代碼會用boolean當作回傳的成功或失敗,例如:我們使用者的訂單儲存到資料庫時,我們會想知道這個動作最後有沒有成功。 public interface I...

2020-09-16 ‧ 由 保羅 分享
DAY 17

Day 17 當錯誤發生時(下)

昨天提到回傳boolean或錯誤碼帶來的問題 當方法中有有其他異常流程需要處理時,會需要更多判斷來控制流程,讓最後結果只有一個錯誤碼 如果從UI到底層都需要處...

2020-09-17 ‧ 由 保羅 分享
DAY 18

Day 18 變數宣告在哪邊

我們在方法裡面很常宣告變數來暫存一些計算結果,在之後我們也會在拿著這些計算結果在與其他結果一起運算產生回傳值。這些暫存變數宣吿只要宣告在使用之前,編譯器就不會報...

2020-09-18 ‧ 由 保羅 分享
DAY 19

Day 19 它們總是一起出現

寫Kata或產品代碼時,有時候會發現有些變數他們總是一起出現,例如下面這個例子 ... public string GetScore(double x, do...

2020-09-19 ‧ 由 保羅 分享
DAY 20

Day 20 更多的壞味道

在昨天的例子中,我們把x, y抽到Point類別,讓這段Kata代碼擺脫資料泥團的壞味道。雖然解決了資料泥團的問題,但是這段代碼還是有其他的壞味道存在。 pub...

2020-09-20 ‧ 由 保羅 分享