Re: [讨论] 前人的code 后人翻写的机率高吗?

楼主: Argos (Big doge is watching u)   2018-09-25 16:57:54
※ 引述《banqhsia (BEN)》之铭言:
: 很多前辈们会建议,要重构前先写测试
: 但是
: 一个万能类别/万能方法/高耦合,要写单元测试,发现整个系统都要写
: 有些 hard code 的 class 还不见得可以 mock
: “人”的问题
: 无解。
BEN兄讲得很好
我看到底下有人提出一个很好的问题
重构、SOLID、设计模式、review、unit test 这些东西做起来既麻烦又没有比较省时
为什么要做?
没有错
敏捷开发的关键是敏捷而不是快
更严格来讲
敏捷开发所谓的快
跟一般认知所谓的开发时程的快
是完全不一样的东西
很多人会把他们混为一谈
包括一堆只会学着念buzzword的老板或PM
开发很灵活
不代表开发会很快
开发很快是指给你个功能你三天就做出来
但就是做出来
什么东西通通都写死
不用架构东西通通一个class搞定
一个method上千行
里面if else巢状大概超过5层
如果使用敏捷开发
有完整unit test、有review、有注重SOLID有用到设计模式
虽然要花两周
但在日后有新需求要改这个部份时
可能只要花一小时
然后花三天的那个要改一个月
这还没谈到bug的多寡
后者出bug的机会肯定是远少于前者
就算出了bug
解bug的难度与所花的时间也远少于前者
大概就是这种感觉
这也是为什么一堆人不愿意用心写程式
1. 你怎么知道未来这模组会不会有新需求?
如果没有新需求,那我干麻花两周在那边东搞西搞?
为了未来那不存在的新需求预作准备?
2. 隔壁小明每个需求来
三天就干完
我还在这边慢慢摸?
老板脸色越来越难看
终于有一天把我叫进去老板办公室
人家小明三天就完成你为何都要一周以上?
能力不足吗?
再这么慢就给我滚吧
3. 随便写写也是领这点钱
认真写也是领这点钱
何必?
4. 出bug?在我工作时碰到算我倒楣啦~
反正我一两年就换间公司
台湾满地职缺老板就没差跪着求我去上班
我们工程师根本不缺工作
那我敢麻做什么鬼测试?浪费时间
基本上好好写程式的诱因太少
大多数的人就不会愿意写好程式
因为写好程式是很花精神花时间花脑力的
是很累人的!
所以这种东西一定要上行下效
上面的人要用力去盯下面好好做好
并且给予合理的时程与支源(比以前加两倍以上时间、让资深花时间带资浅作pair programming)
但如果上面不重视
那你玩clean code、勉捷开发只是找自己麻烦而已
因为企业环境就是逼迫你跳进焦油坑内打滚
你只能趁著还没完全被淹没时赶快再跳到另一个焦油坑
然后又开始在里头挣扎、沉没
时光流转、周而复始
台湾的资讯产业也就渐渐变成了资讯惨业 XDDD
所以
在台湾如果上面管理层没有这些概念
不晓得什么叫好好写程式
也没有作过专业的评估
但你又看了几本书
甚至已经到过了所谓的应许之地
念兹在兹都是美好的程式码
那你只能做几件事
1. 转行上层很重视这个的公司
(有办法的话 最推荐 XD)
2. 在公司内推行
(很累很拼还要会讲话更要会做人尤其不能得罪那些食古不化的老屁股)
3. 自己写code时偶尔顾到,时间紧了就算了,当作功德
(大部份人会选这个,比较不累,但又可以在不影响原本工作的情况下练习)
或是你也可以回去写垃圾code
要知道努力不一定会成功
但不努力肯定会比较轻松
就看你想走哪一条路了
作者: MOONY135 (谈无欲)   2018-09-25 17:08:00
简单来说就是未来的坑可能是别人去扛XDDD
作者: michaelchen1 (麥克麥克)   2018-09-25 17:33:00
推 我朋友就在解坑中
作者: asleisureto (ASLE)   2018-09-25 17:47:00
第三点真的是关键…把自己搞到累死得罪主管同事,钱也不会比较多qq
作者: abccbaandy (敏)   2018-09-25 20:37:00
中肯...很多不懂的PM/老板评价RD就只会看做的快慢(叹
作者: sharku (明珠求瑕)   2018-09-25 20:44:00
作者: O187 (187cm)   2018-09-25 21:43:00
我遇到的是被同事骂:这只有你会懂,没人懂。所以还是别用设计模式事实上我还是用了一堆设计模式,然后离职丢给他接
作者: philip80220 (花)   2018-09-25 21:46:00
看了这串真心觉得我们公司根本佛心 code很有系统
作者: clamperni (肥宅牛牛)   2018-09-25 22:33:00
不用心是假议题 没能力才是真的
作者: johnny94 (32767)   2018-09-25 22:42:00
这篇正解,太多人误会敏捷开发就是用很快的速度丢出产品原本要 3 天的东西,不会因为用了敏捷开发就变成 1 天
作者: ppHomer (三脚猫)   2018-09-25 22:56:00
老板不看code 然后写3天写很快的被指派&完成新任务接手的人两个月整理完程式.继续接"维护"接bug接电话
作者: banqhsia (BEN)   2018-09-25 23:16:00
推clamerni大。没才条还嫌工具坏 (台)
作者: viper9709 (阿达)   2018-09-26 00:03:00
某方面来说还满中肯的
作者: vi000246 (Vi)   2018-09-26 00:39:00
敏捷开发是前人种树 后人乘凉爽也是爽到后面进来的人
作者: ttt95217 (略)   2018-09-26 03:52:00
还是要看案件类型 如果是要持续使用改善的当然就要长远规划
作者: expup (linux)   2018-09-26 04:10:00
台湾一堆专案公司哪管那么多就是要快 能跑就行做产品的公司 也满多是这样子 先求有再求好 xd
作者: jamestian (No defined)   2018-09-26 07:26:00
精辟!!!
作者: t64141 (榕树)   2018-09-26 09:18:00
先求有之后就会变成程式能用就不要乱改
作者: luiGiF (luiGif)   2018-09-26 10:46:00
每次都在补前人的屎坑 想翻新真的要很大的努力
作者: SonicMax (只要XX手上有枪...)   2018-09-26 22:20:00
事实上自从我自己写APP, 很多clean code的习惯都是一边写一边养成的 原因只有一个:维护容易尤其是OO类型的语言 不用物件的概念去写很怪

Links booklink

Contact Us: admin [ a t ] ucptt.com