网站大量收购闲置独家精品文档,联系QQ:2885784924

分布式内存数据库﹒morpheus﹒c代码风格.docx

分布式内存数据库﹒morpheus﹒c代码风格.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式内存数据库﹒morpheus﹒c代码风格

Entity Grid C++开发组代码风格 Owner/Author:Vincent Zhang(张斌)Improvement:ComponentEnity GridSub-component:Entity Grid DOCPROPERTY Component NameDocInformation:Component NameRelease/Milestone:StatusDraft简介 正确使用C++,可以同时获得在开发效率和执行效率上的效益。本文档规定一些编码风格和语言用法上的约束,目的是保证小组内C++代码清晰、可读并且非常高效。本文档基于 HYPERLINK /svn/trunk/cppguide.xml google coding style,不同处在于本文档对C++的使用限制更少,并且增加了C++11的特性描述,来提高开发效率和代码执行效率。通常,本文档的条目可以在 HYPERLINK /svn/trunk/cppguide.xml google coding style中获得更多参考信息。 一般问题 头文件 是否正确使用头文件,会极大地影响到代码的可读性,生成的代码规模和执行性能。一般来说,所有组件都应该尽量以代码库的思维来设计,并且尽量避免.cpp文件。这种做法有以下好处:避免动态链接,组件可以独立开发、测试和维护,组件重用性高。 例子:Entity Grid中的Storage Layer是一个可独立测试的通用组件,不依赖于Entity Grid中任何其他部分,可以用于其他项目。 头文件使用.h后缀。 #define哨位 所有头文件必须使用#define哨位来避免重复包含。哨位符号格式如下:MODULE_NAME_FILE_H_ 最小包含原则 不包含不需要的头文件。在可能的情况下,使用一个前置声明来代替头文件包含。简单地说,如果一个头文件中没有使用到一个类的成员,那么这个头文件中只需要这个类的前置声明就足够了。 inline函数 10行以上的函数不允许声明为inline。仅当一个函数在10行以下的时候考虑使用inline。Inline的意思是:编译器会在调用点直接插入函数的内容,从而避免了在运行时一次函数调用的开销。这将提高执行效率,但会增大代码尺寸。注意:1)在类声明之中的成员函数将自动声明为内联函数2) inline关键词只能和函数实现放到一起。譬如: class memory_block { void * _data; size_t _size; public: void* address() const; size_t* size() const { return _size;} }; inline void * memory_block:: address() const { return _data ? _data-data : 0;} 例1:class memory_block .impl.h文件 鼓励一个类在一个单独的头文件中实现。如果出于代码整洁的考虑需要将类的定义和实现分离,有两个选择: 紧随类声明之后,实现该类(参考例1的memory_block::address实现) 将类实现放到一个.impl.h文件中,并在类声明结束后包含该文件 函数参数的顺序 设计函数参数的时候,将输入参数放到前面,输出参数放到后面。通常,输入参数要么是值类型如int,要么是const?reference类型。避免在函数参数中使用指针。 头文件声明顺序 C系统文件,如cstring, linux/types.h C++系统文件,如fstring 其他库.h文件,如boost/property_tree/property_tree.hpp 本项目?.h文件 作用域(Scoping) Namespace 使用namespace来组织模块,在需要时使用namespace来掩藏实现 将尽可能少的名字暴露给外部,不引入不需要的名字 鼓励在实现文件中使用unnamed namespace来掩藏实现细节 一个模块不应该扩展其他模块的名字空间,譬如程序中不应该将任何类放到std名字空间下 不允许使用using namespace xxx,相反,用到什么名字就声明什么名字:using std::string; using boost::property_tree::property::tree; 鼓励使用名字空间+名字:std::string name; 允许使用别名:namespace sto=mevo::storage; 全局变量和静态变量 不允许全局变量。全局变量意味着

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档