0. 前言
不要拘泥与小节 ,这句话被认为是C和C++开发的第0条原则,它要告诉我们每一个开发人员一个道理:只规定需要规定的事情
任何一个软件开发人员都要有与时俱进的精神,一定不要有一种我干了几年,我的经验就是对了的想法。工具在变化,甚至代码底层都在优化,没有什么经验能保证永远是对的,对于一家公司来说,只有最高效的才是对的。
1. 我们要规范什么
代码的规范是为了什么?无非两点:第一,一定程度提高代码的正确率,大佬们将容易出错的地方都约束了写法或者直接限定不能使用,防止小白进坑; 第二,提高代码的可阅读性,保证了代码具备可交接的可能性,防止你跑路了,没人能看懂你的代码。
2. 应该统一的东西
2.1 缩进和长度
不要统一要缩进多少,没有工程师能时刻记住,而且当前基于IDE 的开发,缩进基本能控制在一个比较美观的程度,只要告诉工程师通过缩进来体现他的代码结构即可;
不要限制具体的长度,例如一行代码一定不能超过多少个字符,一个变量长度不能大于多少个字符。应该告诉工程师,代码长度应该是便于阅读且美观的,变量应该用统一的缩写规则,甚至可以提供一套缩写规范查找的工具。
2.2 命名规范
命名规范就是要让和你一起工作的人一眼过去都能差不多知道你在说什么,没有完全统一的C++命名规范,完全是大家习惯的统一。这里可以给出一点建议:
- 类、函数、结构体、枚举的名称可以使用大驼峰法命名: 例如 class WhiteHorse, void TrackIsuue()
- 变量名可以用小驼峰法命名: int numStudent
- 宏定义永远用全大写字母: define PI 3.14
- 私有成员变量加下划线: likeThis_
命名规范是一种统一,不是每家公司都要这么干,甚至一家公司用C和C++可能用两种规范,这都是没问题的,原则是为了让整个项目效率提升,而不是为了让大家学怎么写代码。
3. 没必要去扣的细节
3.1 函数体的那个大括号应该怎么放
放弃吧,有的人就是喜欢google的写法,有的人就是喜欢linux写法,影响大家阅读了么?大家都能理解的东西就没必要区约束了,没有必要为了这点统一浪费大家半小时讨论,在开会的每一个人时薪都不便宜,老板知道你们在聊这个么?
3.2 单入口 单出口
我记得好像是C语言的规范吧,要求函数只能是一个return。建议放弃吧,就像一开始说的,时代变了,你应该是区约束如何处理多return,而不是限制代码的灵活性。