Soft_Job 板


LINE

我只能说多数人很容易陷入以为全世界就是自己看的那样 以成语来说大概就是以管窥天吧 你说每个类别都乖乖复制贴上 你有没有遇过一次改版要改全部系统 然後你那些贴上的地方要一个一个改的情况? 我还真的有遇过而且才刚结束 有时候我真的很好奇是不是有公司用程式码长度来算薪水的? 明明就是一样的东西一样的动作 就是有人不喜欢抽离成一个工具方法 然後每一个地方都复制贴上 最後如果要改版就得全部挖出来一个一个改 然後改的时候还要确认是不是有跟其他复制的地方不一样 这样有比较爽嘛? 我认为写程式所谓的优美 指的是程式简洁好读 这不是什麽洁癖 而是为了让你能准时下班的必备coding style 我名言就是「偷懒的最好方法就是一次把程式写好」 一次写好抽离能抽离的部份使之能改到最少 你程式问题少user也就少来靠北 你能准时下班的机会就多 一堆人写出来的程式耦合性强到靠北 然後要改的时候就跟玩叠叠乐一样 可能抽一块积木就整个垮了 这时候也只能加班收拾自己造的孽不然还能干麻? 然後因为耦合性太强太难改就会想一堆奇奇怪怪的解决方法 最後终於长成四不像的怪兽天天浪费自己甚至下一个接手人的生命 而且就我观察 这种人几乎都是觉得写程式就是这样阿 也不会再去思考是否有更好的解决方案 每次听到有人在那边大放厥词说什麽物件导向、重构、设计模式没用我就心里偷笑 这跟公开大声跟大家说「老子实力弱到连物件导向的好处都体会不到」一样意思 这种东西你本来就是要会遇到你才知道他的好 没有实际遇过你跟讲一百遍你还是无法体会 写过好几年程式还不能体会这些好处 那我只能说什麽样的人就会待在什麽样等级的地方 这是我干过驻点待过公司看过一堆人之後的心得 也是我给自己最大的警惕 ※ 引述《allenxxx (fufuxxx)》之铭言: : 个人是半路出家,去资策会闭关半年入这行的 : 不学无术先请别见怪 : 以我自己来说,从来不觉得程式写法有甚麽优劣,程式是帮客户解决问题的 : 只要能达到目的,效能可以达到,维护不困难 : 没必要在那里鼓吹什麽手法 : 当然或许是因为我做过很久的维运 : 个人反而不喜欢一堆抽象化的手法 : 当客户火烧屁股电话追杀的时候 : 我还必须要追到抽象的类别或介面,然後判断到底产生的是啥鸟物件 : 到底干了那些好事 : 那开发者你还不如每一个类别乖乖地用复制贴上,我还比较好追 : 每个人都有自己立场 : 开发的人觉得自己的程式写得很"优美",不重复 : 後头维运的人如果技术层次跟不上 : 只有两种可能,想办法跟上,或是把问题踢回给你自己处理 : 另外像我有一个倾向 : 就是一个专案只要开始做,大家决定用甚麽技术後 : 不管有甚麽新的了不起技术 : 开会只要有人要用新东西,个人一概反对到底 : 除非不用无法解决现行问题,不然不管多没水准还是一律要用一开始律定的技术 : 这是开发的纪律,要用请用在别的案子 : 很简单,专案不是给你练功夫的 : 你懂别人不懂 : 不代表你厉害,只代表你"摇屁股",替"队友"制造麻烦而已 : 像我就遇过很有进取心的同事 : 每一个功能,只要有进化的可能,他都要做点小修改 : 然後最初的功能跟最後写的差很大... : 等到他走了 : 接手他的功能,大家干到没力! : 老兄,你还不如每个功能都一样写法! : 以RD来说,这当然是有点不进取,我也承认啦 : 不过就像前面说的 : 个人维运做很久 : 有时候必须想的不全然只有自己的立场 : 抱歉以上得罪诸多高手之处,再一次致上歉意 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.229.138
※ 文章网址: https://webptt.com/cn.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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP