一方面在企业级系统开发(数据密集、业务规则复杂多变)中,C++已经基本被Java和C#等淘汰出局,另一方面在系统编程和嵌入式等更接近硬件的领域,又遭到C的强烈狙击。
如果在你的应用中,有两个需求同时发生,你就必须要考虑采用C++,第一是对性能的要求要高,还有一个是有很强的抽象和建模能力。
--
专访Andrei Alexandrescu:对C++要有信心 保持乐观好的C++代码就是高效的、安全的、清晰的代码。
第一准则:将C++用在合适的地方,C++最适合用来开发“高性能的复杂组件”。
第二准则:选择了C++,就等于选择了C++的不安全性,请适应这一点,不要试图把C++变成另一个Java。
第三准则:按过程思考问题、按对象写代码,抽象化和模块化(接口)放在首位,其次才是复用性。
(保证代码安全的首要因素是抽象化、模块化,其次是设计规范性和代码规范性,最后才是智能指针等语言工具)
第四准则:按设计思路变更代码,不要按代码改代码。
第五准则:按编程范型做设计、按模式和规范书写代码。(范型是在充分理解问题域的基础上,对问题域作出合理的约束)
第五准则:复用性没有想象中重要,重复的理由之一是复杂,不要为了消除重复,让系统变得更复杂、更难以理解。
第六准则:保持代码可靠的办法是时间,好的代码是累积出来的,请用好代码版本管理工具。
第七准则:阅读、复查代码是发现bug的最有效的方法,请在单元测试之前、之后各做一次。
第八准则:请编写单元测试,它是发现常规bug的最可靠、最廉价的方法。
第九准则:请慎重使用智能指针、异常、模板,它们在解决问题的同时往往也引入了复杂性,必须对此作出权衡。
第十准则:请使用断言、日志、转储、调试工具,它们是解决bug的最后防线。
第十一准则:请在不影响性能的前提下,尽量使用C++标准库中的字符串、流、容器、算法等,编写安全、可靠的代码。
第十二准则:尽量使用优秀的开源项目组件库。