Skip to content

编码建议

一些编码建议是在你使用任何语言时都最好遵守的,或者是作为编码人员所需要了解的。

命名

规范命名

至少在同一个项目中,拥有一个在项目级别统一的规范命名风格时很有必要的。在此基础上,不同的语言可能会有不同的建议,但需要避免出现不同风格的命名混用的情况 ,除非这个项目已经被很多不同的命名风格污染了,那就破罐破摔吧

命名理念

很多人觉得命名是一件并不重要的事情,在代码中直接abc起手,在写小玩具比如写一个只用几次的脚本,或者做一个十分的编程题的时候感觉良好,等过了两个小时再回来看就完全糊涂了。

命名不是信口捏来的事情,例如给变量命名,将用户名变量命名为username,是远比写成a要清晰的。我们通常仅在短暂出现、含义清晰的过程变量中使用这种随意的命名方式,比如循环计数i,或是一些语言约定了不被使用的变量写作_,等。

命名风格

一般来说,常用的命名风格是:

  • simple_variable - 全小写,中间使用下划线分隔不同单词,可以用做普通变量;
  • simpleFunction - 驼峰命名法的一种,首字母小写,往后的单词首字母大写,单词之间不分隔,可以用做函数名、方法名、对象名;
  • SimpleClass - 驼峰命名法的一种,所有单词首字母大写,单词之间不分隔,可以用做类型名;
  • SIMPLE_CONST - 普遍用作常量命名。

不同时候应当采用不同的命名风格。以 Java 为例,一般来说类名应当用SimpleClass,其他命名应当用simpleFunction;在大多数语言中,常量(代码运行时不会改变的东西)应当用SIMPLE_CONST来命名……你会慢慢了解的。

文档

非常推荐在编写代码的同时配套注释,以及在代码量较大、逻辑复杂或需要合作时配套编写文档。

文档可以不必用英文写,用你最熟悉的中文即可,除非你的合作对象的母语不是中文,或者除非你的代码面相的群体不是中文使用者。

提问

为什么不建议中文命名?

对于「中文命名」,似乎有两种主流的意见。

对于推崇在源代码文件中直接使用汉字,写成一种很新的代码,比如数据库对象.用户名为(用户名).密码为(密码).地址为(地址).尝试次数为(尝试次数).连接()这样的流派,曾经的我可能还会尝试思考这样的利弊,例如编写时的输入法切换、开发和运行环境的UTF-8支持……但正如一些人所说的,如果你能确保这样写没有后果,或者你能承担一切后果,那就随你高兴吧~

对于推崇用汉语拼音替代英语进行命名的话,完全反对,除非你能认清每一个change到底是改变还是嫦娥,每一个cache到底是缓存还是擦车,甚至是gysgbs是不是公因数公倍数……不过嘛,如果你能确保这样写没有后果,或者你能承担一切后果,那就随你高兴吧~

不同语言怎么长得这么像?

事实上,参照相似的需求设计出来的编程语言,具有一定的相似程度是完全合理且正常的,无需大惊小怪。

三目运算符,一行完成条件判断与赋值;面向对象,继承构造与封装……

所以,总有人说学完一门语言之后,接着上手其他语言就会变得比较容易,这也是有道理的。

贡献者

页面历史