1, 测试很重要.
接手一堆没有测试的代码,感觉有点害怕. 现在每当拿到一个代码,喜欢干的事情就是先跑他的单元测试. 单元测试全部通过,说明什么呢? 我认为至少说明基本想要完成的功能是没有问题的.
有了测试代码,其实都可以不需要有太详细的文档了, 合适的命名,加上恰当范围的测试覆盖如果你想对代码有个基本认识应该很简单 而且你对你仅有的认识会比较有信心,写代码的人自己都在怎么用这样一些接口,自己也可以沿袭这个风格进行.
同样的,如果你要把一部分代码给别人,怎么告诉他你代码当前的状态呢?
如果你的代码有测试,那么你将会很自信.
现在我的回答会是: 我的测试覆盖90%,如果文档不能满足你的需求,麻烦你看我的测试,如果你发现了测试没有测的好功能,恭喜你这是个suprise!
2, 设计模式无处不再.
手上有本设计模式的书,一遍一遍的看,每个模式每次看都有不同的认识. 其实代码中真的已经用了很多和模式对等的东西,只是有了这么一个理论摆在这里感觉真的很方便和别人交流. 对于再次利用总结出来的牛逼设计模式,也比较能给自己信心.
3, 期待c++0x早日进入产品代码
当前产品代码中还是有大量的用到boost::function, bind, shared_ptr等,毕竟不太需要编译器对新语言的特别支持. 期待完全支持c++0x的编译器出来,期待以后产品代码中都用这些东西.现在让自己开始熟悉这些.
今天和朋友讨论了一个问题, 感觉很有意思: 什么样的特性应该或者可以被加入新的标准中?
我的一个认识就是:
一旦一个语言已经标准化,就意味着这个语言的核心集合已经确定,并且在以后的发展会考虑强烈的需求向后兼容. 所以新的标准不会加入太多的东西,而且加入的都是一些对广大开发者共同的需求,这些新加的特性要么改进语言的用法,要么适应当前业界的一个强烈需求. 而且不回break以前的代码. 比如auto, lambda, concurency. 核心语言要足够的简单(当然c++当前已经很不简单),一些更高级的用法用库来实现.比如STL, boost