C++编程规范--------设计风格

 

继承 是为了所编写的代码使用不依赖于实际派生类的基类。

尽量减少全局变量 是为了减少因可见范围太大的数据所产生的远距离依赖。

抽象 是为了消除处理概念的代码和实现它们的代码之间的依赖。

信息隐藏 是为了使客户代码不依赖实体的实现细节。

 

第5条一个实体应该只有一个紧凑的职责

一次只解决一个问题:只给一个实体(变量、类、函数、名字空间、模块和库)赋予一个定义良好的职责。随着实体变大,其职责范围自然也会扩大,但是职责不应该发散。

 

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

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

       程序必须为阅读它的人而编写,只是顺便用于机器执行。

      编写程序应该以人为本,计算机第二。

第7条

编程中应该知道何时何如何考虑可伸缩性

第8条不要进行不成熟的优化

拉丁谚语云,快马无需鞭策:不成熟优化的诱惑非常大,而它的无效性也同样严重。优化的第一原则就是:不要优化。优化的第二原则(仅适用于专家)是:还是不要优化。再三测试,而后优化。

                           不成熟的优化是万恶之源。---------------Donald Knuth

不成熟的优化定位为这样的行为:以性能为名,使设计或代码更加复杂,从而导致可读性更差,但是并没有经过验证的性能需求作为正当理由,因此本质上对程序没有真正的好处。

                           让一个正确的程序更快速,比让一个快速的程序正确,要容易得太多、太多。

默认时,不要把注意力集中在如何使代码更快上;首先关注的应该是使代码尽可能地清晰和易读。清晰的代码更容易正确编写,更容易理解,更容易重构------当然也更容易优化。使事情复杂的行为,包括优化,总是以后再进行的-------而且只在必要的时候进行。

        一个常犯的错误就是编写新代码时着迷于进行过度优化(而且充满自信),却牺牲了代码的可理解性。这常常会产生大杂烩代码,这种代码即使开始时是正确的,也非常难以阅读和修改。

        通过引用传递,优先调用前缀形式的++和--,和使用很自然地从指尖流出的惯用法,都不属于不成熟的优化。

第9条不要进行不成熟的劣化

不成熟的劣化,指的就是编写如下这些没有必要的、可能比较低效的程序。

        在可以通过引用传递的时候,却定义了通过值传递的参数。

        在使用前缀++操作符很合适的场合,却使用后缀版本。

       在构造函数中使用赋值操作而不是初始化列表。

构造既清晰又有效的程序有两种重要的方式:使用抽象和库。

第10条尽量减少全局和共享数据

共享会导致冲突:避免共享数据,尤其是全局数据。共享数据会增加耦合度,从而降低可维护性,通常还会降低性能。

为“无共享”而奋斗吧,用通信方式(比如消息队列)代替数据共享。

应该尽量降低类之间的耦合,尽量减少交互。

第11条隐藏信息

不要泄密:不要公开提供抽象的实体的内部信息。

为了尽量减少操作抽象的调用代码和抽象的实体之间的依赖性,必须隐藏实现内部的数据。

绝对不要将类的数据成员设为public,或者公开指向它们的指针或句柄而使其公开,这是一个很常见的信息隐藏的例子,但是它同样适用于更大的实体比如程序库----程序库同样不能暴露内部信息。

第12条懂得何时何如何进行并发性编程

第13条确保资源为对象所拥有。使用显示的RAIL和智能指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值