让出Web开发和企业级开发领域后,C++集中于系统级开发,也就是一般应用软件的“硬核”部分。所以一个有趣的现象是,尽管C++的市场份额在下降,C++程序员的平均工资却在提高。
但C++的复杂性一直让人头疼。最近关于C,C++,D语言的大争论,国内外都引起强烈反响。和以往“编程语言口水仗”不同,不少经验丰富的程序员和架构师发表了自己的意见。
刘未鹏刚发布的这篇《学习C++:实践者的方法》值得推荐。学习C++容易钻到语言细节的牛角尖里出不来,相信很多人都有共鸣,而且身边的新人还在不断重复这种弯路。其实,对系统功能需求本身的理解和分析,比你用了几种惯用法和设计模式,重要得多。BLOG后半部分还给出了学习要点的列表,比较中肯。文中提到的Bjarne Stroustrup的回信,Andrei Alexandrescu的专访,云风的BLOG,都值得看一看。
BTW1:下班时fy大侠评价:“系统跑得很流畅”。这一阶段的优化工作干得很苦,结果也令人欣慰:内存占用降到了老版本的1/5,从 而避免了进程空间2G上溢崩溃的问题,速度也有所提高。改进效果在越大的数据上越明显。human库同时指定5、6种可变修饰,pFind不再那么吃力 了。
BTW2:近几个月的重构,“水面以下”的进展是以exception throw替代掉原有C风格的return false和GetLastError()。十几万代码,三十几个模块,逐步利用各种机会顺手重构,到今天算基本改完了。目前的异常和日志机制让我满意。 如果要列出用C++而不用C的最主要原因,我大概会选STL和异常处理。
BTW3:闲暇时玩玩D语言,编程的感觉很好。变化的正是C++那些让人别扭的历史包袱。
Pingback: joyfire 王乐珩 » 关于异常机制和编程style