看標題以為是有什麼建設性的看法
點進去看都是在抱怨跟反諷
標題很不錯所以解題發揮一下
談technical debt(以下簡稱TD)前
先來談談technical capitcal(簡稱TC)
什麼樣的code能算TC?
well documented? highly reusable? good implementation? complete UT?
有太多維度了
最重要的是,能"持續"帶來"收益"
第一個問題,誰的收益?
你的?接手的學弟的?主管的?公司的?股東的?社群的?
第二個問題,持續多久?
下個project,這段code還能用嗎?
3年後接手的人,會需要重寫嗎?
10年後還能活在github嗎?
100年後,matrix裡會執行這段code嗎?
年輕的時候會想寫code報效社會
覺得透過打著鍵盤的手讓世界更好
工作幾年就體認到,自己不過是在生產電子垃圾
不是硬體才能叫電子垃圾,軟體也可以
這樣講可能太過了
重點是每行code都有保鮮期
碼農就是一種農夫
code屬於生鮮產品
時間久了就成為TD
好的code像iphone,3年換一隻
壞的code像...半年換一隻
不是每個人都買iphone,對吧?
如果說把code寫好是一個境界
第二個境界就是把code寫的"剛好"
(第三個境界可能是無碼勝有碼,但我還沒體會到)
回到標題,為什麼鼓勵工程師創造TD
簡單的回答,世界上不存在TC
但絕不是要你寫爛code
是要學會在正確的地方擺爛
設計的意思是不是把所有規格拉到最高
事實上也不存在完美的產品
設計的意義是取捨
在有限的資源做出最佳化的選擇
也是為什麼programming is art