看板 Soft_Job 關於我們 聯絡資訊
公司內有幾十個系統 全部都是活了十年的大怪物, 每個都上百萬行 早期受限於語言本身限制的關係, 很多並沒有辦法OO (尤其有一大部份是VB6 , 整個project 都是global變數) 以現在新進人員新的觀念來看以前的code... 真的只有"痛苦"兩字而已 雖然很多project的架構分層分得很好 把view , logic , data分層 但是裡面的implement因為沒人在code review的關係通通都死亡了 我能做的就只帶新人的時候盡力去教導他們如何寫好code、copy&paste是可恥的事 然後慢慢的教他們OO跟design pattern的觀念....其實教他們也是為了以後的自己 到這裡都還做得很ok, 畢竟新人本來就比較願意學, 但是老人的部份就很難搞了 畢竟他們用 if, for, copy & paste 都十年了也過得好好的 甚至都習慣了改一個小需求要兩三天是正常的事了 在這種情況下真的是很難讓他們有動力去學一個對他們不見得有益的東西 (而且寫好code這件事... 本身就是有很多很瑣碎的事要注意) 不知有沒有人有成功打進老人圈的案例可以分享? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.248.140
kvjo:還好吧 暨有系統 要我改 我也不改 現行系統正常運行是最重要 04/15 02:27
kvjo:出來做事 是求利潤的 沒人給我翻修成本 不值得去翻 04/15 02:27
kvjo:新案的每次撰寫 都是新的練習 嘗試更好 更容易維護的寫法 04/15 02:28
kvjo:而且我說的還好是 我對於 文章間接指老人圈就不懂OO 很疑惑 04/15 02:30
kvjo:我的前輩都是有技術的 讓現行系統不OO 是正確的 04/15 02:30
kvjo:因為根本沒有賺頭 也沒有立即危險 根本不需要做這種事情 04/15 02:30
andymai:原po的意思不是老人就不懂OO~而是他們那時根本沒OO~自然就 04/15 04:41
andymai:不會有OO的觀念~再加上習慣的養成~想要改變他的觀念除非能 04/15 04:43
andymai:動搖他根深蒂固的源頭~不然比登天還難XD 就算是不翻舊的~ 04/15 04:47
andymai:要在新案子才導入~老人也不見得肯配合~就像習慣直接下Sql 04/15 04:50
andymai:指令~熊熊要他考慮用Linq去操作~他會接受? 04/15 04:52
andymai:更不要說想導OO的觀念了~為了彈性和架構~往往要拐個彎寫出 04/15 05:01
andymai:更多的程式~要"一條腸子通到底"的老人接受? 難... 04/15 05:02
andymai:他們寧願在好幾支程式裡寫著同樣的判斷邏輯交差了事~改的 04/15 05:07
andymai:時候"全部取代"~也不願意思考是否該將這邏輯合而為一 04/15 05:10
andymai:上面講的可不是弄成一個function呼叫就算了~很多時候事情 04/15 05:17
andymai:沒這麼簡單... 04/15 05:23
bobju:腦海裏突然浮現出一句名言: 老狗學不會新把戲.. :P 04/15 06:31
bobhsiao:老闆不在意的話你也不用煩惱 04/15 08:06
TonyQ:我覺得新人的程式美感也是個問題,比較好的作法是像上篇, 04/15 08:47
TonyQ:在自己能作得範圍內做該做的事情,我看過很多看code覺得很鳥 04/15 08:47
TonyQ:結果自己拼命想砍掉重練或者想做些無謂的重構,但是know-how 04/15 08:47
ideaup:寫程式 20年以上, 到現在才能習慣 將程式 oo. 04/15 08:47
TonyQ:不夠或者知識錯誤,反而把事情弄得更糟的也不是沒有。 04/15 08:47
TonyQ:而且修改任何一行程式碼都會伴隨QA的成本,沒事不會有人去 04/15 08:49
TonyQ:修改現成的code...除非有更新或者改實作。 04/15 08:49
FantasyRyu:你只要能夠用明確的數據,證明這樣做會賺更多錢,絕對 04/15 09:33
FantasyRyu:有人會支持你。不然很可能一切都是白講的。 04/15 09:34
alongalone:沒事找事做嘛.... 04/15 09:45
GALINE:說到這打掉重鍊,Netscape是個血淋淋的教訓… 04/15 11:11
GALINE:不過如果只是觀念宣導的話,倒是沒什麼問題。只是對於熟悉 04/15 11:11
GALINE:舊程式舊作法的人來說,這些新思維能帶來多少效益是個問題 04/15 11:12
GALINE:而且上手需要時間,這段時間內用新觀念寫 code 效率對老人 04/15 11:14
GALINE:來說可能反而差…其實有點左派右派衝突的味道 XD 04/15 11:14
popoblue:建議有bug... 那再去 refactor就好 比較容易說服大家 04/15 12:43
popoblue:refactor 是手段不是目的 老闆也不願意花錢 又沒馬上效果 04/15 12:44
popoblue:然後慢慢把 OO 導入既有的系統... 04/15 12:44
popoblue:有bug 或有新需求再要求 OO 就好 04/15 12:46
enthos:我覺得Metaprogramming和Evolutionary Computation較有用. 04/15 16:33
prag222:.NET JAVA 不就是OO了....你是要導入什麼?還是你用啥語言? 04/15 21:40
prag222:舊語言你要完OO也不容易玩阿.... 04/15 21:42
viper9709:推"有問題再去重構相關的部分就好"~~ 04/15 22:01
leicheong:時間是一個問題, 因此只要在新寫的部份做好design就好.. 04/15 23:14
lovdkkkk:JAVA只是"能支援OO"而已, 用 JAVA 能不 OO 的高手很多~ 04/15 23:45
pokerhand:ㄜ,我好像還沒講到refactor的部份說 04/16 00:08
pokerhand:觀念的導入是為了讓新寫的code不要再那麼你儂我儂... 04/16 00:09
walking:OO !? 都快變成老掉牙的東東了, 這是 HomeWork 嗎? 04/16 09:40
andymai:是老掉牙沒錯~但是偏偏就是有一堆公司、一堆人不重視 04/16 09:55
benqm300:有些東西古時候留下來,你怎麼改..重構?10年..怎麼重構 04/17 00:42
littlethe:程式本身是oo,不代表有"oo化" 04/17 03:14
littlethe:回prag222,不支援oo的語言,可以把function寫在不同檔案 04/17 03:16
littlethe:再include起來,這樣應該好整理多吧? 04/17 03:18
newstar2007:不好意思 小弟拙問 OO跟不OO那裡有差? 04/17 14:03
newstar2007:功能 邏輯 命名 切得好的話 不oo也是可以很好 04/17 14:04
newstar2007:我不是反駁誰 是真的不懂差異 煩請多多指教^^ 04/17 14:04
pokerhand:這是好問題,我在念書的時候也不懂O不O差在哪 04/17 23:26
pokerhand:也跟你一樣覺得function分好就好了 那麼麻煩幹嘛 04/17 23:27
pokerhand:等到我看到百萬行"有模組化" "有分層" 仍亂七八糟的code 04/17 23:27
pokerhand:這時才發現OO的重要, 而且是一開始就要follow 04/17 23:27
pokerhand:也可以說等到程式達到一定規模時, 才看得出OO的好處 04/17 23:28