- 浏览: 37137 次
最新评论
原文: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可能是我最后一次机会为这件事做点什么了。现在,就看你的了。
发表评论
-
入职第一天
2004-07-12 20:20 552很喧闹的一天新人训。当然,可以说是激情四射,或者说是嘈杂无聊。 ... -
迎接部门训
2004-07-13 18:07 509今天开始迎接部门的专业训了,C#、SQL Server、数据库 ... -
生活的颜色
2004-07-14 18:57 575一个诚实的裁判就这样慷慨赴义了,很多很多黑暗中的裁判们却还好端 ... -
历史的沉思
2004-07-16 12:43 639很久以前的一篇文章, ... -
选择的未来
2004-07-17 15:11 490先提一个问题:做一个技术员,技术能力重要还是业务知识重要?再提 ... -
统一的困惑
2004-07-19 20:45 531RUP(Rational统一过程)的基本开发方式是迭代。需求迭 ... -
开发的效率
2004-07-21 17:44 528面对多人协同开发的分层系统,有两种开发方式:其一、一人负责一到 ... -
模型或模式
2004-07-22 23:27 644不论是吵吵嚷嚷的软件工程、XP建模,还是死灰复燃的MDA、一心 ... -
对象的效率
2004-07-28 21:22 536面向对象带来方便的同时亦带来很多的问题。类的继承在扩展的同时也 ... -
泪写的文章
2004-07-29 20:20 512今天我又哭了。一个月前,我还觉得哭于我是很遥远的事情。甚至,我 ... -
期待的精彩
2004-07-31 11:08 533好久好久没有看到国足这么酣畅的胜利了,好久好久没有体会到看球的 ... -
转载的文章
2004-08-01 10:50 501今天转载一篇吧,记录一段可笑的过往。 别了,Dr.Dobb's ... -
TDD 心得
2004-08-03 16:19 787一直觉得,近年来,真正有意义的技术或者思想只有两个:Refac ... -
近期的任务
2004-08-06 12:54 5771、Test Driven Development2、Java ... -
上海印象一
2004-08-09 22:28 566车一进入上海,扑面而来的就是一片一片的高楼,黑压压地便压了过来 ... -
上海印象二
2004-08-10 21:19 521上海当然是天堂,但也是仅对一部分人一部分地区。对大多数人大部分 ... -
转载的文章
2004-08-13 23:38 452O/R Mapping中的继承~ http://www.cnb ... -
生日的祝福
2004-08-15 10:49 709今天是agate的生日。尽管这句话已经被用得很俗,不过我还是想 ... -
等爱的狐狸
2004-08-27 18:16 566“对我来说,你还只是一个小男孩,就像其他千万个小男孩一样。我不 ... -
飞翔的寓言
2004-08-30 20:58 513我才发现梦想与现实间的差别逆着风让自己体验每一个感觉就像是寓言 ...
相关推荐
人之将死,其言也善"(《史记·滑稽列传》):临终之人的话语往往出于真心,具有警示意义。这也启示我们珍视人生最后时刻的智慧。 6. "浊其源而望其流,曲其形而欲其直,不行得也"(《汉书·刘般传》):事物的本质...
19. **人之将死,其言也善**:人在临终前往往说出真心话,认为临终的告诫尤为可贵。 20. **上天无路,入地无门**:形容陷入绝境,无处可逃。 以上成语体现了中国传统文化中的智慧和价值观,学习这些成语有助于理解...
人之将死,其言也善"——表达的是人在生命的最后时刻,会更加真诚地表达自己的情感和见解。 6. "人弃我取,人取我与"——《史记》中的这句话教导我们,要善于在别人看不上的事物中发现价值,同时也要懂得适时放弃。...
人之将死,其言也善”揭示了人们在临终之际的真情流露,是对生命终极关怀的一种体现。 综上所述,江苏高考古诗文课外名句的高频默写与易错字涉及的知识点,涵盖了文化素养、教育理念、伦理道德、人生哲学、社会关系...
人之将死,其言也善”揭示了临终时人性的真实面貌。 6. “浊其源而望其流,曲其形而欲其直”阐述了事物的本质决定其表象,不能改变根本就无法改变结果。 7. “天知、地知、我知、子知,何谓无知?”强调了隐瞒事实的...
41. 人之将死,其言也善:临终的话往往真实可信。 42. 一日不见,如隔三秋:思念之情,时间感强烈。 43. 衣来伸手,饭来张口:形容懒惰,依赖他人。 44. 严以律己,宽以待人:对自己严格,对别人宽容。 45. 天下兴亡...
38. "人之将死,其言也善"认为人在临终时会说出真话,出自《论语》。 39. "学而不厌,诲人不倦"是孔子的教育理念,出自《论语》。 40. "有则改之,无则加勉"鼓励自我反省和改进,出自《论语》。 41. "逝者如斯夫,...
sql--武书纯.emmx