[討論] 前人的code 後人翻寫的機率高嗎?

作者: peanut97 (丁丁)   2018-09-24 20:43:19
大家中秋節快樂,快收心了。
想問一個假設性問題,大家在工作上,如果有一份專案的 code 是某位前人一手寫的
後來新人加入,變成前人帶新人,此時繼續維護那份code。
但再過一陣子,前人離職了,唯一的創始者走了。
新人把舊 code 重構,或是砍掉重鍊的機率高嗎?
我的想像是,如果一份code是出自於1個人之手
那麼code就是他的世界觀、他的切入點
後面的人看著他的世界觀,有時候不一定能全部接受
而有人的地方就有政治
當他還在的時候,當然就不會亂動。
而當他走了的時候,後面的人,一看不爽,就可能改寫成自己看得爽的、
好改的code。
如果是一個團隊,那當然要好好討論為什麼要改
哪些因素造成現在不好的情況,以及主管同不同意改等等的。
只是我很好奇,1,2人的專案,改的機率高嗎?
是不是,code只能是「現在還存在公司的人」能控制的才行。
作者: Dnight (暗夜)   2018-09-24 20:46:00
重構的好處在那裡,有比重構完整個系統壞掉的風險高嗎就算系統重構好可以正常行為,重構花掉的成本算誰的
作者: xxtuoo (浪費時間不好QQ)   2018-09-24 20:48:00
想改就改啊..不過我碰到的都是新人裝死..懶得改..責任推給前人XDD
作者: Dnight (暗夜)   2018-09-24 20:49:00
不是說不要亂重構,你重構的好處要大於重構的成本跟風險不然你只是看不順眼就重構,對之後維護沒有特別幫助
作者: dalconan (寒江雪)   2018-09-24 20:54:00
一般來說,要重構通常是要加需求但是改不動了只好重構前人有時候規劃時寫太死,或是架構只有規劃的人懂,後人
作者: lucky1lk (賭到沒錢的人)   2018-09-24 20:55:00
要看成本阿
作者: dalconan (寒江雪)   2018-09-24 20:55:00
維護起來太困難就會打掉重寫(小公司可能兩三年就一個輪迴
作者: t64141 (榕樹)   2018-09-24 20:56:00
我的切入點是重構減少未來的維護成本漏字,減少未來多少的維護成本但這得要你老闆有技術背景聽得懂,或是非常信任你
作者: CGS0 (Mike Chen)   2018-09-24 20:57:00
如果沒問題的 code ,重寫代表要重測 ,能保証重寫的更好嗎?
作者: clamperni (肥宅牛牛)   2018-09-24 20:57:00
講得出來怎麼改善就改阿 比較怕改完只有風格變了而已
作者: MOONY135 (談無慾)   2018-09-24 20:59:00
高不高看時間有沒有給你 同時新需求跟重構你趕得上嗎
作者: frog79110 (尼姆)   2018-09-24 21:00:00
自己偷偷開一個分支改阿XD
作者: doranako (真愛無限)   2018-09-24 21:03:00
要看,重構花時間成本,老闆不一定願意讓你做,除非有要加幾個大功能或效能改進尤其前人寫的很少會有test case
作者: MOONY135 (談無慾)   2018-09-24 21:08:00
我比較機車 第一款出來之後接著改版UI 然後我覺得我寫的很爛所以我多要了一個月砍掉重寫 但我沒說我全部砍掉重來
作者: pttworld (批踢踢世界)   2018-09-24 21:22:00
通常翻寫是換語言,十年以上歷史
作者: yamakazi (大安吳彥祖)   2018-09-24 21:23:00
FLAG之流的公司 平均年資也是三到五年 難不成這些公司每三到五年就重構嗎
作者: pttworld (批踢踢世界)   2018-09-24 21:23:00
另外一個人只揹一個案子真是太幸福了
作者: alog (A肉哥)   2018-09-24 21:24:00
重構是有工時跟時間成本的 不是你愛幹嘛就幹嘛XD開這條戰線出來你要hold住 不然你沒弄好大概變戰犯而且很多時候除了設計上要做改善或改良,為了求未來穩定或要完整輸入出結果不會因為重構影響 還會有很多test要測
作者: atpx (秋雨的心情)   2018-09-24 21:29:00
看重要性, 越重要越不可能隨便重購
作者: alog (A肉哥)   2018-09-24 21:30:00
如果你的問題只是coding style的問題 就看怎麼拿捏 因為在少人團隊還是會專注於解決當下問題
作者: atpx (秋雨的心情)   2018-09-24 21:30:00
主管寧願多花幾倍成本作測試也不會承擔重構壞掉風險
作者: galic (嘎利)   2018-09-24 21:36:00
有一本書 叫做clean code,可以看看
作者: smallcar801 (大叔帶妳看金魚)   2018-09-24 22:06:00
正常智商的老闆不會讓你這樣幹
作者: lovebridget (= =")   2018-09-24 22:38:00
幹嘛翻 花自己時間耶 又不是自己公司
作者: y3k (激流を制するは静水)   2018-09-24 22:42:00
除非有重大瑕疵 否則公司又不是做藝術品 當時沒做好的就沒做好 像那種程式後面常常會被講是黑盒子XDD
作者: fgkor123 (n(N))   2018-09-24 22:58:00
韌體 重構和porting 前人吃過的硬體屎 還要吃一遍...
作者: chia7712 (Spright)   2018-09-24 22:58:00
對一個已經上production的系統而言,重構跟重新投胎有87%像...
作者: fgkor123 (n(N))   2018-09-24 23:02:00
專案數千聲音 分類+隱藏規格數十 跨三家IC i/o硬體會錯都開賣囉。就問誰敢重構QQ
作者: MOONY135 (談無慾)   2018-09-24 23:15:00
我一介小小打工仔 還是pass
作者: uller (OminFn)   2018-09-24 23:38:00
有問題誰背 時間太多嗎 我會叫你去弄新專案每次離職 code就要重搞 公司又不是瘋了
作者: disk249   2018-09-24 23:43:00
很多時候就算你有實力重改,也因為上面的決定無法重做
作者: bug147123 (HowDoYouTurnThisOn)   2018-09-25 00:09:00
會先寫好測試再來談重構
作者: Masakiad (Masaki)   2018-09-25 00:41:00
我們team機率是很高啦,前人留下太多債,現在碰到很多評估再加功能會邊難以測試的架構,所以常常重構。
作者: pooznn (我~~~是來被打臉滴!!!)   2018-09-25 01:18:00
這是政治問題 老闆87%不會同意花錢 花時間 做同樣的東西你的直屬長官更不會同意重寫 因為這證明以前他走錯方向了
作者: Ghamu (貓丸)   2018-09-25 01:26:00
一般是從小做起 摸到的部分開始一點一點重構 而不是 「我他媽要重構全部程式啦!」這樣吧
作者: jackylu63 (J)   2018-09-25 06:28:00
我負責的code + 我看不爽 = 翻
作者: Killercat (殺人貓™)   2018-09-25 08:16:00
翻寫ok 但是我經驗是,不要有一種自己的優越心態去面對這種code,很多看起來很詭異的workaround都是因為前人碰過某些難以越過的困難才這樣做這些困難也許是其他系統造成的 也許真的是一開始就長歪也許現在也不存在,總之,別太狂戰士
作者: qss05 (minami)   2018-09-25 09:36:00
除非你能在維持正常工作的情況下還能重寫,不然老闆幹嘛讓你花很長的時間停擺現有工作,只為了讓你改你覺得不好的東西?這種要嘛是流程已經大改,可是前面的人偷懶用很迂迴的方式一直加垃圾,要嘛就是現有方法已經沒辦法更新新需求或是你的專案重要性不高,不然通常就加減用。除非你能力真的很好,超越了你前面的所有人…
作者: bobju (枯藤老樹昏鴉)   2018-09-25 10:44:00
手上多少資源做多少事 吃飽太閒才會想要改改改改不是當下爽就好 要有引發後續種種連動議題的心理準備
作者: bndan (seed)   2018-09-25 13:03:00
時間成本問題 除非有特定原因 EX:想逃避面對舊CODE出的問題或是"期望公司能更上一層樓"等 不然我想像不到"推翻"舊CODE的動機..= =a
作者: jonyig (是喔喔)   2018-09-25 19:28:00
看成本啊
作者: KanzakiHAria (神崎・H・アリア)   2018-09-26 07:52:00
Test Case全pass想怎麼改誰管你
作者: banqhsia (BEN)   2018-09-26 11:39:00
回樓上,會有這種code,通常也不會做 testing ...

Links booklink

Contact Us: admin [ a t ] ucptt.com