這系列文章是最近幾年在學C#的過程中,從書上、同事身上、教練口中學到一些想法和技巧的整理。每一篇都是自己學到的一些簡單的入門觀念,透過Kata練習並解釋情境。大部分都會使用C#舉例,但是基本思路是可以套用到其他語言上。
很常在遺留代碼中發現方法很長,想整理卻不知道從何開始,所以今天想分享一些可以抽取方法的特徵,如果之後遇到類似代碼時,或許是一個好機會思考是否抽取方法。 每一段迴...
相信大家多多少少都有遇過,看到某一段類似下面的代碼。 看上去HasEvenNumber會判斷numbers中是否存在。 if (!HasEvenNumber(n...
剛學寫程式時,每個人都會學到建構子,知道可以透過類別中的建構子來初始化類別的狀態。當一個類別需要依照不同情境來初始化類別時,就會需要多載許多不同的建構子,每個建...
使用google搜尋或瀏覽部落格網站時,都是常會發現有一種設計:在網頁底部會有頁數可讓你瀏覽更多結果或文章。這些網站在渲染結果時,一方面為了改善系統效能,一方面...
LINQ的Set method有很多,包含前幾天提到的All / Any、Contains、Distinct等,還有比較不常使用到的Union、Except和I...
很多代碼會用boolean當作回傳的成功或失敗,例如:我們使用者的訂單儲存到資料庫時,我們會想知道這個動作最後有沒有成功。 public interface I...
昨天提到回傳boolean或錯誤碼帶來的問題 當方法中有有其他異常流程需要處理時,會需要更多判斷來控制流程,讓最後結果只有一個錯誤碼 如果從UI到底層都需要處...
我們在方法裡面很常宣告變數來暫存一些計算結果,在之後我們也會在拿著這些計算結果在與其他結果一起運算產生回傳值。這些暫存變數宣吿只要宣告在使用之前,編譯器就不會報...
寫Kata或產品代碼時,有時候會發現有些變數他們總是一起出現,例如下面這個例子 ... public string GetScore(double x, do...
在昨天的例子中,我們把x, y抽到Point類別,讓這段Kata代碼擺脫資料泥團的壞味道。雖然解決了資料泥團的問題,但是這段代碼還是有其他的壞味道存在。 pub...