作者Argos (Big doge is watching u)
看板Soft_Job
标题Re: [讨论] 前人的code 後人翻写的机率高吗?
时间Tue Sep 25 16:57:54 2018
※ 引述《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
要知道努力不一定会成功
但不努力肯定会比较轻松
就看你想走哪一条路了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.130.131.160
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1537865878.A.AEF.html
1F:→ MOONY135: 简单来说就是未来的坑可能是别人去扛XDDD 09/25 17:08
※ 编辑: Argos (220.130.131.160), 09/25/2018 17:20:30
2F:推 michaelchen1: 推 我朋友就在解坑中 09/25 17:33
3F:推 asleisureto: 第三点真的是关键…把自己搞到累死得罪主管同事,钱 09/25 17:47
4F:→ asleisureto: 也不会比较多qq 09/25 17:47
5F:推 abccbaandy: 中肯...很多不懂的PM/老板评价RD就只会看做的快慢(叹 09/25 20:37
6F:推 sharku: 推 09/25 20:44
7F:推 O187: 我遇到的是被同事骂:这只有你会懂,没人懂。所以还是别用设 09/25 21:43
8F:→ O187: 计模式 09/25 21:43
9F:→ O187: 事实上我还是用了一堆设计模式,然後离职丢给他接 09/25 21:44
10F:推 philip80220: 看了这串真心觉得我们公司根本佛心 code很有系统 09/25 21:46
11F:推 clamperni: 不用心是假议题 没能力才是真的 09/25 22:33
不用心当然就没能力罗
但我认为只要够认真
人人都能被训练成能够写出一手好code的
或许没办法成为顶尖工程师
毕竟要当top还是少数
但成为一个专业人士一定没问题
12F:推 johnny94: 这篇正解,太多人误会敏捷开发就是用很快的速度丢出产品 09/25 22:42
13F:→ johnny94: 原本要 3 天的东西,不会因为用了敏捷开发就变成 1 天 09/25 22:42
14F:推 ppHomer: 老板不看code 然後写3天写很快的被指派&完成新任务 09/25 22:56
15F:→ ppHomer: 接手的人两个月整理完程式.继续接"维护"接bug接电话 09/25 22:59
16F:推 banqhsia: 推clamerni大。没才条还嫌工具坏 (台) 09/25 23:16
17F:→ viper9709: 某方面来说还满中肯的 09/26 00:03
18F:推 vi000246: 敏捷开发是前人种树 後人乘凉 09/26 00:39
19F:→ vi000246: 爽也是爽到後面进来的人 09/26 00:40
後人也有可能是你自己
不是吗?
如果公司老板能看到前人种树其中的价值那更好
台湾的软体产业也会因此更进步
当然这只是希望啦
※ 编辑: Argos (118.169.12.75), 09/26/2018 01:25:41
20F:推 ttt95217: 还是要看案件类型 如果是要持续使用改善的当然就要长远 09/26 03:52
21F:→ ttt95217: 规划 09/26 03:52
22F:推 expup: 台湾一堆专案公司哪管那麽多就是要快 能跑就行 09/26 04:10
23F:→ expup: 做产品的公司 也满多是这样子 先求有再求好 xd 09/26 04:10
24F:推 jamestian: 精辟!!! 09/26 07:26
25F:→ t64141: 先求有之後就会变成程式能用就不要乱改 09/26 09:18
26F:推 luiGiF: 每次都在补前人的屎坑 想翻新真的要很大的努力 09/26 10:46
27F:推 SonicMax: 事实上自从我自己写APP, 很多clean code的习惯都是一边 09/26 22:20
28F:→ SonicMax: 写一边养成的 原因只有一个:维护容易 09/26 22:20
29F:→ SonicMax: 尤其是OO类型的语言 不用物件的概念去写很怪 09/26 22:21