Soft_Job 板


LINE

我只能說多數人很容易陷入以為全世界就是自己看的那樣 以成語來說大概就是以管窺天吧 你說每個類別都乖乖複製貼上 你有沒有遇過一次改版要改全部系統 然後你那些貼上的地方要一個一個改的情況? 我還真的有遇過而且才剛結束 有時候我真的很好奇是不是有公司用程式碼長度來算薪水的? 明明就是一樣的東西一樣的動作 就是有人不喜歡抽離成一個工具方法 然後每一個地方都複製貼上 最後如果要改版就得全部挖出來一個一個改 然後改的時候還要確認是不是有跟其他複製的地方不一樣 這樣有比較爽嘛? 我認為寫程式所謂的優美 指的是程式簡潔好讀 這不是什麼潔癖 而是為了讓你能準時下班的必備coding style 我名言就是「偷懶的最好方法就是一次把程式寫好」 一次寫好抽離能抽離的部份使之能改到最少 你程式問題少user也就少來靠北 你能準時下班的機會就多 一堆人寫出來的程式耦合性強到靠北 然後要改的時候就跟玩疊疊樂一樣 可能抽一塊積木就整個垮了 這時候也只能加班收拾自己造的孽不然還能幹麻? 然後因為耦合性太強太難改就會想一堆奇奇怪怪的解決方法 最後終於長成四不像的怪獸天天浪費自己甚至下一個接手人的生命 而且就我觀察 這種人幾乎都是覺得寫程式就是這樣阿 也不會再去思考是否有更好的解決方案 每次聽到有人在那邊大放厥詞說什麼物件導向、重構、設計模式沒用我就心裡偷笑 這跟公開大聲跟大家說「老子實力弱到連物件導向的好處都體會不到」一樣意思 這種東西你本來就是要會遇到你才知道他的好 沒有實際遇過你跟講一百遍你還是無法體會 寫過好幾年程式還不能體會這些好處 那我只能說什麼樣的人就會待在什麼樣等級的地方 這是我幹過駐點待過公司看過一堆人之後的心得 也是我給自己最大的警惕 ※ 引述《allenxxx (fufuxxx)》之銘言: : 個人是半路出家,去資策會閉關半年入這行的 : 不學無術先請別見怪 : 以我自己來說,從來不覺得程式寫法有甚麼優劣,程式是幫客戶解決問題的 : 只要能達到目的,效能可以達到,維護不困難 : 沒必要在那裏鼓吹什麼手法 : 當然或許是因為我做過很久的維運 : 個人反而不喜歡一堆抽象化的手法 : 當客戶火燒屁股電話追殺的時候 : 我還必須要追到抽象的類別或介面,然後判斷到底產生的是啥鳥物件 : 到底幹了那些好事 : 那開發者你還不如每一個類別乖乖地用複製貼上,我還比較好追 : 每個人都有自己立場 : 開發的人覺得自己的程式寫得很"優美",不重複 : 後頭維運的人如果技術層次跟不上 : 只有兩種可能,想辦法跟上,或是把問題踢回給你自己處理 : 另外像我有一個傾向 : 就是一個專案只要開始做,大家決定用甚麼技術後 : 不管有甚麼新的了不起技術 : 開會只要有人要用新東西,個人一概反對到底 : 除非不用無法解決現行問題,不然不管多沒水準還是一律要用一開始律定的技術 : 這是開發的紀律,要用請用在別的案子 : 很簡單,專案不是給你練功夫的 : 你懂別人不懂 : 不代表你厲害,只代表你"搖屁股",替"隊友"製造麻煩而已 : 像我就遇過很有進取心的同事 : 每一個功能,只要有進化的可能,他都要做點小修改 : 然後最初的功能跟最後寫的差很大... : 等到他走了 : 接手他的功能,大家幹到沒力! : 老兄,你還不如每個功能都一樣寫法! : 以RD來說,這當然是有點不進取,我也承認啦 : 不過就像前面說的 : 個人維運做很久 : 有時候必須想的不全然只有自己的立場 : 抱歉以上得罪諸多高手之處,再一次致上歉意 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.229.138
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1462797038.A.76A.html
1F:推 drajan: 不學無術請別見怪 人間已經打好預防針了 05/09 20:49
2F:推 CaptainH: 也有例子是過度抽象化 改版也改不動的 05/09 21:22
3F:→ CaptainH: 簡潔應指邏輯和演算法簡潔, 不是語法簡潔 05/09 21:24
簡潔的確在軟體中有很多含意 在這我的確指的是邏輯易讀好懂 像是code會有點髒但比較好讀跟簡潔但不好讀的寫法 我同常還是會選擇前者
4F:推 mithuang: 這篇要轉到軟體黑特版嗎XDD(誤) 05/09 21:43
我只黑特拖我下班時間的打字工(根本就不是工程師好嗎!!!) ※ 編輯: aoksc (114.42.229.138), 05/09/2016 21:50:30
5F:推 laputaflutin: 原PO怨念深重 05/09 22:03
6F:推 airkolf: 敏捷開發和重構需要拉扯一下 但是 05/09 22:29
7F:→ airkolf: 複製貼上和單元化 工廠化 之間沒有什麼懸念呀 05/09 22:30
8F:→ airkolf: 我曾經有一個多月和原Po有類似想法 鼓勵原Po多體會 DP意 05/09 22:31
9F:→ airkolf: 義阿 05/09 22:31
10F:→ Lordaeron: 嗯,物件大師, 高手. 05/09 22:32
11F:→ Lordaeron: 用了物件導向,就必然好維護,寫得快. 準時下班. 05/09 22:33
也沒那麼神 也是有人濫用搞到最後我還是要多花時間去處理的例子 技術的好壞最後還是操之於實現的人
12F:推 airkolf: 物件導向用的好的人 懂一些註解之美還是會讓程式很好讀 05/09 22:34
13F:→ airkolf: 的 05/09 22:34
14F:推 final01: 看完這篇感覺大大就是最會嘴炮那型吧?? 05/09 22:42
還好啦 至少我都嘴的有所本 不服的話我也很歡迎來討戰…喔是討論
15F:→ femlro: 物件導向不夠潮惹 現在最潮的是AI debug還有ML 05/09 22:47
16F:推 yyc1217: 有時候重複貼也不一定是壞事 例如一開始可以共用 05/09 22:47
17F:→ yyc1217: 但後來因需求改變 必須獨立出來不再共用 重複貼就很方便 05/09 22:48
18F:→ yyc1217: 所以我覺得這depend on project 很難說誰對誰錯 05/09 22:49
受教了 我會再思考看看什麼情況用複製貼上是最好解法 但我看過的Code幾乎都是為了複製貼上而複製貼上…
19F:推 a47135: 你慘了,提到OOP,等一下又有人要跳出來推廣他的神見解了 05/09 23:04
20F:→ a47135: 話說@yyc1217,有需要獨立出來再COPY就好了啊XD,怕東西以 05/09 23:05
21F:→ a47135: 後會獨立出來所以就重複貼不是因噎廢食嗎XD 05/09 23:05
22F:→ a47135: 想想aoksc加班前說的話(誤) 05/09 23:06
※ 編輯: aoksc (114.42.229.138), 05/09/2016 23:18:43 ※ 編輯: aoksc (114.42.229.138), 05/09/2016 23:22:22
23F:推 atpx: 現實上 C&P的人因為產出比較多, 生的比較快 05/09 23:49
24F:→ atpx: 維護? 反正他升了, 這些東西留給下個人煩惱 05/09 23:49
25F:→ yyc1217: 我遇到的是健保費 前人設計時沒想到後來有二代健保費 05/10 00:09
26F:→ yyc1217: 科技部 自籌款 邁項頂尖大學計畫扣除的對象 比例都不同 05/10 00:11
27F:→ yyc1217: 甚至學校 學院 系所等扣除的比例也不一樣 都是當初不會 05/10 00:11
28F:→ yyc1217: 想到的 因為最初就一個健保費 誰知明後年會不會多個三代 05/10 00:12
29F:→ yyc1217: 四代 又或是加收國保費之類的 05/10 00:13
30F:→ yyc1217: 所以我想說的是複製貼上不一定是壞事 因為需求會一直變動 05/10 00:15
31F:→ yyc1217: 最初設計的架構不一定能滿足後來的要求 05/10 00:15
32F:→ yyc1217: 阿我講的是大學裡的狀況 05/10 00:18
33F:推 Blueshiva: 複製貼上,用來因應的是一次性,或者可預見的未來不會 05/10 00:24
34F:→ Blueshiva: 變動的需求,因為可能根本沒有下次用到的機會,或者跟 05/10 00:25
35F:→ Blueshiva: 本沒有修改的需要。反倒是如果預期每年規則都會有些修 05/10 00:25
36F:→ Blueshiva: 改,更需要設計一個有彈性的架構 05/10 00:26
37F:推 bacdasdf: 同感 05/10 00:28
38F:推 typepeter: 太中肯 05/10 00:43
39F:推 tyc5116: 頗為同意 05/10 08:47
40F:推 Argos: 我也同意 但有時就是人在江湖 身不由己 最好的解決辦法 就 05/10 09:21
41F:→ Argos: 是換一個工作 不然就算拿你寫的跟主管據理力爭 大概又會被 05/10 09:22
42F:→ Argos: 罵得更難聽 沒辦法 社會上這些人數量還不少 05/10 09:22
43F:推 hung0724: 現在同事寫了十支程式 結果每支有90%是copy % paste 05/10 11:06
44F:推 lovdkkkk: 請他們去維護寫得好的, 之後就會從那 copy 去改了 :D 05/10 13:34
45F:→ atpx: 現實上要知道功能是不是一次性有時很難 05/10 16:11
46F:→ Blueshiva: 沒那麼複雜,寫的時候問一下自己:下次什麼時候要跑這 05/10 17:23
47F:→ Blueshiva: 個?跑的時候要不要改東西?是不是參數改一下就可以? 05/10 17:23
48F:→ Blueshiva: 這樣大概就抓得出來。如果寫完下次要用發現要改code, 05/10 17:24
49F:→ Blueshiva: 就可以開始評估要不要簡單refactor。 05/10 17:25
50F:→ VisualStudio: 我之前有遇過要對兩種不同的class做很類似的事情 05/10 20:28
51F:→ VisualStudio: 除了class不同之外要回傳的顯示訊息也不太一樣 05/10 20:29
52F:→ VisualStudio: 還有兩個雖然做的是很類似的事但分屬不同功能區 05/10 20:29
53F:→ VisualStudio: 但是因為只有兩種而且要做的東西已經發展滿成熟了 05/10 20:30
54F:→ VisualStudio: 之後不太需要再變動 所以複製貼上應該也是不錯 05/10 20:31
55F:→ VisualStudio: 可以直接看出兩個方法用的東西不一樣 05/10 20:32
56F:→ VisualStudio: 不過如果勉強要抽離的話 我猜大概用泛型化或是參數 05/10 20:33
57F:推 lovdkkkk: 樓上的狀況感覺蠻直觀, 丟個 msg map 進去要秀時 call 05/10 20:33
58F:→ VisualStudio: 傳入的複雜一點 裡面還要做一些分流判斷機制做不 05/10 20:34
59F:→ lovdkkkk: 方法 showMsg(key), 這樣可以用同一個方法秀不同訊息 05/10 20:34
60F:→ VisualStudio: 同處理 不過為了兩種東西還有之後確定幾乎不會再 05/10 20:34
61F:→ lovdkkkk: 做的事類似就抽 util 以上吃晚餐中隨便說 @@ 05/10 20:34
62F:→ VisualStudio: 擴充的情況 我覺得複製貼上應該是比較清楚 05/10 20:35
63F:→ lovdkkkk: 之後不會再動的話就隨便了 XD 05/10 20:35
64F:→ VisualStudio: msg抽出來也是可以 不過我覺得例如錯誤訊息 05/10 20:36
65F:→ VisualStudio: 直接寫在那個方法的catch本身應該比較好讀 05/10 20:37
66F:→ VisualStudio: 例如有兩個類別在方法中間五各有5個trycatch訊息 05/10 20:38
67F:→ VisualStudio: 都有些不同,全抽出來丟到一個msg用key判別 05/10 20:38
68F:→ VisualStudio: 這樣看方法的時候每次看訊息都要再跑到msg方法裡找 05/10 20:39
69F:推 atpx: 我說的很難判斷是不是一次性, 是指像是2代健保的狀況 05/10 20:51
70F:→ lovdkkkk: 喔喔, 原來是 class 裡自己的訊息 @@ 05/10 20:51
71F:→ atpx: 有些政策面的改變會導致過去的假設失效 05/10 20:52
72F:→ atpx: 他沒有任何邏輯可言 05/10 20:52
73F:推 VisualStudio: (補推 05/10 21:36
74F:→ viper9709: 推這篇~觀念比較正確 05/10 23:13
75F:推 Blueshiva: 2代健保當然是當成一次性啊 XDD 這種東西不會每個禮拜 05/11 01:30
76F:→ Blueshiva: 改啦,至少是以年在計算的 05/11 01:33
77F:推 roger00: 推 05/11 08:06
78F:推 Masakiad: 我們team之前的做法是bad smell出現時會紀錄到管理技術 05/11 08:32
79F:→ Masakiad: 債的表格,通常在下個sprint會做完修正,另外,紀錄的 05/11 08:32
80F:→ Masakiad: 當下就會大略評估最晚何時要改。比如效能大約可以知道多 05/11 08:32
81F:→ Masakiad: 少流量是極限,duplicate code這種我們會在出現第三次 05/11 08:32
82F:→ Masakiad: 的時候開始設計重構。 05/11 08:32
83F:推 FukadaKyoko: 講得不錯啊!然後居然有人覺得複製貼上較好,神奇 05/12 09:59







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP