乱谈C++

 总结,写成文档,再拿来分享和讨论, 是我在做华为外包最大的收获之一。

       有一天,和朋友乱谈品酒师:品酒师如何不会因为个人的品味而影响自己对酒质做出客观,公正的评值。与品酒师相反,程序员大都数时候就像教徒一样虔诚和狂热。他们固守着自己或者某人的观点,拒绝接受新的语言或者方法,过度自信或者过度不自信,过份追求技术本身而忘记了技术的目的。等等如此。现实中,有人害怕微软的串口通讯组件有太多的BUG,也有人相信如果自己来重写C++标准库,会更简单高效,也有人为了一个循环语句大作文章而忽略了整个程序的架构设计。

       一个 重口味的程序员,永远不会成为一个品代码的大师。

        于是,把自己的一些想法拿出来晒一晒,只求进步吧。

        1. 对程序影响最大的,在于架构设计和关键算法的实现。 20%的代码,花费了80%的资源,不要进行不成熟的优化,思考再三之后,再优化。测试,严格的测试,找出程序的性能所在,再优化。否则,你的优化可能只是无用功,甚至会引入了新的性能问题和BUG!最便宜,最简单,最可靠的程序只存在于天堂。

        2. 结合项目需求,进度按排,团队状态,选择最佳的技术方案。一个小小的纸牌游戏,你非得用什么最流行的ERLANG去写,或者想学3D网游一样整出:日志服务器,网关服务器,登陆服务器,缓存服务等一大堆复杂无比的架构设计。大公司还好,小公司,可能还没等你开发完,公司就挂了。有时候程序的表现力太强,本来简单的事情,非得写出几千行带个N个设计模式的代码才甘心,这也是项目开发中的大敌。

        3. 用断言来指出你的逻辑错误。高质量的ASSERT能帮助你发现很多程序的逻辑错误。没有人反对空指针检测的必要的性,但很多的时候,你的代码逻辑就能保证你要访问的指针不会是空指针。如果有人说他结婚了,但却说不出老婆的名字,这不是很可笑的问题吗?过度的空指针检测还会导至另一个问题:BUG的抗药性。因为有了空指针的检测,可能原本有错误的代码还在正常地运行着,等到你发现这个错误的时候,真正的错误原因可能离你很远了。

         4. 对技术保持足够的敏感度,但不能因为技术而技术。不要告诉我,你写C++那么多年了,也不关心C++0x是什么玩意,或者你是做互联网产品的,却不知道NOSQL。新技术太多了,可能绝大部份技术对你现在的工作没有任何帮助,但最重要的是:如果有可用的技术,你能发现并且应用到项目中来改进现有的产品。我来公司面试之前,不知道MEMCACHED,但看门前的招辑信息上写有,回家后,第一件事就是百度MEMCACHED

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值