黑马程序员 2014-06-20
最近在分析现有代码,将一部分逻辑抽取出来做服务化,分析的时候才发现里面有很多“坑”。在对相关负责人访谈的时候,发现绝大多数程序员都有这样的习惯:
然后,用不了多久,代码就变得很难读懂了,只有少数人掌握其中的“真理”。我个人认为,如果是针对某一个特定的应用,规模不大、用户比较少、软件生存周期比较短、需求变更很少的情况下,这样做是可以接受的。 但如果是互联网行业,情况则完全不同:产品周期很长(除非死翘了)、需求频繁变更、业务方向经常变更,这样的做法会让代码很快就变得难以理解(我最近重构的逻辑实际上才过了1年半左右)。 最后导致的结果就是没法维护,重新开发,进入下一次恶性循环。
这种情况以前也经常遇到,绝对不是个案,甚至是普遍的。我开玩笑地对同事说,程序员就是被别人写的代码恶心,再把本来已经很恶心的代码变得更恶心,再用来恶心别人的过程(他离职或者去做其他的系统,别人接替他的工作)。这样对程序员整个的生存环境造成了极大的影响。 维护的工作没人愿意做,但是大多数工作都是维护类型的工作。
为什么不换一种思路来进行呢?
一些程序员遇到了拆分的问题,比如有个程序员知道底层是不能调用上层逻辑的,但是遇到了底层的一个处理必须要通知上层,又没人告诉他应该怎么做,只好硬性依赖了。对此我只能说IOC几乎每个Java程序员都知道,但是能够深入理解的就不那么多了,如果理解了IOC,就不会不知道如何处理了。
紧张的工期也是一个问题,当然,有些程序员不去动原有的逻辑并不真正的因为是工期的问题,而是以工期为托辞,不愿因做那些费力不讨好的工作。我个人将之归结为职业素养,宁愿晚一点下班,也要把代码写的好一些,这是职业程序员应该遵守的“道德”规范。