Fw: [请益] CURD开发时间推估

楼主: howardgj94 (飘飘渺渺所为谁)   2019-07-12 12:31:27
※ [本文转录自 Programming 看板 #1TA0j_Vb ]
作者: howardgj94 (飘飘渺渺所为谁) 看板: Programming
标题: [闲聊] CURD开发时间推估
时间: Fri Jul 12 12:24:29 2019
大家好,
本人算算,毕业后踏入职场也迈入第二年了,
回想大学专题做影音系统,负责后台资料处理(HADOOP)的部份,
研究所做资料科学的研究,
进入职场后,从资料科学转做系统开发。
因为在财团法人,只要系统出的来,对于开发环境有很大的自由度,
所以每次开发时,都会想办法去接触新的框架跟软工架构。
(财团法人的缺点,只要看成果,但希望在当兵这三年,可以把这缺点化成优势,
于是在这一年多来,只要接臅新的案子,就想多学一点不同架构)
这一年来,陆续碰过原生的php开发、cordova、
学写phpunit测试、laravel MVC架构、
vue与laravel的集成架构、java spring MVC架构、junit测试、
react + redux + react-route前端架构等。
因为研究所boss是软工专常的关系,我踏入职场后,对软件架构的要求比较高,
例如开发时尽量遵守TDD开发原则、repository模式将数据库逻辑分开、数据库使用
orm 或 entity framework,而不直接操作sql语句、又或者是前端使用redux模式
将action 跟 view尽量抽离等。
老实说,这些东西以我目前看到,至少在唉唉唉里面,是不太重视这些东西的。
最近在开发新的案子,数据库架构设计完,开始投入app撰写。写了一阵子,被一个
同事说,“觉得你开发速度太慢了,这东西我xx(时间)就开发完了,不须要这么久。
于是我根据git记录开始追溯我的开发时间,
发现以普通不太过复杂的数据库crud撰写来看,
从unit test撰写、repository设计、mvc test撰写,controller设计、
到前端画面设计、串连api,debug,这整个动作做完
平均大概要花费一到两个工作天。
以成效来看,似乎真的不是很有效率。
当然这次使用redux react跟java spring都算新东西,要算学习成本进去,
但以我git纪录来看,一个crud前后台完成,大约就是一到两个工作天。
好奇大家在开发crud时,大概会花多久时间呢?
现在有自动生成crud的工具,但似乎弹性不够大,也不够好用,所以我没接触。
如果能把crud时间缩短,整个开发时程可以缩很多。
另外,tdd drive的开发模式,在目前台湾软件业界流行吗,财团法人有点太学校了,感
觉接触的不一定是业界目前的流行。如果可以的话,未来希望自己还能碰一些CI/CD的工
具。
另外题外话,tdd drive的好处是,你必须在写程式前就先把架构想好,而且为了做到
unit test,程式必须解耦合,也就是说,如果测试写的好,基本上设计出来的程式会非
常的符合SOLID原则,当然这是最理想的状况。
刚开始摸redux时,并没有想到给前台也写测试,当时看到redux官方给的todo范例时就非
常不解,为什么要把画面分成component跟container。后来开始思考如何写测试时才发现
,分开画面跟动作的原因,是为了能够撰写unit test,另外这样写才能让前端的action
跟view能够真正的分离。
不过目前我的前端是还没有撰写test,前端对我来说,光要把画面调好、设计画面就花
太多功了,现在如果还要加上test的话,估计crud就要花两个工作天或以上了.
作者: max241 (养生之道)   2019-07-12 12:43:00
他快只考虑MVP吧 要写测试就是会拉长开发时间有测试 长时间下来是好的 但如果专案很快就结束就...呵呵看性质考虑要写成可不可测,好不好维护等 但感觉你是一条龙
楼主: howardgj94 (飘飘渺渺所为谁)   2019-07-12 13:13:00
我的案子都是个人或双人案子,我的确以前坚持用tdd模式一条龙,最近工具会多了才开始思考时间成本的问题
作者: abccbaandy (敏)   2019-07-12 13:17:00
外面87%都是功能能动就好,test都没写了还TDD XDD
作者: expup (linux)   2019-07-12 13:53:00
现实是你要这样干就去外商搞大部份多的是随便弄求过就好
作者: aa155495 (冷月狂刃)   2019-07-12 14:21:00
看是长期产品,还是 poc 而已?概念验证的案子,用做长期产品的思维太浪费时间
作者: allenxxx (fufuxxx)   2019-07-12 14:22:00
外面程式还没写到一半,需求就不知调过几次了,TDD是啥?
作者: neo5277 (I am an agent of chaos)   2019-07-12 15:59:00
III不同部门差很多的样子
作者: b81314 (有点贵)   2019-07-12 17:04:00
接案建议不要用TDD模式去开发 根本不可能如你所意..
作者: doranako (真爱无限)   2019-07-12 17:39:00
如果主管不懂tdd 就会觉得你做事慢,然后就黑掉
作者: Nonegrame (程式写得好,好人做到老)   2019-07-12 18:22:00
肯花时间写测试就要痛哭流涕了
作者: sharku (明珠求瑕)   2019-07-12 18:31:00
坚持下去 你是对的
作者: alog (A肉哥)   2019-07-12 18:51:00
先学会分辨你的同事雷不雷,不然意见也是听一半就好 他所谓的快,要是留下一堆技术债你只是不知道
楼主: howardgj94 (飘飘渺渺所为谁)   2019-07-12 20:06:00
同事要说的话,从大学开始开发系统,到现在有五年多的开发经验,研究所帮老师写公司系统.我自己评价,他可以以很短的时间完成任务,品质也还ok,风格有自己一套,但不着重软工架构大概就mvp写很好的人吧,毕竟他们boss跟在唉唉唉开发的系统都算概念系统,无法判断真实上线的维护问题
作者: lukatw (糖炒栗子)   2019-07-12 22:20:00
时程及专案周期和专案性质都是重要考量因素,如果接案性质的,通常专案周期比较短,而需求变动速度可能也很快,连测试都不写了别说TDD。后来有长期专案,但专案初期在时程压力下完成MVP,测试码就变成后补,有些地方写的很臭XD,目前专案算比较稳定,所以开始补上测试+重构程式
作者: landlord (91)   2019-07-13 00:42:00
以一个过来人的经验跟你分享:让自己作到TDD开发比他们不写测试还快,他们就会闭嘴了。老板向来不在乎大家是不是TDD,只要你能又快、又好分享我最近在客户那边的战果:http://bit.ly/2YOxPY03人的mob-programming, TDD, 三地开发, agile/scrum三天进度over deliver一个sprint的进度老板跟PO显得非常满意,更别说我们顺手把旧的架构整理好
作者: abccbaandy (敏)   2019-07-13 01:57:00
楼上大概没待过那种,需求早上讲完下午就变了一套,然后隔天问你写得如何的公司...
作者: landlord (91)   2019-07-13 02:10:00
那就让你自己拥有选择公司的能力,这是最直接的解决方式不过谁都会碰到时程问题,就看你怎么解决时程的问题
作者: abccbaandy (敏)   2019-07-13 02:17:00
果然还是逃吗XD 我只能说台湾有很大一部分公司都推不了你说的东西,就算叫TDD之父来也一样,这就是现实
作者: landlord (91)   2019-07-13 02:19:00
逃?我只是觉得待在一个环境里面自怨自艾,很浪费人生
作者: abccbaandy (敏)   2019-07-13 02:25:00
也是啦,自己先学会,等哪天有机会就能派上用场了
作者: landlord (91)   2019-07-13 02:27:00
总会有需要你能力的地方,所以不要原地踏步被糟蹋了
作者: abccbaandy (敏)   2019-07-13 02:28:00
倒是好奇台湾哪些公司真的有导这些东西的阿?每次面试都讲得很完整,进去各种台式敏捷+ 0 test
作者: landlord (91)   2019-07-13 02:29:00
在台湾的外商算吗?XD 不过我都不推荐大家“导”TDD其实老板真的不在乎你怎么写,他们只要结果又快又好但如果你们作到又快又好,而需要他们一些support, 他们会很乐意提供你协助的,只要你能作到他们要的现在的钛坦、Line里面的工法素质都很不错QA/QE/SDET 比较完整的,就趋势跟 KKBOX我之前在yahoo的几个团队也做得挺扎实的如果我有能力,老板愿意相信我,他们没有测试其实挺好的这不就是贡献自我价值的舞台吗?
作者: alog (A肉哥)   2019-07-13 02:39:00
导 test 看老板/技术主管本身有没有被雷包痛到过,痛过几次然后又是执行重要专案/长期维护产品就会导入了我长期维护EC平台,第一年后端不是我写,同事虽然资深但就是不肯导入任一 test 去验证他的程式没问题结果花了一年的时间在那里修各种问题修到差点还要赔钱
作者: abccbaandy (敏)   2019-07-13 02:41:00
看起来不是大公司就是外商呢...
作者: alog (A肉哥)   2019-07-13 02:42:00
次年我接手专案的后端去写了v2 因为该语言/框架其实我不熟但是开发经验有 而且该框架的测试环境算很成熟我花了大概半年多的时间整个把全部的功能重写客户也愿意付钱等 因为他们被雷到怕了现在每次加工能或是做前端什么的 完全不用担心会炸掉还是出现例外状况的问题甚至连其他第三方系统没事偷改规格或调整都可以测的到那种过程就是真的只有一个字能形容 就是他妈的很爽 不用没把握说程式部署到好几台主机后可能有问题之类的像我自己会在前端的程式利用GA用事件跟传送例外错误讯息,然后用自订报表去汇整这些资料
作者: abccbaandy (敏)   2019-07-13 02:48:00
同感,这种真的是被炸过才会重视,甚至还会帮你排时间
作者: alog (A肉哥)   2019-07-13 02:48:00
当你一个重大新接口的改版上线后,一整个礼拜都没有错误时那种感觉真的很好
作者: alog (A肉哥)   2019-07-13 02:49:00
为什么 因为我那个平台一天的营业额很高 你炸掉还是什么就是影响到人家的公司我一个朋友也是做EC的 不过他也是有做营运某一天动了数据库 结果不慎搞毁资料 花了不少时间救回 虽然说只挂了一点时间 但喷了十几万去赔客户我只能说 真的有些东西值得细心去处理 但前提是 你待地方知道那个价值是说 其实写测试也不会太慢 只是一开始会卡比较久这么设计做久了其实很多东西也是差不多那样因为你不写 你手动反复调适也累 我觉得要多利用工具做自动化来省时间
作者: cactus1021 (我要撞飞一切)   2019-07-13 21:10:00
错字好多
作者: ek0519 (new life)   2019-07-15 18:47:00
可以玩玩 laravel nova
作者: Csongs (西歌)   2019-07-19 08:46:00
单表crud 一小时吧重点是背后逻辑要清楚一小时包含测试code

Links booklink

Contact Us: admin [ a t ] ucptt.com