zoukankan      html  css  js  c++  java
  • 努力提高代码的质量

    工资翻倍的秘诀--

    看了园子中的一篇奇文, 《重构者的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. 离职后偶遇前公司的新任维护者,被其乱刀砍死再鞭尸。

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

  • 相关阅读:
    char*”类型的值不能用于初始化“LPTSTR , Const char*”类型的值不能用于初始化“LPCTSTR
    LPCTSTR和LPTSTR和char *
    C++ char*,const char*,string的相互转换(转)
    vs2017 开发 C++ 操作mysql的动态库
    VS2017 创建C++Dll动态库(二)
    VS2017中托管C++程序调用托管C++生成的动态库,程序无法调试的问题(转)
    win10 MySQLroot 远程连接
    c++中c_str()的用法详解(转)
    【605】Python的开发环境相关 (不同版本python、pip)
    【604】Python class __dict__.update的使用
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1905212.html
Copyright © 2011-2022 走看看