《C++编程规范——101条规则、准则与最佳实践》笔记006

来源:互联网 发布:itunes软件下载到哪里 编辑:程序博客网 时间:2024/04/30 05:07

C++编程规范

C++ coding standards

Author
Herb Sutter 《Exceptional C++ Style》 《Exceptional C++》 《More Exceptional C++》
Andrei Alexandrescu 《Modern C++ Design》 Loki

设计风格(适用面比一个特定的类或者函数更广的原则和实践)

复杂性啊,愚人对你视而不见,实干家受你所累。有些人避而远之。惟智者能够善加消除。 ——Alan Perlis


我知道,但是却又忘记了Hoare的至理名言:不成熟的优化是程序设计中的万恶之源。 ——Donald Knuth

简单和清晰之间的平衡、避免不成熟的优化、避免不成熟的劣化,不仅适用于函数编写的层次,而且适用于类和模块设计权衡的更大范围,适用于更深的应用程序架构决策。
依赖性管理是软件工程的一个基础,任意选择一个优秀的软件工程技术,无论选择哪一个,它都是在想尽办法减少依赖性。
  • 继承?是为了使所编写的代码使用不依赖于实际派生类的基类。
  • 尽量减少全局变量?是为了减少因可见范围太大的数据所产生的远距离依赖。
  • 抽象?是为了消除处理概念的代码和实现它们的代码之间的依赖。
  • 信息隐藏?是为了使客户代码不依赖实体的实现细节。
依赖性管理的一个相关问题还反映在避免使用共享状态中,反映在应用信息隐藏,以及其他之中。
最有价值:第6条——正确、简单和清晰第一。

第6条 正确、简单和清晰第一

摘要

软件简单为美(Keep It Simple Software,KISS):质量优于速度,简单优于复杂,清晰优于机巧,安全优于不安全。

讨论

示例

例1 不要使用不必要的或者小聪明式的操作符重载

毫无必要古怪的图形用户界面库:允许用户编写w+c;这样的语句在图形组件w上添加子控件c。
例2 应该使用变量命名,而不要使用临时变量,作为构造函数的参数

这能够避免可能的声明二义性。这还经常能使代码的意图更加清晰,从而更容易维护,而且通常也更安全。
0 0
原创粉丝点击