0. 说明 ---------------------------- :版本: 1.0.0 :原版: 本项目源自 `Google C++ 风格指南 `_ 结合 lumicare 自身开发习惯和开发环境所修改。 :主页: - ReadTheDocs 托管地址: `在线阅读最新版本 `_ - Gitee 托管地址: `lumicare guide `_ 0.1 初衷 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 不同的人由于编码经验和编码偏好相同,项目中同一个功能的实现代码可能千差万别。 往往在一个项目开发过程中,不同的人会负责不同的模块,如果每个人都很随意地按照自己的偏好编写自己部分的代码,不考虑其可阅读性和可维护性, 那么如果某天该模块的同学休假或者离职,对于其他接手维护的人来说,将是巨大的灾难。 并且让整个项目面临风险。 如果项目中代码风格统一,接手人员只需学习了解这一种风格即可触类旁通,剩下的只是产品逻辑; 如果项目的N个人N种风格,那么接手人员将学习N种代码风格后,再学习产品逻辑,增加了接手难度。 统一的代码风格有以下几个好处: - 增加代码的强壮性、可读性、易维护性。 - 减少开发人员编程所需的脑力工作。 - 在项目范围内统一代码风格。 - 通过人为和自动方式对软件应用质量标准。 - 使新的开发人员快速适应项目氛围。 - 支持项目资源的复用。 *风格*, 亦被称作可读性, 也就是指导 C++ 编程的约定。 使用术语 "风格" 有些用词不当, 因为这些习惯远不止源代码文件格式化这么简单。 使代码易于管理的方法之一是加强代码一致性。 让任何程序员都可以快速读懂你的代码这点非常重要。 编码规范包含如下内容 - 排版格式 - 注释风格 - 标识符命名 - 可读性 - 变量、结构 - 函数、过程、类 - 可测性 - 质量保证 - 代码编辑、编译,审查 保持统一编程风格并遵守约定意味着可以很容易根据 "模式匹配" 规则来推断各种标识符的含义。 创建通用, 必需的习惯用语和模式可以使代码更容易理解。 0.2 背景 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 公司开发主要用到 C/C++ 进行开发。本文档主要针对Qt和C++。 - C++ 有很多强大的特性, 但这种强大不可避免的导致它走向复杂,使代码更容易产生 bug, 难以阅读和维护。 - Qt 是一套跨平台C++框架,除了拥有完备的C++图形库和支持多种语言,同时也拥有一套完整的设计、开发工具。 C++ 是一门包含大量高级特性的庞大语言。本文档的目的是通过详细阐述 C++ 注意事项来驾驭其复杂性。 这些规则在保证代码易于管理的同时, 也能高效使用 C++ 的语言特性。 同时C++ 特性臃肿,某些情况下, 我们会限制甚至禁止使用某些特性。 这么做是为了保持代码清爽, 避免这些特性可能导致的各种问题。 文档中列举了这类特性, 并解释为什么这些特性被限制使用。而 Qt 包含多种工具和支持多个平台,本文档亦会阐述Qt使用的技巧或者说个人经验。 风格尽量遵从大多数开发者习惯,使用一些便于实施的特性和技巧。 撰写也尽量保持严谨但水平所限, bug 在所难免。 有任何意见或建议, 可直接在gitee上提交或修改。