我平时看别人代码,因为我人微言轻,所以不好说点什么,一般我都会态度温和地给出建议,除非是我特别好的朋友,我会直言不讳。
但是今天在我自己的频道,我很想把「代码规范」这件事情给说清楚。希望能给看到的朋友一点点提示吧。
全篇我就一个中心思想:
写代码是给人看的,为了自己和他人阅读和调试,请一定在写代码的时候,不要太随意。
全篇没有干货,只是我作为一个在编程领域的「小学教师」在对着空气「教导」,你写字要工整一样。
首先先说声对不起,我不是什么牛人,我没有资格评价他人,但我就是忍不住我想说,我在我自己的没什么人阅读的 CSDN 博客里说一说。
我一点一点写,希望能够整理出一些我看到的不好的现象。
在这里,我会遵守:
- 一定不会指名道姓,暴露别人隐私;
- 一定不会使用任何截图,宁可让读者觉得我在「无中生有」,也要表达我想说的意思;
- 就事论事,不针对个人;
- 错误示例代码,找到以后,我会尽力修饰,尽力做到连写这段代码的本人都看不出是他写的;
- 不会出现侮辱性的语言;
我可能会:
- 用一些强烈的语气表达我对这件事情的态度:很抱歉,我觉得写「规范」、「好看的」、「看起来都一样的」代码是程序员基本的职业素养,技术水平是一回事情,但是代码写得让他人难以阅读,就让人很不可接受。
前提:我只针对 Java 、Python 和 C++ 的语法,其它语言我不懂,不敢乱说。
第 1 种:if
、for
、while
后面只有一行语句的时候不加括号
这一点我简直是每次看到都想直接口吐芬芳。
错误示范 1:
Java 代码:
if (a == b) return res;
正确示范 1:
Java 代码:
if (a == b) {
return res;
}
我真的是有很多很多的话要说,写一个括号、再换行很难吗?别人要调试您这段代码还得帮您加上大括号。还有一种写法是这样的:
错误示范 2:
Java 代码:
for (int i = 0; i < len - 1; i++)
for (int j = i + 1; j < len; j++)
if (nums[j] < nums[minIndex])
minIndex = j;
swap(nums, i, minIndex);
我已经不止一次看到有人这样写,查不出原因,然后最后发现坑在没有加括号。然后来找我吐槽的。我能有啥办法啊,这种坑还不是自己埋下的?
所以到后来,跟我聊天的朋友,我一般都会语气非常温和地跟他说:建议您在 while
、if
、for
后面只有一行语句的时候,都给代码块加上大括号,如果习惯了这种写法,会给他人和自己调试代码造成一定不便,个人建议,仅供参考。
但实际上我的内心是这样的:
正确示范 2:
Java 代码:
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (nums[j] < nums[minIndex]) {
minIndex = j;
}
}
swap(nums, i, minIndex);
}
我快不行了。才写第一条我就吐血不止。
我觉得我该休息一下,我还有正事要做。
(未完待续)