一个或许比Ward Cunningham的“技术债务”更能打动中国软件开发团队接受单元测试的理由
2013-04-15 14:22
253 查看
之所以单元测试在国内本土软件开发企业中没有成为主流,我个人认为主要原因是包括码农、开发经理、公司高层在内的国内本土软件开发团队,大都没有看到“单元测试”能给产品内在质量所带来的具有中国味道的好处。西方大师所认为的单元测试“能够确定开发接口、保护已有代码不被破坏、起到API文档作用”等等好处,我认为对于中国软件开发团队还是不具足够的吸引力。
我认为,比较能说服中国软件开发团队认可单元测试的一个理由是:把你写的那些“代码”看作你攻下的城池,若你为这些代码写了单元测试,好比你攻下城池,并且建立了当地政府,控制住了当地局面,这是农耕文明皇帝的一般做法;若你只是写代码,但从不写单元测试,那你所做的有点像游牧民族,攻打一个城池并抢走一下好东西(写代码来完成功能、修复bug),但是“攻而不占”。中国历史证明,游牧民族要是想当农耕文明的皇帝,都不约而同地改掉了“攻而不占”的习惯,写单元测试,控制住了所占的城池。
我认为有些互联网公司,想试一试某款产品的市场是否对路,用很快的速度开发,不写单测,产品没人用就抛弃,就有点像游牧民族的路子。
孔子说“无可无不可。”农耕文明的皇帝和游牧民族的领袖,各有各的好处。所以写单元测试,也需要根据企业情况来酌情权衡。
游牧民族的领袖虽然速度快,但是有一点必须清楚,那就是:我攻打的城池永远不归我拥有,因为我没写单元测试来控制住它,换句话说,没有单元测试的源代码,即使完好地保存在公司的版本控制系统里,那也不是“你自己的”代码,因为没有单测就意味着代码不受控。明白这一点,再做游牧民族。
想当农耕文明的皇帝,还是相当游牧民族的领袖,你自己来决定。
我个人斗胆地认为,我刚才的“农耕文明的皇帝和游牧民族的领袖”的比喻,在说服中国开发团队接受重构和单元测试的观念上,或许比Ward Cunningham创造的“技术债务”debt要好使一点。大家不妨试一试。
---------------
原创文章,转载请注明出处, 谢谢。本文地址:http://blog.csdn.net/wubinben28/article/details/8803718
![](http://img.my.csdn.net/uploads/201304/15/1366007162_9133.jpg)
我认为,比较能说服中国软件开发团队认可单元测试的一个理由是:把你写的那些“代码”看作你攻下的城池,若你为这些代码写了单元测试,好比你攻下城池,并且建立了当地政府,控制住了当地局面,这是农耕文明皇帝的一般做法;若你只是写代码,但从不写单元测试,那你所做的有点像游牧民族,攻打一个城池并抢走一下好东西(写代码来完成功能、修复bug),但是“攻而不占”。中国历史证明,游牧民族要是想当农耕文明的皇帝,都不约而同地改掉了“攻而不占”的习惯,写单元测试,控制住了所占的城池。
我认为有些互联网公司,想试一试某款产品的市场是否对路,用很快的速度开发,不写单测,产品没人用就抛弃,就有点像游牧民族的路子。
孔子说“无可无不可。”农耕文明的皇帝和游牧民族的领袖,各有各的好处。所以写单元测试,也需要根据企业情况来酌情权衡。
游牧民族的领袖虽然速度快,但是有一点必须清楚,那就是:我攻打的城池永远不归我拥有,因为我没写单元测试来控制住它,换句话说,没有单元测试的源代码,即使完好地保存在公司的版本控制系统里,那也不是“你自己的”代码,因为没有单测就意味着代码不受控。明白这一点,再做游牧民族。
想当农耕文明的皇帝,还是相当游牧民族的领袖,你自己来决定。
我个人斗胆地认为,我刚才的“农耕文明的皇帝和游牧民族的领袖”的比喻,在说服中国开发团队接受重构和单元测试的观念上,或许比Ward Cunningham创造的“技术债务”debt要好使一点。大家不妨试一试。
---------------
原创文章,转载请注明出处, 谢谢。本文地址:http://blog.csdn.net/wubinben28/article/details/8803718
![](http://img.my.csdn.net/uploads/201304/15/1366007162_9133.jpg)
![](http://img.my.csdn.net/uploads/201304/15/1366007228_5043.jpg)
相关文章推荐
- 没个百来万就想自建技术团队?亲身经历告诉你,一个APP从无到有的开发到底要花多少钱!
- 一个好的技术团队应该怎么选择开发语言
- 自第N次改需求后,如何权衡业务需求与技术交付?业务方策划了一个宏伟的蓝图,只给你和你的团队一个改BUG的时间开发。阿里效能平台技术专家之岳邀你有奖来聊。
- CM开发日志 - 团队和技术配置
- 在一个项目中管理好基础架构和开发团队
- 现代软件工程讲义 2 开发技术 - 单元测试 & 回归测试
- 【Linux开发技术之常见问题】一个建立线程时常见的问题:invalid conversion from `void*' to `void*(*)(void*)
- CSDN日报20170302——《一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题!》
- 一个高效成熟的商业软件开发流程和团队
- 如何组建和管理一个嵌入式系统软件开发团队
- Git教程之一个团队如何在github上协作开发
- 一个比较全面游戏开发技术网站
- 团队开发共用一个开发者账号
- 可供创业团队技术开发参考的10条经验
- 创业团队新产品开发模式----寻找一个可持续升级、重复、盈利的模式
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目
- 微管理:给你一个技术团队,你该怎么管札记-化繁为简
- 微软资深MVP和讲师章立民先生携实力团队巨献 全方位探秘微软最新开发技术
- 一个简单的利用微软ajax技术开发的HTMLEditer
- 一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题!