自己以前写代码时,一个项目一个风格。单人开发的工作使得我并没有注意到代码规范性和可读性的问题。每当项目结束后,看到自己杂乱无章的代码,完全没有二次开发和重构的欲望。

写代码就应该像写诗一样优雅。 by:沃茨基硕德

由于是一个新的项目的重新起航。千里之堤,溃于蚁穴。我将代码规范作为我整个项目的前传,顺便也把我之前的陋习给改掉。通过在网上对于C++代码规范的搜索,我找到了Google开源项目风格指南[译文]。

参考这份指南,结合我个人的习惯,我也给自己的项目制定了一个标准。下面将各个部分进行定义和规范。(不会完全按照指南,只是为了我的项目代码看起来更统一)

头文件

  • 通常一个.cpp文件需要对应一个.h文件。(单元测试代码和包含main()函数的cpp文件除外。)
  • 如果.h文件声明了一个模板和内联函数,规定将函数实现写在头文件中。
  • 每个头文件必须使用#define保护,以防止多重编译
#ifndef HeadName
#define HeadName//...#endif //HeadName
  • 前置声明能不用则尽量不用。优先处理好头文件之间的关系,若不得不使用,则要注明依赖关系。
  • 内联函数:代码行数<10 才使用内联函数

命名

  • 作用域、类名、函数名用大写字母开头
namespace TurboEngine{class Time{public:int GetFps();public:static int ms_CalType;  //静态变量  ms_int    m_StartTime;     //成员变量  m_const  mk_DayInWays;    //常量命名  mk_}
}

注释

  • 使用// 或 /**/即可
  • 文件注释:加上版权
  • 类注释:
// <Description>
// Example:
//    xxxxxxxxx(可写可不写)

其他

  • 因为引擎中是分模块的,为了更方便今后整理自己的思绪,我希望自己能够对每一个模块用单独的注释文件进行注释。注释文档主要包括:

    • 描述
    • 文件列表
    • 其他说明
    • 第三方依赖
<Description>//...<FileList>//...<Others>//...<Reference>//...
  • 整理API文档工具

引擎之旅 前传:C++代码规范相关推荐

  1. JAE京东云引擎Git上传管理代码教程和京东云数据库导入导出管理

    文章目录 Git管理准备工作 Git工具上传代码 发布代码装程序 mywebsql管理 京东云引擎小结 JAE京东云引擎是京东推出的支持Java.Ruby.Python.PHP.Node.js多语言. ...

  2. ORAN专题系列-19:5G O-RAN FrontHaul前传接口M Plane互操作性测试IOT规范

    前言: 在<ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构>阐述了5G O-RAN FrontHaul前传接口互操作性测试规范IO ...

  3. checkstyle + gradle + git pre-commit 实现代码提交前对代码规范的检查

    我们的目的是想在代码commit之前去做这个检查,把不符合规范的代码标记出来,直到修改完成之后才允许提交.脚本涉及到几个重要的文件:1.pre-commit, 这个是git的一个hook文件,可以帮助 ...

  4. ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构

    前言: 前传接口(FrontHual)是传统的BBU与RU之间的接口,在O-RAN之前,前传接口虽然定义了物理连接的CPRI标准,但CPRI之上承载的M plane和S/C/U plane的IQ数据, ...

  5. java 刽子手图像代码_闲来的代码:无主之地前传 头像及皮肤包SE代码——刽子手威尔海姆...

    无主之地前传 头像及皮肤包SE代码--刽子手威尔海姆部分 找时间做了一下,虽然可能有前人做过. 使用须知 1.都是SE代码,粘贴就行,不过得需要前传的SE,2代的不行.至于怎么使用SE,去这里 htt ...

  6. html5魔塔编辑器安卓版,Mota: 纪元魔塔前传。童年魔塔记忆。使用手机编写的5000行代码...

    #Mota 程序说明: 纪元魔塔前传是一个由HTML5(Canvas + 原生JavaScript)开发的小游戏,所有素材均来自原版的元祖魔塔(魔塔50层) 这个游戏时跨平台的,任何支持HTML5的浏 ...

  7. ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... 快速导航 单片机菜鸟的博客快速索引(快速找到你 ...

  8. 百度工程师手把手教你实现代码规范检测工具

    01 引言 代码规范是软件开发领域经久不衰的话题.在前端领域中,说到代码规范,我们会很容易想到检查代码缩进.尾逗号以及分号等等,除此之外,代码规范还包括了针对特殊场景定制化的检查.JavaScript ...

  9. 学习阿里代码规范笔记

    阿里代码规范笔记 记录一下 关于命名 常量定义 代码格式 OOP规约 集合处理 并发处理 控制语句 注释规约 异常日志 单元测试 安全规约 数据库规范 索引规约 Sql语句 ORM映射 分层领域模型规 ...

最新文章

  1. jd-gui的下载和使用
  2. hadoop的mapReduce历史服务配置及查看
  3. 鸿蒙系统低端机推行,华为正在考虑少量推行搭载鸿蒙系统的中低端手机,有望年底推出!...
  4. Python 计算机视觉(七)—— OpevCV进行直方图统计
  5. Quantconnect
  6. 记-安装pillow
  7. ALAssetsLibrary获取相册列表
  8. Linked List Cycle
  9. 使用jmeter 上传文件
  10. 黑莓发布自动驾驶安全管家软件Jarvis
  11. 心理学系列:《乌合之众》读书笔记
  12. RocketMQ之消费者并发消费源码解析
  13. 2.1 ppt 用图形搞定 封面(2)
  14. PS透明婚纱抠图(超详细)
  15. 裂变红包码的制作_微信裂变红包
  16. 技术干货 | PACMOO:基于帕累托最优的公平性约束协同过滤算法
  17. html页面中文本框的光标控制
  18. mysql 章节作业题
  19. oracle flash_back oracle闪回技术详解,oracle flashback 闪回技术实例
  20. 6.C语言常用的控制语句有哪些,C语言重要知识点总结【6】:C语言9种控制语句(详解)...

热门文章

  1. ​每天十分钟| Get实用在线英语启蒙教育APP—叽里呱啦
  2. 【定位问题】基于matlab chan算法、fang算法、taylor算法求解目标定位问题【含Matlab源码 2135期】
  3. 麦当劳巨无霸汉堡合作超人气动漫《机动战士高达》
  4. Python上使用及安装tesseract
  5. 1.2字符类型及操作
  6. Uninstall Tool 破解手记
  7. 激光雷达相关技术方案介绍
  8. 一文读懂|什么是dToF激光雷达技术?
  9. easyui datagrid合并列中相同的单元格
  10. nginx 开机启动报错An error occurred.