西西河

主题:【原创】闲聊敏捷编程——测试驱动开发(一) -- 代码ABC

共:💬55 🌺131 新:
全看分页树展 · 主题 跟帖
家园 TDD虽然不错,实际做下来还是很多问题

比如我现在最大的问题就是基于某些框架和方案,这往往是难以做白合性质的单元测试,只能用一些框架去做自动化的确认测试,维护成本非常高。而且我感觉也失去了tdd的本意。最适合开发人员写的,应该是百盒才对。

不知道这方面你有什么好建议? 特别是ui这块,很多web 框架都是基本不可测试的。 httpunit或selenium那样的东西,感觉上有些跑题了,而且对应的测试用列的维护台痛苦。

另外测试代码和实际代码的比例达到一个什么程度为好,也值得讨论。tdd虽然给出了一些结果导向的标准,但是实际做下来感觉还是不够清晰。我们有些程序员基本上都只写大方法的,这样的测试覆盖率太低。

说到这,又要提重构了。但是基于历史原因,很多代码也是比较难用勇气做重构的。比如今天就是,2个人pp 重构完了别人的代码,提交以后cc服务器变红。虽然自己基本确定不是改动那部分的任务, 但是因为test case的覆盖率不高,还是需要手工去检查核实,挺痛苦的。这也再次说明没有完善测试用列的重构是非常危险的。

agile开发说起来真是一言难尽,目前看到最接近agile本质的团队还是在国外的时候。国内的所谓agile圈子里做的,很多都是挂个皮而已,有些所谓专家翻译了一堆书,真跟他们讨论起来,发现也只知道皮毛而已。

举个最简单的例子,勇气这一点,国内程序员就很难做到。昨天发现一个资深程序员居然不明白数据库的索引是如何使用的,对基本概念有完全错误的认识,而且对我的提醒还很是自信,特意写了个长邮件调侃了他一下,就是这样,他也只是答复说忘记加索引了,不肯承认自己对索引概念的认识是错误的。国人做事将情面,但是技术人员如果没有勇气把这些面子的屏障脱去,就很难真正有效的进行沟通。

最近跟经理闹矛盾,其中一点就是个人发现几个大牛对数据库的认识很肤浅,由着他们去倒腾性能优化很危险,希望能强制对他们进行一下基础普及教育,结果上下都不感冒。程序员不乐意承认自己不懂基础,经理觉得我是浪费时间,也在打压大家工作积极性。 这算是文化背景的巨大差异了。

算了,比起国内某著名技术人员,号称作了n年的dba,居然连数据库范式都不明白,我们这些大牛也算不错了,用经理的话来说,可以解决问题么,你折腾啥,又不是火箭工程。但是本质上,就少了国外程序员那种不断追求细致,追求细节,追求完美的精英作风。这点我看来也是敏捷的本质之一,敏捷中的程序员不要求是大牛,但是要有追求完美的愿望,而且乐意从小事做起,从细节做起,而我们太多人只喜欢做那些炫耀技巧性质的东西。

通宝推:李根,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河