「有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。」——Vinta

前言

非常感谢墨墨科技能给大二的我一个实习机会,是我的第一份工作呢。

一开始上手的是一份 NodeJS 写成的工程,由于一开始看不懂,拖的时间也比较长,更改代码的时候也只能复制粘贴原来的代码,然后在上面更改。Code Review 的时候被吐槽了一下我的代码习惯。主要是缩进问题,大括号问题和命名风格问题。

好的代码风格不仅仅是美观,同时也是为了软件的维护性与拓展性。你当然可以不遵守代码风格,这就好比是邋遢一点,别人也不一定能看出来呢。

一致性原则

你的代码应该与你所处的环境保持一致,如果你的公司采用 四格空格 缩进,显然你用其他方式都不太好。但是,如果你愿意,你私下的代码可以采用你喜欢的方式,甚至是 七格空格 缩进都行。

缩进问题

缩进应该采用空格的方式进行。这在很多 IDE 上都提供了将 Tab 转换为 space 的选项。

首先 Tab 缩进多少格,完全是由操作系统或者编辑器决定的。不同情况下看到的情况不同。

其次是根据代码缩进决定 scope 的语言,有时会拒绝你的这个 Tab。

之前为了图方便,Vim 的 八格缩进空格缩进 结合,到了别人的电脑上,就成了不注意缩进了。

Google c++ Style Guide 给出的建议是 两格缩进。我在翻阅阿里云的样例程序的时候,也注意到是 两格缩进,这多半也会是他们公司的规范吧。

大括号问题

If-statement 后面无论是不是一句话,都应该加上大括号。

这样做是为了减少隐藏的 Bug。

同样 While-statement 也应该后面跟上大括号。

命名风格

我注意到我司是采用类似的驼峰命名法(最前面的小写并不代表类型)。所以我一开始,首字母就大写了,然后被提出批评了。首字母大写往往是给类名使用的,普通变量不应该有。

在大小写不敏感的情况下,应该采用下划线分离单词。

然后就是变量名没意义,我上手一个 loop 就开始 int i 这种操作了,被狠狠批评:“不说下次读了,这次我都没看懂。”确实是很不好的习惯呢。

留白问题

看到中文文案排版,提到了留白的问题,我回去检查了一下之前的文章,嗯,没有一篇是遵守的。(手改花了好久)

之前发现在 Word 下写中英文的时候,之间会出现小小的留白,然后感叹了一下 Word 的细节还是很不错的,如果不是麻烦的话,Word 也是可以排版出很漂亮的格式的。

留白就是在中英文穿插的时候,在中文与英文之间,以人工空格的方式隔开,来达到排版上的美观。

代码规范参考

以下列出了一些非常优秀的代码规范参考,在空闲之余,我也会将下面的内容慢慢补充到上面。

Google C++ Style Guide

中文文案排版指北

與大家共勉之。


上山不易,披荆斩棘才能善始;下岭更难,临渊履薄方可令终