讨论/技术交流/想和大家聊一聊 “代码规范”/
想和大家聊一聊 “代码规范”

我个人注意到“编码规范”这件事情,起源于 2017 年初阿里巴巴推出的《阿里巴巴 Java 开发手册》,因为我也长期受到他人包括自己曾经所写的不规范的代码困扰,直到现在我都一直关注着这份编码规范的迭代和更新,现在已经出了“华山版”,还有 p3c 插件。

我个人对于“编码规范”这件事情有时候是比较“偏执”,甚至是“令人发指”的地步,有些时候,帮助别人改代码,必须要把别人的代码放到自己的 IDE 工具里,调整一下格式(用自动格式化功能),我使用的 IDE 都是 JetBrains 公司的,Intellij IDEA、PyCharm、CLion。然后我才看得下去。就是对缩进和空格这件事情特别在意,不知道有没有和我一样的“神经病”呢,哈哈哈。

下面例举几个例子:

1、【强制】在 if/else/for/while/do 语句中必须使用大括号。

说明:即使只有一行代码,避免使用下面的形式:if (condition) statements

这一点在《阿里巴巴 Java 开发手册》和谷歌的 Google Java Style Guide 中都有提及,我个人觉得这是“天经地义”的事情:

if (carry == 1) {
    stack.add(1);
}

这个样子看起来很舒服,并且语义很清晰,stack.add(1) 这一行代码就只属于满足 carry == 1 这个条件下的逻辑。我在知乎上看到曾经有人因为加不加大括号而导致离职的事情,也有人说不加大括号和换行导致的惨痛教训也不少了。

2、【强制】任何二目、三目运算符的左右两边都需要加一个空格。

说明:运算符包括赋值运算符 =、逻辑运算符 &&、加减乘除符号等。

这一点我在力扣上面看到的代码有很大一部分都没有做到这一点,我个人说不清楚这一点的必要性,只是觉得这样写很好看,这一点作为“强制”要求我认为也是非常合理的。

包括我自己在写文章、题解的时候,都会注意字母、数字的左右两边都需要加上一个空格,这一点在力扣官方发布的文章 「力扣编辑器」使用说明 中的 「中文文案排版指北」也有提及。

我就先开一个头,因为以上两点是我经常看到的代码不规范的现象,所以很想和大家讨论一下,我个人认为写好代码的前提是“代码规范”,欢迎大家给出意见和建议。

我一直觉得别扭的地方在于大括号第一个括号的的位置为什么不像Python那样写?
就是左花括号 { 前换行

if (carry == 1) 
{
    stack.add(1);
}

这样写多整齐好看。还方便找函数体。
PS:是我记错了,应该是C语言有大括号前换行。

2
展开全部 5 讨论