质量糟糕的代码会在项目中像病毒一样传播,尽量在源头控制好代码质量、强调范例的重要性
2009-12-09 12:46 通用C#系统架构 阅读(3052) 评论(62) 编辑 收藏 举报折腾管理类软件项目,有些人折腾来折腾去,最后折腾的要死,最后没兴趣了转行了,有些人折腾来折腾去,正在走向越搞越乱的局面最后很可能也走向做不下去的道路,还有一些人一直坚持到最后,这期间大部分都有很多宝贵的心得体会,只是由于没空或没共享分享的想法,或表达能力不强没有写出宝贵的经验而已,大家多多少少都会有很多想说的是是非非。
中午趁着休息时间,想写一篇,有关代码规范、范例的重要性文章,这些年有一个体会,好的思想、好的代码传播起来感觉比较困难,垃圾代码、错误的做法很容易蔓延到整个项目,就算是个人做项目也容易蔓延,解决这些问题需要付出很大的代价去修正,团队的项目那就更容易付出惨痛的代价了。
在一个项目团队里,恶劣的代码的更容易传播,而且修正这些代码,付出的代价,往往比个人行为付出的代价更高,我打个如下比方:
1. 写了一个功能页面,里面有10个功能点但是2个功能没做好,有点儿所谓的小Bug,但是整体上还可以,这是一个模块里,出了2个不足或是2个Bug。
2. 个人开发的系统里有20个功能页面,至少10个功能页面是类似,都是可以通过复制粘贴完成工作,就会导致出现 2Bug×10页面 = 20 个Bug。
3. 若一个项目组有10个组成,每个人负责20个功能页面,其中10个都是类似的功能,就有可能会导致出现 2Bug×10页面×10人 = 200 个Bug。
由于前期只是2Bug, 后期会衍生出 20Bug、200Bug,所以我们不能忽略那么一个小小Bug无所谓的心态,它就像毒瘤一样很快就会蔓延到整个项目里,若大家的代码风格都是一致的,复制粘贴的水平也比较高,后期统一修正还相对容易一些,若各路神仙都用了个性化的复制粘贴,那修改这些错误,耗费的代价是可想而知的,会有多么惨痛。
做软件就像做商品,我们只要有能力做出一个精品军刀的水平,就有可能复制出100万个精品军刀的可能性,若我们连一个精品瑞士军刀都做不出来,做出100万个复制品绝对是一大堆大垃圾。我也非常喜欢德国双人牌菜刀,在超市里一把就卖好几百元,甚至是上千元,唉,的确人家造的得精美,太棒了,我每次看了都有购买的欲望产生,我要是哪一天不小心发财了,绝对买上几把回家玩玩,虽然我很少去厨房也从不做饭,但是非常想那个买菜刀啊,放在家里欣赏也开心,估计用这个菜刀也会很爽啊。
虽然做出精品,接下来的运营、营销也关键,但是我们要有追求高品质精品的意识,给别人一个享受的,就算他买了不用,放在家里心理也爽。
由于经历了很多惨痛的事件,甚至是赔钱伤身,所以现在做项目一般也不急于写太多功能,就把最重要的、最关键的例子程序,仔细做好,代码的质量、规范、性能、功能、可阅读性都仔细检查好,精挑细磨,反复修正,追求完美,然后定型了,就给部门里的同事上上培训,讲解,关键点,注意事项,都讲解好了,就要求大家严格复制粘贴,这样大家的工作效率也提高了,我自己的价值也体现出来了,我也不用去写过多的代码,负责精品样例程序就可以了。
我比较反感“手下”这个词汇,谁都不是我手下,我也不是别人手下,大家都是同事,也不希望别人叫我“手下”,甚至我的主管,我的老板,他若在别人面前叫我“手下”,我第二天就会考虑跟他说:“ByeBye”。 总感觉“下”这个字,包含“下等”的含义的感觉。若是叫我“手上”,我可能听起来不反感。
跟别人比拼产量是不行了,拼身体,拼干劲也干不过了,那就拼经验、拼质量、拼品质总可以的。有的项目为什么会越做越烂,是因为源头没有抓好,病毒泛滥也有关系的。
我核心想表达的并不是说我做得有多么好,只是想阐述若没这么做,可能我早就完蛋了,至少陷入项目的泥潭了,若有哪位读者还没意识到范例的重要性,那就需要重视一下了。 2个Bug 衍生出 20 个Bug,又导致产生了最后的 200 个Bug。
大哥,求你了,别叫我“手下”,叫我同事好吗? 或者叫我“手上”也可以。今天虽然你是我的“手上”,说不定明天你就是我的“手下”,请你尊重我,我只是个跟班的小弟而已,不是“手下”。
导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级授权
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限