很多人,大部分是公司的小员工,在维护代码时,都会想,看到以前别人写的乱七八糟的代码,是要复用代码还是重构代码呢,公司给你的时间也充足。但是代码写的再好公司是不关心的,不论你用1000行代码实现还是100行代码实现,只要你能实现不犯错误就行,在这种情况下多数的人还是会选择复用这些乱七八糟的代码,因为这样代码很好理解,也让自己更容易修改,但是很快就遇到挫折了,这些代码和其他模块的代码耦合的太严重了,根本不能独立出来,牵一发而动全身,默然间才发现时间已经不够了,于是你又不断的进行fix,程序终于不报错了,代码也能顺利运行了,但是回头一看这部分代码越发凌乱了,和自己之前想的完全不一样了,不仅不能增强代码的可读性,而且健壮性也更差了,于是你绝望了,在心底里下定决心,绝不重构别人的代码。
于是我在面对别人写的很缺乏逻辑和重复太多的代码前驻足不前了,我想重构代码,但是万一出错boss就是一顿臭骂:说你工作不认真,能力不够;我想重写代码,boss又杀出来:你妹的,代码已经够多的了别写分支了,直接用他们已有的代码就行了,我很想狡辩:以前的代码和其他的耦合性太高,一改动以前的就不能用了,可能要花费大量的时间去考虑和测试其他的模块,但是这些都不在考虑之内,在面对boss的一意孤行,我再一次妥协了,我又一次复用了那些不可复用的代码,我回头一看,一大堆的特殊条件和一大堆的if else条件,我不想承认这是我写的代码,我突然间很害怕往那些代码上注上我的大名,同时我也讨厌这种恶性循环式的修改bug,但我必须妥协,因为我没有说话的权利,我本想写出优秀的代码,但是事与愿违。我一遍又一遍的做思想挣扎,不少大师教育我们做一个严谨认真的coder,但是事实教会我们只要解决问题,不论采取何种手段,毕竟我们不是为自己coder,而是为公司coder,公司要的是效率,能满足客户的要求,不关心好不好维护(因为不需要boss维护),给客户的代码是1G还是1M,程序能运行就行。曾看过百姓网的创始人的一片文章,说把代码从1000减少到200行,他们每天坚持这样做,写最高效的也是最健壮的程序,我想这也是coder的一种境界吧,什么样的环境创造什么样的coder,如果你在这样的一家公司,注重的是代码的质量和健壮性,那么你也有可能变成大师眼中的好徒弟;而如果环境限制了你,你该怎么做呢?
我想我不会去重构乱七八糟的代码,我会去复用那些代码,让他们更加的乱七八糟,至少这样你符合了企业的要求,绩效也是最棒的,但是我永远不敢承认那是我写的代码,我怕我承受不起,多个思维的合并,各种逻辑的结合,我想我以后也看不懂这些代码,怎么敢说是自己写的呢。
这教会了我们一个道理,并不是所有的代码都需要重构,不论你是面向结构式编程和是面向对象编程,不知道水深就不要下水,否则淹死的就是你一个人,只有更多的人下水你才安全。