首页 > 代码库 > 代码为什么腐烂
代码为什么腐烂
我是一个程序员。相信吧内的很多的程序员也有过同样的的经历,在公司一边骂着别人,一边写着比别人更烂的代码。
从工作态度上,我觉得程序员可以分为三种。第一种是最垃圾的程序员,在做任何工作的时候,没写上三行代码就一个劲的抱怨,这代码怎么这么烂,这里不对,那里不对。第二种,就是一般型的程序员,虽然嘴上在抱怨,但是还是会坚持下去,把功能实现。第三种就是嘴上还是在抱怨,但是会把项目做好,并且以后遇到类似的项目应该怎么去写优雅的代码已经会自己思考清楚。
以上只是调侃一下。其实,代码腐烂,在很多公司都有。有些人说这个程序员个人素质和能力的问题。好的程序员就能写出好代码,水平菜的程序员写出来的就是差的代码。这样说,其实是完全不负责任的。我承认,在写一些难度很高的项目的时候,或者写一个架构的时候。算法和设计模式这些体现程序员内功的技术是会体现出来的。但是,在大多数的小公司,甚至是大公司大多数的程序员,更多的是在写功能。除了实习生,我相信很少有程序员会把功能都写得一团糟。无非就是mvc,然后分层开发,没有特殊的业务需求的话,一般是三层架构。如果有特殊需求,那么按需求增加层次。函数参数不超过多少个,共有代码要进行封装,方法长度不超过多少行,有详细的注释。每一层各司其职,比如service层中不要向数据库发送sql,而dao层不要进行大量和系统相关的业务操作。仅此而已。
说起来很简单,操作起来的确也像说的那么简单。但是为什么最终代码还是会腐烂呢?
最直接,最初浅的原因,比如时间问题。比如,有一个非常非常大的功能,按照程序员的正常开发需要10个工作日。但是上面却只给程序员3天,就算是加班,程序员也不可能给你做得好,况且加班没有加班费,别人就更不愿意加班了,所以,三天吧,随便弄一堆垃圾出来,跑得起来就OK,代码就开始腐烂了。
还有,比如产品经理的问题。在一些软件公司,产品经理都是非常强势的人。他们几乎懂不起任何编程。可以这么说,他们仅仅有的是产品经理这个称号而已。需求写出来千奇百怪。按理说,在正规的开发流程中,程序员是可以反驳产品经理的,可以提出自己的设想,大家交流之后提出一个适中的方案然后再写代码。但是,在部分的企业中,产品经理威力无比,提出的需求,程序员必须做来和他说的一摸一样。所以代码又开始腐烂了。更有胜者,产品经理不断该需求,却不增加开发周期,完蛋了,代码不腐烂都不行了。
还有原因,人员搭配的问题。我有朋友曾经参与过这样的项目,没有文档,没有UML图,有很少很少的注释几乎写了和没有写一个效果,没有数据字典,产品经理,测试,甚至连老的开发人员把逻辑完全搞清楚。项目中的老代码,有有几个类占用硬盘空间达到300KB以上,超过500行的方法比比皆是,他加入项目2个星期不到,就开始要去做项目中几个大模块的修改,设计仅仅业务逻辑层的代码超过两万行,产品经理给出的需求只有功能上的一些简单介绍,而逻辑上的需求完全没有。问老员工和产品经理逻辑上的东西,得到的答案永远都是看老代码,给他的开发周期是2周10个工作日,当然他工作了14天,并且天天加班。我只能很同情对我那个朋友说,你开发出来不是一坨屎才不正常,是一坨屎才是正常的。
以上说的原因都是表面原因。
我们继续分析,为什么会出现以上那么多的问题。
制度问题,不管是一个项目,一个公司还是一个国家,良好的制度才能保证正常的运转。古时候,唐帝国曾经那么的强大,太宗在建国之初定下了规范良好的制度,造就了中国历史上的最高峰,而到了玄宗后期,杨国忠破坏制度,安史之乱爆发了。。。其实管理一个公司甚至是一个项目,也应该有良好的制度,才能造就一个又一个的优雅的代码。比如,规定好开发周期应该由产品经理,项目经理,开发人员协调商议之后定,这样还会出现时间不足吗?比如程序员开发的代码,格式,注释,文档,数据字典,必须有人来检查通过,这个样还会出现代码混乱吗?比如,需求由开发人员和产品经理协调定下来,这样还会出现逻辑混乱吗?比如对待新员工,应该要慢慢培养,循序渐进的让其接触核心逻辑,这样还会造成人员安排问题吗?
不过话说到这里,其实几乎每一个人都明白良好的制度对公司的好多处,每一个人都明白慢工出细活的道理。但是为什么还是有那么多的公司没有良好的制度呢?
思想问题,激进,浮躁。在国内还是有太多太多的公司再不停的追求高速发展。高速代表什么,中国的经济高速带来的负面是环境的破坏,到处都是臭水沟,到处都是雾霾。带来的人们思想的物质,什么都是看钱。而这些恐怕国家要投入更多的精力才会挽回。而公司的高速发展带来的是什么呢?带来的是连制定规范的制度时间都没有,带来的是程序员连优化思考的时间都没有,带来的是一段有一段的垃圾代码。接着,开发人员都受不了如此垃圾代码的折磨,所以辞职走人。然后新人进来,写了更为垃圾的代码之后受不了折磨又辞职,然后就是恶性循环,最后烂到底。然后用户体验各种糟糕,然后,痛了,然后再花更多的时间去好好的重构。重构之后呢?或许又是好了伤疤忘了疼。最后,被那些稳扎稳打,产品优秀的,曾经看上去被自己甩在后面的公司给超过了。
原文地址:http://tieba.baidu.com/p/2963418876
代码为什么腐烂
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。