Fork me on GitHub
努力提高代码的质量

工资翻倍的秘诀--

看了园子中的一篇奇文, 《重构者的20种死法》。居然有20多个人推荐。我顿时有了放下手头工作,写一篇博文的动力。

首先来看一个事实,百度,谷歌,腾讯的程序员们的工资是一般程序员的2,3倍,高级程序员的工资可能是5倍以上。
国外创业企业的软件开发者由于可以拿到股份,收入可能有百倍之多。这是为什么呢?

他们的电脑性能最多比我们的好50%吧。
他们的工作时间可能还要比我们少。
他们的人体构造和我们也没有任何区别。
他们的智商就算高,也不会高一倍吧。

那么他们凭什么拿那么多钱呢?其实很简单,那就是他们的的产品--代码,比我们写的代码好几倍,那么的他们的收入就可以高几倍。
一个快餐馆的厨师的收入可能只有2000元, 而五星级宾馆的大厨年薪可能有百万。前者的产品只能管饱,后者可以成为艺术。

好的代码就如同是特种钢,需要经过各种工序的加工,锤炼才能形成。而坏的代码就如同是粗钢,甚至是地条钢。


所以即使暂时写不了高质量的代码,但绝对不能放弃对高质量代码的追求。
如果从业3,5年,即使写不了如同特种钢一样的代码,至少也要能写出不锈钢一样的代码吧。
那么什么是好的代码呢?
1,Expressiveness(表达性):好的代码一看就能明白作者的意图,且思路清晰。比如,函数名的选择,代码的组织等
2,Coupling(耦合) 和 cohesion(内聚)的恰当平衡,耦合太多,那么修改的时候牵连太多,无法下手。内聚不够,则代码冗余严重,也不容易修改。
3,消除代码的semll(臭味),比如过多的临时变量,过长的方法,过大的类等等。
4,Generic(通用度),比如能在一定程度上适应用户的变化。

以上是纯就代码而言,如果从应用角度来看,还有很多重要方面

例如
1,代码和商业逻辑的吻合度,尽量减少用户不需要的代码。比如,可以采用BDD等
2,代码所映射的商业场景本身的价值,也决定了的代码的价值,如果代码所映射的商业逻辑本身比较小众,代码的价值也不会太高。

如果具备的以上特性的代码,就会成为有生命力的活代码。这样的代码具有高度的进化潜力,自然也就价值连城。
而所有的这一切,一个非常重要的步骤,就是重构。而具有重构能力的程序员才能拿到高薪。
优秀的程序员永远都是稀缺商品。

有人会说,你说的一切都太理想化,我们的领导和同事根本看不上。
我的回答是,你需要对自己的人生负责。人生是一个迭代的过程, 当你的能力增加了,你才有机会遇到好的领导,好的同事。而好的领导和同事会进一步提升你的能力,从而你有机会遇到更高层次的领导和同事。
千万不要在起跑线上放弃!

最近涉及重构话题的文章不少啊,其实我也一直在憧憬重构,重构很绿色,重构很河蟹,重构令人很激动,重构可能让人死得很惨。

我在这里,就列举一下Refactorman的种种死法,以警后人:

一、一边重构,一边要完成日常任务……

1. 疲于奔命,过劳而死。

2. 吃领导给的鸭梨太大被噎死。

3. 满脑子都是代码,在上班路上不留神撞上了宝马。

4. 冷落了女友,受失恋打击跳楼而死。

5. 无暇社交,不懂人情世故,失意而死。

6. 为了说服领导和同事,心力交瘁而死。

二、重构过程中……

7. 被以前的混账代码气死。

8. 被混账代码搞得大脑程序溢出,彻底崩溃,神智错乱而死。

9. 终于醒悟,问题只是冰山一角,力有未逮,忧愤而死。

10. 泥足深陷,举步维艰,进退维谷被活活困死。

11. 自己昏天黑地,看其他同事却吊儿朗当,逍遥快活,心理不平衡致忧郁而死。

12. 重构过程中,踩中前任留下的地雷,被炸得体无完肤而死。

13. 一日偶遇以前代码的作者,怒不可遏,将其一通乱砍,再鞭尸三百,然后切腹而死。

三、经九九八十一难,大功告成……

14. 系统重构后性能提高了?漏洞消除了?对不起,领导们没兴趣,失落而死。

15. 系统重构后出现了新Bug,多半会小题大作,遭游街批斗而死。

16. 马上接到通知系统功能要大升级,吐血而死。

17. 同事依旧我行我素,继续在系统中倒垃圾代码,痛心疾首而死。

18. 重构将系统中的阴暗面曝光,被同事记恨,领导排挤,学屈原投江而死。

19. 过了不多久,发现系统又乱成了一团,比以前好不到哪儿去,悲愤下一头撞死。

20. 离职后偶遇前公司的新任维护者,被其乱刀砍死再鞭尸。

 

  各种死法中,最后一种,我们比窦娥还冤枉。所以强烈推荐大家还要练一门武功以防身。什么武功,就是:“心惊肉跳、杞人忧天、无中生有、力不从心、行尸走肉、庸人自扰、倒行逆施、废寝忘食、孤形只影、想入非非、呆若木鸡……”。这门传说中的黯然销魂掌,其中一招一式,正是我们最好的写照。

posted on 2010-12-14 09:25  HackerVirus  阅读(230)  评论(0编辑  收藏  举报