`
阅读更多

    原文:jaybaz [MS] WebLog: Parting words for dear friends

    在临走之前,我乐于表达一些对于M$的软件开发的建议。


    清晰的代码价值连城

    M$的许多开发人员还没有明白,努力写出清晰易读的代码能带来多么巨大的价值。我曾经看到某个家伙在一个600行的函数中间又签入了200行代码。我觉得那个函数原本已经超长597行了!完全可以用Extract Method把代码段拆成小颗粒的代码段,然后用Extract Class来解决小函数过多的问题。坚持努力,重构的优化可以一直继续下去。


    OO不是过眼云烟

    在过去的5年中,M$为了让软件更安全,把他弄得非常复杂。保证安全是很复杂,但是没有理由让软件本身更加复杂。比如,C++代码中,传递缓冲区却不携带其长度的话,会造成无数的缓冲区溢出问题。然后,我们编写了工具来帮助你检测代码中传递缓冲区的地方,并确保在每个地方都同时传递了它的长度。

    可是,当你发现你自己到处在一起传递两个以上的参数,为什么不把他们放到一个class中呢?只从这里开始就好,多态、继承和封装可以以后再说。

    (嗨,Windows,我说的就是你!)


    用其他人的代码挺好

    据说,Visual Studio的代码中包含了十几种C++ String类的实现,其中的大部分都是把MFC的代码拿来刀劈斧砍一番而已。嗯,这些比把缓冲区传递来传递去确实有一些改进,只是……这些“库函数”的作者可都是拿着全职薪水在干活的呀!为什么不能用现成的STL和ATL呢??

    这不仅是只在C++中存在……在.Net Framework的早期实现中,对hash table的实现方式不可胜数。唉,家伙们,直接使用现成库不行么?


    用设计解决问题

    每次出现问题,都要回溯并且自问,“怎么做才能确保这个错误以后永不出现?”

    缓冲区溢出了?用一个buffer类来确保其正常运行。引用计数有问题?试试CComPrt。高速缓存被破坏了?删掉直接对外的处理,把它封装起来。

    在最近一次的C++项目里,我们是这样做的。最终我们发现,看起来,我们的C++代码很像C#。原因之一是,C#已经远离了C++中大部分冗杂的设计。


    最重要的:我们可以做到更好

  上面提到的是一些特定的细节,甚至可以被个别定位出来。那时,这篇blog也就过时了。不过,M$的开发人员还可以经常做一件事,把工作做到更好。每一天,就像这样问问自己:

            “如何确保这个问题永不再出现?”

            “如何减少Bug?”

            “有没有更简单的办法来修补Bug?”

            “有没有更简单的办法来快速响应变更?”

            “有没有更简单的办法来让我的程序运行更快?”

    我曾经管理过一个团队,这样做的相当好。组员大多数都是新手,刚刚离开大学。但是一年后他们个个都很棒。他们开发的特性更快、Bug更少、修补Bug更快、每次都可以顺利完成schedule。他们的表现远远地超过了那些由更有经验的成员组成的小组,后者用熟悉的方式编写代码、其中经常出现难以理解的问题。这很让我吃惊。


   PS:当我还在M$的时候,我希望我可以尝试解决这些问题,但是这太难了,我的尝试没有成功。这篇Blog可能是我最后一次机会为这件事做点什么了。现在,就看你的了。

 

分享到:
评论

相关推荐

    《二十四史》经典佳句.docx

    人之将死,其言也善"(《史记·滑稽列传》):临终之人的话语往往出于真心,具有警示意义。这也启示我们珍视人生最后时刻的智慧。 6. "浊其源而望其流,曲其形而欲其直,不行得也"(《汉书·刘般传》):事物的本质...

    常用的八字成语大全.docx

    19. **人之将死,其言也善**:人在临终前往往说出真心话,认为临终的告诫尤为可贵。 20. **上天无路,入地无门**:形容陷入绝境,无处可逃。 以上成语体现了中国传统文化中的智慧和价值观,学习这些成语有助于理解...

    【少儿综合素质训练】古文经典名句精选大全.doc

    人之将死,其言也善"——表达的是人在生命的最后时刻,会更加真诚地表达自己的情感和见解。 6. "人弃我取,人取我与"——《史记》中的这句话教导我们,要善于在别人看不上的事物中发现价值,同时也要懂得适时放弃。...

    江苏高考古诗文课外名句高频默写与易错字.doc

    人之将死,其言也善”揭示了人们在临终之际的真情流露,是对生命终极关怀的一种体现。 综上所述,江苏高考古诗文课外名句的高频默写与易错字涉及的知识点,涵盖了文化素养、教育理念、伦理道德、人生哲学、社会关系...

    《二十四史》中的30则经典名句.docx

    人之将死,其言也善”揭示了临终时人性的真实面貌。 6. “浊其源而望其流,曲其形而欲其直”阐述了事物的本质决定其表象,不能改变根本就无法改变结果。 7. “天知、地知、我知、子知,何谓无知?”强调了隐瞒事实的...

    常见的八字成语.docx

    41. 人之将死,其言也善:临终的话往往真实可信。 42. 一日不见,如隔三秋:思念之情,时间感强烈。 43. 衣来伸手,饭来张口:形容懒惰,依赖他人。 44. 严以律己,宽以待人:对自己严格,对别人宽容。 45. 天下兴亡...

    中小学生必背历朝历代名篇名句填空练习(共372句,附参考答案).docx

    38. "人之将死,其言也善"认为人在临终时会说出真话,出自《论语》。 39. "学而不厌,诲人不倦"是孔子的教育理念,出自《论语》。 40. "有则改之,无则加勉"鼓励自我反省和改进,出自《论语》。 41. "逝者如斯夫,...

    sql--武书纯.emmx

    sql--武书纯.emmx

Global site tag (gtag.js) - Google Analytics