Clean code with Value Objects
(bezmax.com)
value object 實作上挺簡單的,講的出來的名詞,把它從 int/String 昇華為物件就行了。比較難的是 domain 相關的操作 (method),該怎麼樣寫才適合在 value object 上。
作者的範例寫得這麼順,我想那是下過苦功的,才會看到 refactor 後的程式碼如此的直覺與簡短。通常要到這麼漂亮的結果,需要停下來設計 (沒辦法邊寫邊改的),而且,還要試誤個幾次才有辦法的。
這種歷程,我想有追求過寫好程式碼的人都能體會的,也不限於這篇的主題。只是,這種歷程幾次之後我也開始迷惘了,因為程式的開發環境一直在變,汱舊渙新,把某段程式寫得如此精鍊,是否有必要?可能還沒享受到重用的回饋,這個應用服務就改方向,甚至消失了。
當然,程式寫得精鍊,對後續的維護是很大的保障,開發者自身也會有很大的滿足感,優點也是很大啊…
總而言之… 寫程式是個充滿 trade off 的工作。