[請益] 請問有成功在公司內導入OO觀念的案例嗎?

看板Soft_Job作者 (pokerhand)時間13年前 (2011/04/15 01:29), 編輯推噓9(9051)
留言60則, 20人參與, 最新討論串1/15 (看更多)
公司內有幾十個系統 全部都是活了十年的大怪物, 每個都上百萬行 早期受限於語言本身限制的關係, 很多並沒有辦法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

04/15 02:27, , 1F
還好吧 暨有系統 要我改 我也不改 現行系統正常運行是最重要
04/15 02:27, 1F

04/15 02:27, , 2F
出來做事 是求利潤的 沒人給我翻修成本 不值得去翻
04/15 02:27, 2F

04/15 02:28, , 3F
新案的每次撰寫 都是新的練習 嘗試更好 更容易維護的寫法
04/15 02:28, 3F

04/15 02:30, , 4F
而且我說的還好是 我對於 文章間接指老人圈就不懂OO 很疑惑
04/15 02:30, 4F

04/15 02:30, , 5F
我的前輩都是有技術的 讓現行系統不OO 是正確的
04/15 02:30, 5F

04/15 02:30, , 6F
因為根本沒有賺頭 也沒有立即危險 根本不需要做這種事情
04/15 02:30, 6F

04/15 04:41, , 7F
原po的意思不是老人就不懂OO~而是他們那時根本沒OO~自然就
04/15 04:41, 7F

04/15 04:43, , 8F
不會有OO的觀念~再加上習慣的養成~想要改變他的觀念除非能
04/15 04:43, 8F

04/15 04:47, , 9F
動搖他根深蒂固的源頭~不然比登天還難XD 就算是不翻舊的~
04/15 04:47, 9F

04/15 04:50, , 10F
要在新案子才導入~老人也不見得肯配合~就像習慣直接下Sql
04/15 04:50, 10F

04/15 04:52, , 11F
指令~熊熊要他考慮用Linq去操作~他會接受?
04/15 04:52, 11F

04/15 05:01, , 12F
更不要說想導OO的觀念了~為了彈性和架構~往往要拐個彎寫出
04/15 05:01, 12F

04/15 05:02, , 13F
更多的程式~要"一條腸子通到底"的老人接受? 難...
04/15 05:02, 13F

04/15 05:07, , 14F
他們寧願在好幾支程式裡寫著同樣的判斷邏輯交差了事~改的
04/15 05:07, 14F

04/15 05:10, , 15F
時候"全部取代"~也不願意思考是否該將這邏輯合而為一
04/15 05:10, 15F

04/15 05:17, , 16F
上面講的可不是弄成一個function呼叫就算了~很多時候事情
04/15 05:17, 16F

04/15 05:23, , 17F
沒這麼簡單...
04/15 05:23, 17F

04/15 06:31, , 18F
腦海裏突然浮現出一句名言: 老狗學不會新把戲.. :P
04/15 06:31, 18F

04/15 08:06, , 19F
老闆不在意的話你也不用煩惱
04/15 08:06, 19F

04/15 08:47, , 20F
我覺得新人的程式美感也是個問題,比較好的作法是像上篇,
04/15 08:47, 20F

04/15 08:47, , 21F
在自己能作得範圍內做該做的事情,我看過很多看code覺得很鳥
04/15 08:47, 21F

04/15 08:47, , 22F
結果自己拼命想砍掉重練或者想做些無謂的重構,但是know-how
04/15 08:47, 22F

04/15 08:47, , 23F
寫程式 20年以上, 到現在才能習慣 將程式 oo.
04/15 08:47, 23F

04/15 08:47, , 24F
不夠或者知識錯誤,反而把事情弄得更糟的也不是沒有。
04/15 08:47, 24F

04/15 08:49, , 25F
而且修改任何一行程式碼都會伴隨QA的成本,沒事不會有人去
04/15 08:49, 25F

04/15 08:49, , 26F
修改現成的code...除非有更新或者改實作。
04/15 08:49, 26F

04/15 09:33, , 27F
你只要能夠用明確的數據,證明這樣做會賺更多錢,絕對
04/15 09:33, 27F

04/15 09:34, , 28F
有人會支持你。不然很可能一切都是白講的。
04/15 09:34, 28F

04/15 09:45, , 29F
沒事找事做嘛....
04/15 09:45, 29F

04/15 11:11, , 30F
說到這打掉重鍊,Netscape是個血淋淋的教訓…
04/15 11:11, 30F

04/15 11:11, , 31F
不過如果只是觀念宣導的話,倒是沒什麼問題。只是對於熟悉
04/15 11:11, 31F

04/15 11:12, , 32F
舊程式舊作法的人來說,這些新思維能帶來多少效益是個問題
04/15 11:12, 32F

04/15 11:14, , 33F
而且上手需要時間,這段時間內用新觀念寫 code 效率對老人
04/15 11:14, 33F

04/15 11:14, , 34F
來說可能反而差…其實有點左派右派衝突的味道 XD
04/15 11:14, 34F

04/15 12:43, , 35F
建議有bug... 那再去 refactor就好 比較容易說服大家
04/15 12:43, 35F

04/15 12:44, , 36F
refactor 是手段不是目的 老闆也不願意花錢 又沒馬上效果
04/15 12:44, 36F

04/15 12:44, , 37F
然後慢慢把 OO 導入既有的系統...
04/15 12:44, 37F

04/15 12:46, , 38F
有bug 或有新需求再要求 OO 就好
04/15 12:46, 38F

04/15 16:33, , 39F
我覺得Metaprogramming和Evolutionary Computation較有用.
04/15 16:33, 39F

04/15 21:40, , 40F
.NET JAVA 不就是OO了....你是要導入什麼?還是你用啥語言?
04/15 21:40, 40F

04/15 21:42, , 41F
舊語言你要完OO也不容易玩阿....
04/15 21:42, 41F

04/15 22:01, , 42F
推"有問題再去重構相關的部分就好"~~
04/15 22:01, 42F

04/15 23:14, , 43F
時間是一個問題, 因此只要在新寫的部份做好design就好..
04/15 23:14, 43F

04/15 23:45, , 44F
JAVA只是"能支援OO"而已, 用 JAVA 能不 OO 的高手很多~
04/15 23:45, 44F

04/16 00:08, , 45F
ㄜ,我好像還沒講到refactor的部份說
04/16 00:08, 45F

04/16 00:09, , 46F
觀念的導入是為了讓新寫的code不要再那麼你儂我儂...
04/16 00:09, 46F

04/16 09:40, , 47F
OO !? 都快變成老掉牙的東東了, 這是 HomeWork 嗎?
04/16 09:40, 47F

04/16 09:55, , 48F
是老掉牙沒錯~但是偏偏就是有一堆公司、一堆人不重視
04/16 09:55, 48F

04/17 00:42, , 49F
有些東西古時候留下來,你怎麼改..重構?10年..怎麼重構
04/17 00:42, 49F

04/17 03:14, , 50F
程式本身是oo,不代表有"oo化"
04/17 03:14, 50F

04/17 03:16, , 51F
回prag222,不支援oo的語言,可以把function寫在不同檔案
04/17 03:16, 51F

04/17 03:18, , 52F
再include起來,這樣應該好整理多吧?
04/17 03:18, 52F

04/17 14:03, , 53F
不好意思 小弟拙問 OO跟不OO那裡有差?
04/17 14:03, 53F

04/17 14:04, , 54F
功能 邏輯 命名 切得好的話 不oo也是可以很好
04/17 14:04, 54F

04/17 14:04, , 55F
我不是反駁誰 是真的不懂差異 煩請多多指教^^
04/17 14:04, 55F

04/17 23:26, , 56F
這是好問題,我在念書的時候也不懂O不O差在哪
04/17 23:26, 56F

04/17 23:27, , 57F
也跟你一樣覺得function分好就好了 那麼麻煩幹嘛
04/17 23:27, 57F

04/17 23:27, , 58F
等到我看到百萬行"有模組化" "有分層" 仍亂七八糟的code
04/17 23:27, 58F

04/17 23:27, , 59F
這時才發現OO的重要, 而且是一開始就要follow
04/17 23:27, 59F

04/17 23:28, , 60F
也可以說等到程式達到一定規模時, 才看得出OO的好處
04/17 23:28, 60F
文章代碼(AID): #1DfoyBIS (Soft_Job)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 15 篇):
文章代碼(AID): #1DfoyBIS (Soft_Job)