看了园子中的一篇奇文, 《重构者的20种死法》。居然有20多个人推荐。我顿时有了放下手头工作,写一篇博文的动力。
首先来看一个事实,百度,谷歌,腾讯的程序员们的工资是一般程序员的2,3倍,高级程序员的工资可能是5倍以上。
国外创业企业的软件开发者由于可以拿到股份,收入可能有百倍之多。这是为什么呢?
他们的电脑性能最多比我们的好50%吧。
他们的工作时间可能还要比我们少。
他们的人体构造和我们也没有任何区别。
他们的智商就算高,也不会高一倍吧。
那么他们凭什么拿那么多钱呢?其实很简单,那就是他们的的产品--代码,比我们写的代码好几倍,那么的他们的收入就可以高几倍。
一个快餐馆的厨师的收入可能只有2000元, 而五星级宾馆的大厨年薪可能有百万。前者的产品只能管饱,后者可以成为艺术。
好的代码就如同是特种钢,需要经过各种工序的加工,锤炼才能形成。而坏的代码就如同是粗钢,甚至是地条钢。
所以即使暂时写不了高质量的代码,但绝对不能放弃对高质量代码的追求。
如果从业3,5年,即使写不了如同特种钢一样的代码,至少也要能写出不锈钢一样的代码吧。
那么什么是好的代码呢?
1,Expressiveness(表达性):好的代码一看就能明白作者的意图,且思路清晰。比如,函数名的选择,代码的组织等
2,Coupling(耦合) 和 cohesion(内聚)的恰当平衡,耦合太多,那么修改的时候牵连太多,无法下手。内聚不够,则代码冗余严重,也不容易修改。
3,消除代码的smell(臭味),比如过多的临时变量,过长的方法,过大的类等等。
4,Generic(通用度),比如能在一定程度上适应用户的变化。
以上是纯就代码而言,如果从应用角度来看,还有很多重要方面
首先来看一个事实,百度,谷歌,腾讯的程序员们的工资是一般程序员的2,3倍,高级程序员的工资可能是5倍以上。
国外创业企业的软件开发者由于可以拿到股份,收入可能有百倍之多。这是为什么呢?
他们的电脑性能最多比我们的好50%吧。
他们的工作时间可能还要比我们少。
他们的人体构造和我们也没有任何区别。
他们的智商就算高,也不会高一倍吧。
那么他们凭什么拿那么多钱呢?其实很简单,那就是他们的的产品--代码,比我们写的代码好几倍,那么的他们的收入就可以高几倍。
一个快餐馆的厨师的收入可能只有2000元, 而五星级宾馆的大厨年薪可能有百万。前者的产品只能管饱,后者可以成为艺术。
好的代码就如同是特种钢,需要经过各种工序的加工,锤炼才能形成。而坏的代码就如同是粗钢,甚至是地条钢。
所以即使暂时写不了高质量的代码,但绝对不能放弃对高质量代码的追求。
如果从业3,5年,即使写不了如同特种钢一样的代码,至少也要能写出不锈钢一样的代码吧。
那么什么是好的代码呢?
1,Expressiveness(表达性):好的代码一看就能明白作者的意图,且思路清晰。比如,函数名的选择,代码的组织等
2,Coupling(耦合) 和 cohesion(内聚)的恰当平衡,耦合太多,那么修改的时候牵连太多,无法下手。内聚不够,则代码冗余严重,也不容易修改。
3,消除代码的smell(臭味),比如过多的临时变量,过长的方法,过大的类等等。
4,Generic(通用度),比如能在一定程度上适应用户的变化。
以上是纯就代码而言,如果从应用角度来看,还有很多重要方面
例如
1,代码和商业逻辑的吻合度,尽量减少用户不需要的代码。比如,可以采用BDD等
2,代码所映射的商业场景本身的价值,也决定了的代码的价值,如果代码所映射的商业逻辑本身比较小众,代码的价值也不会太高。
如果具备的以上特性的代码,就会成为有生命力的活代码。这样的代码具有高度的进化潜力,自然也就价值连城。
而所有的这一切,一个非常重要的步骤,就是重构。而具有重构能力的程序员才能拿到高薪。
优秀的程序员永远都是稀缺商品。
有人会说,你说的一切都太理想化,我们的领导和同事根本看不上。
我的回答是,你需要对自己的人生负责。人生是一个迭代的过程, 当你的能力增加了,你才有机会遇到好的领导,好的同事。而好的领导和同事会进一步提升你的能力,从而你有机会遇到更高层次的领导和同事。
千万不要在起跑线上放弃!