重構的幾個迷思
覺得最近很多文章都有些不求甚解的問題,來寫點論述。
1. 重構不是什麼了不起的事情
2. 變更程式碼,重寫舊的程式碼成自己爽的樣子,不一定是重構。
3. 重構是一種相對安全的工具型開發方法論,
但仍然有不少風險跟誘惑。
4. 如果你不應該或沒權力改的程式碼,
不要以為自稱是重構就能取得變更的權力。
5. 測試(單元或整合),是一種快速驗證,
程式是否符合自己預期的工具,但並不是不會犯錯的保證。
因為,自己的預期可能就是錯的,也可能測試相依過深,
一時半刻沒有足夠好的介面,測不到真正的主要情境。
6. 不論重寫或重構,所有的程式碼變更都有一個本質,
要把時間花在刀口上,對重要的程式碼優先處理,
不重要的程式碼延後處理,程式碼都有優先權問題。
所謂的程式碼沒壞就不要修他,
本質上是「如果他的現況不影響別的事情,暫時不用管他」。
但如果他已經卡到別的功能的擴充或維護,
造成 DEBUG 困難,常出問題等,修改他就有了價值。
那個狀態就又是另一回事。
======
另外,有些話我覺得講的不夠白,做點翻譯:
1. 東西沒壞就不要改他:
你最近改壞的東西太多了/
你最近正常改好的東西太少了/
這段扣不關你的事情你沒有權限可以碰。
2. 開發應該要先做測試:
你最近改壞的東西太多了/
你最近正常改好的東西太少了
3. 要重構之前應該要先做測試:
你現在的 CODE 搞不好都已經在亂寫了,
再大規模改 CODE 會不會死的更難看。
4. 這 CODE 寫的很爛:
我想把 CODE 改成我看起來爽的樣子
=====
坦白說,你寫程式品質高的話,要怎麼炫技都可以,
凡人登山要確保,很多高手可以無確保登山,
但這些人每隔幾年也就會有一兩個摔死上新聞。
嗯,反正說到底改程式碼的權限是個政治問題。
打著重構或效能調整的名義變更是沒關係,
但有沒有做好,是一翻兩瞪眼的事情。
個人 Credit 喪失事小,
把使用這個工具的人給搞成白癡事大,
還麻煩大家,量力而為。
自己爛,不會開發,不要牽拖工具方法論。
要重構先還是要測試先,會問這種問題的,
還不如先練習看看什麼是重構,什麼是測試。
-----
Sent from JPTT on my Google Pixel 3 XL.
--
網頁上拉近距離的幫手 實現 GMail豐富應用的功臣
數也數不清的友善使用者體驗 這就是javascript
歡迎同好到 AJAX 板一同討論。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.31.193 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1594081682.A.E16.html
推
07/07 08:48,
3年前
, 1F
07/07 08:48, 1F
推
07/07 08:51,
3年前
, 2F
07/07 08:51, 2F
推
07/07 09:00,
3年前
, 3F
07/07 09:00, 3F
推
07/07 09:27,
3年前
, 4F
07/07 09:27, 4F
推
07/07 09:36,
3年前
, 5F
07/07 09:36, 5F
推
07/07 10:46,
3年前
, 6F
07/07 10:46, 6F
比起有沒有事(應該沒多少人是真的沒事的),
更重要的問題是很多人會看 code 看不順眼. (不過這個行為本身不見得是壞事)
看到一個問題就想要去挑戰更好的作法,
不論是求表現也好, 或是想找事情殺時間, 這是人之常情.
※ 編輯: TonyQ (210.61.209.201 臺灣), 07/07/2020 10:49:27
推
07/07 10:53,
3年前
, 7F
07/07 10:53, 7F
→
07/07 11:05,
3年前
, 8F
07/07 11:05, 8F
推
07/07 11:38,
3年前
, 9F
07/07 11:38, 9F
推
07/07 12:02,
3年前
, 10F
07/07 12:02, 10F
推
07/07 12:37,
3年前
, 11F
07/07 12:37, 11F
噓
07/07 12:45,
3年前
, 12F
07/07 12:45, 12F
推
07/07 13:21,
3年前
, 13F
07/07 13:21, 13F
→
07/07 13:21,
3年前
, 14F
07/07 13:21, 14F
→
07/07 13:24,
3年前
, 15F
07/07 13:24, 15F
推
07/07 13:32,
3年前
, 16F
07/07 13:32, 16F
→
07/07 13:32,
3年前
, 17F
07/07 13:32, 17F
我自己改過很多次, 通常原因都是前人能力不足/膽量不足.
所以要問問的應該是自己有沒有比前人厲害.
→
07/07 13:33,
3年前
, 18F
07/07 13:33, 18F
→
07/07 13:34,
3年前
, 19F
07/07 13:34, 19F
推
07/07 13:39,
3年前
, 20F
07/07 13:39, 20F
→
07/07 13:39,
3年前
, 21F
07/07 13:39, 21F
→
07/07 13:39,
3年前
, 22F
07/07 13:39, 22F
→
07/07 13:54,
3年前
, 23F
07/07 13:54, 23F
→
07/07 14:08,
3年前
, 24F
07/07 14:08, 24F
→
07/07 14:08,
3年前
, 25F
07/07 14:08, 25F
※ 編輯: TonyQ (210.61.209.201 臺灣), 07/07/2020 14:11:04
推
07/07 14:18,
3年前
, 26F
07/07 14:18, 26F
→
07/07 14:29,
3年前
, 27F
07/07 14:29, 27F
→
07/07 14:30,
3年前
, 28F
07/07 14:30, 28F
→
07/07 14:30,
3年前
, 29F
07/07 14:30, 29F
推
07/07 15:12,
3年前
, 30F
07/07 15:12, 30F
→
07/07 15:12,
3年前
, 31F
07/07 15:12, 31F
→
07/07 15:13,
3年前
, 32F
07/07 15:13, 32F
推
07/07 15:57,
3年前
, 33F
07/07 15:57, 33F
→
07/07 15:58,
3年前
, 34F
07/07 15:58, 34F
→
07/07 15:58,
3年前
, 35F
07/07 15:58, 35F
→
07/07 17:37,
3年前
, 36F
07/07 17:37, 36F
→
07/07 17:38,
3年前
, 37F
07/07 17:38, 37F
我是管理者而且我會改,反正我扛責任沒人會說什麼。
這篇真正的立場叫做掂掂自己斤兩。
→
07/07 17:39,
3年前
, 38F
07/07 17:39, 38F
推
07/07 18:42,
3年前
, 39F
07/07 18:42, 39F
→
07/07 18:42,
3年前
, 40F
07/07 18:42, 40F
→
07/07 20:35,
3年前
, 41F
07/07 20:35, 41F
推
07/07 21:36,
3年前
, 42F
07/07 21:36, 42F
推
07/07 22:24,
3年前
, 43F
07/07 22:24, 43F
推
07/08 00:03,
3年前
, 44F
07/08 00:03, 44F
推
07/08 00:05,
3年前
, 45F
07/08 00:05, 45F
※ 編輯: TonyQ (61.231.78.150 臺灣), 07/08/2020 05:24:43
推
07/08 08:44,
3年前
, 46F
07/08 08:44, 46F
推
07/08 09:53,
3年前
, 47F
07/08 09:53, 47F
→
07/08 09:57,
3年前
, 48F
07/08 09:57, 48F
→
07/08 09:57,
3年前
, 49F
07/08 09:57, 49F
→
07/08 09:57,
3年前
, 50F
07/08 09:57, 50F
→
07/08 09:57,
3年前
, 51F
07/08 09:57, 51F
推
07/08 11:01,
3年前
, 52F
07/08 11:01, 52F
→
07/08 13:49,
3年前
, 53F
07/08 13:49, 53F