作者jille0725 (pei)
看板Soft_Job
標題Re: [轉貼] 工程師應該放心大膽地創造技術負債
時間Mon Nov 13 15:48:25 2017
看標題以為是有什麼建設性的看法
點進去看都是在抱怨跟反諷
標題很不錯所以解題發揮一下
談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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.18.41
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1510559307.A.049.html
推 nacoyow: 推一個~ 11/13 20:39
推 willyann: 推無碼勝有碼 11/13 20:50
推 ax61316: 學習了 11/13 21:27
推 genius945: 推 11/13 23:03
推 siriusu: 推 11/14 01:41
推 bakedgrass: 認同 11/14 02:35
推 atoom: 推 11/14 22:13
→ atoom: 看過不少over engineering 的code 浪費時間又難理解 剛好 11/14 22:15
→ atoom: 滿重要的 11/14 22:15
推 petingo: 寫得很棒 11/14 22:44
推 johnny4753: 推一個 trade off 11/14 23:09
推 paul800526: 有道理 11/15 09:50
推 aacs0130: 推 11/18 01:00
推 Void956: 有道理 11/25 10:05
推 abbag: 推 11/29 01:22