博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以亲身感受浅谈程序的注释和一个bug的代价(单位:RMB)
阅读量:4141 次
发布时间:2019-05-25

本文共 1944 字,大约阅读时间需要 6 分钟。

        某位高人说过, 程序是写给人看的, 计算机只是顺便运行一下而已。 个人觉得这句话非常有道理。

        最近抓bug, 经常会跟踪到别人的模块中, 发现注释很少, 有的地方根本不知道在什么业务场景下走入什么分支, 又不打个日志, 无法快速有效地分析流程。 程序猿喜欢两件事:1. 喜欢骂别人程序不写注释; 2. 喜欢自己在程序中不加注释。偷笑

        有种观点是,程序要多用自注释取代注释。 我认为这是很扯淡的。 不可否认, 自注释非常非常重要, 但能力毕竟是有限的。 有时候, 确实有必要加一些人为的注释。 一般来说, 项目组中的老鸟不太重视这个, 因为很多时候, 他们熟悉流程, 知道程序该怎么走。 但对于刚接手新模块的人来说, 就需要花费较多的时间。

        人们为什么不喜欢写注释呢? 我想最主要的原因是, 写代码的人觉得自己懂, 不需要写注释。 看看, 这就是自以为是!另一个原因可能是, 写注释浪费时间。 看看这就是自私自利啊!

        有的人, 喜欢在程序中加自己的名字和日期做注释。 请不要鄙视这个, 我认为这样非常好, 其一: 自豪感驱使人不断进步。 其二: 敢写自己的名字在这里, 表明自己敢作敢为, 敢于对代码负责。 试想一下, 代码如果太烂, 他敢写自己名字? 小心被喷。 其三: 可跟踪, 当别人读你代码遇到问题时候, 可以找你沟通, 多方便。 别跟我说, 配置库中也有记录啊, 为什么不用版本管理软件区追踪呢? 有此问的人, 简直扯淡。 所以, 在代码中加入自己的名字, 没什么不好。但是, 请注意, 不要在每一话后都加, 否则是SB.   如果某段代码是为了解决一个bug, 那么除了姓名和日期外, 还可以加上问题单的单号, 这样更好。

        入职一年, 深感软件开发的维护成本相当高, 所以软件质量的重要性也不言而喻。 前期开发可以不要那么急躁, 把该做的东西做好, 充分考虑程序的兼容性(比如兼容以前系统), 扩展性(为后面留们路), 稳健性(能减少各种bug)等。 防守是最好的进攻, 原来如此。

        根据我的经验, 在这里, 我以亲身感受大概计算一下一个bug(仅仅指程序猿写代码的bug, 不是指代设计人员的bug)的成本, 如果大家有不同意见, 欢迎指出。

       下面,开始计算:

        一. 简单bug:  

         ..........->测试人员测试、反复重现并尽可能确定bug的场景,还要 抓日志并填写流程(20min)---> 测试经理大致审核并提交给开发经理,  实际上通常会经过版本负责人来转(3min)--->开发经理大致分析并将问题转给自己名下的一般程序猿(3min)--->开发人员重现问题,有可能要与测试人员沟通, 分析问题, 解决bug, 自己验证, 有时候还需要去测试人员所在的环境进行验证,代码静态检查, 本地构建, 提交代码, 填写流程报告, 包括原因, 解决办法和自测试情况(30min)--->开发经理审核原因和代码并提交给版本负责人(3min)---> 版本负责人大致看看流程并转给测试经理(3min)--->测试经理大致看看修改情况并分给自己名下的测试人员(3min)--->测试人员继续测试, 看开发人员修改好没, 一般至少要测两次, 有时需要与开发人员沟通, 然后走给测试经理(10min)--->测试经理转给版本负责人(2min)-->版本经理归档---...->......

        来算算钱:12 + 5 + 6 + 30 + 6 + 4 + 5 + 6  + 2 , 约为80元, 还有其他的一些无法计算的费用, 少算点, 一个简单bug大概100元吧。

       二. 普通bug. 

         测试人员的时间30分钟, 开发人员的时间1小时吧。 这种bug有时候需要澄清规格, 搭建环境, 少算一点, 200元吧。

        三.  中等bug. 

          测试人员的时间记为1小时, 开发人员的时间记为2小时,这种bug一般需要更多流程, 还需要查查规格, 查查资料等, 需要更多的人参与, 少算一点, 500元吧。

        四.  较难bug.

          这种bug不容易发现, 也不容定位和修改。 经常带有概率性, 开发人员一旦修改不全, 回归测试很难通过, 也需要更多的流程, 需要更多人扯淡, 扯皮, 吵架, 邮件, 音视频会议等。少算一点, 1000元吧。

        五. 困难bug.  流程更复杂, 大概算了一下, 少算一点, 2000元吧。

        六. 超难bug. 少算一点, 5000元吧。

        七. 到了客户/用户手上, 出现了bug, 少算一点, 10000元吧; 稍微正常一点, 20000元吧; 想象力大点, 1000000元吧。

        更大的bug代价, 我就不想象了。顿时, 我毛骨悚然, 突然想起了那句名言: 防守是最好的进攻。 

        睡觉。

        

        

你可能感兴趣的文章
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>
There's Much More than Intel/AMD Inside
查看>>
apache和tomcat整合
查看>>
java虚拟机错误问题
查看>>
oracle建立表空间
查看>>
oracle分区表的性能提升
查看>>
"Cannot allocate memory" OutofMemory when call Ant to build Polish project in Tomcat
查看>>
dumpcap抓包(python)
查看>>
查看文件是否被其他进程访问
查看>>
字符编码详解
查看>>
python使用dpkt分析wireshak报文(Modbus规约)
查看>>
css中的IFC
查看>>
CentOS 6.5下 mysql用户root登录不了
查看>>
windows + tomcat 部署web服务 http 改为https访问方法
查看>>
Windows系统下Apache 服务器启动以及过程中产生问题的解决办法
查看>>