严谨的代码风格能够给人良好的印象和更佳的易读性,在实际的开发中,经常会遇到这样一种情况,明明是自己的代码,过了一段时间就完全不认识了。所以,对于初学者来说,必须要建立良好的编程习惯,这其中就包括代码风格,例如,首行缩进、关键词之后加空格、驼峰命名法等等,由谷歌开源的项目styleguide提供了包括C++、C#、Java、Python等数10种编程语言的代码风格,大家参考模仿就能轻松写出高质量的代码。
示例:
- C++ 风格指南
头文件
所有头文件都应该有#define保护以防止多次包含,为了保证唯一性,它们应该基于项目源代码树中的完整路径
#ifndef FOO_BAR_BAZ_H_#define FOO_BAR_BAZ_H_...#endif // FOO_BAR_BAZ_H_
命名规则
使用描述对象目的或意图的名称
class MyClass {public:int CountFooErrors(const std::vector<Foo>& foos) {int n = 0; // 给定有限的范围和上下文for (const auto& foo : foos) {...++n;}return n;}void DoSomethingImportant() {std::string fqdn = ...; // 众所周知的完全限定域名的缩写}private:const int kMaxAllowedConnections = ...; // 在上下文中明确含义};
函数声明和定义
返回类型与函数名在同一行,参数尽量在同一行
ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) {DoSomething();...}
参数太多可以换行
ReturnType LongClassName::ReallyReallyReallyLongFunctionName( Type par_name1, // 4 个空格缩进 Type par_name2, Type par_name3) { DoSomething(); // 2 个空格缩进...}
- Java 风格指南
包名
包名都是小写的,连续的单词简单地连接在一起(没有下划线)
正确:com.example.deepspace错误:com.example.deepSpace或 com.example.deep_space
类名
类名用大驼峰命名法,通常是名词或名词短语
Character或 ImmutableList
测试类的命名以它们正在测试的类的名称开头
HashTest或 HashIntegrationTest
方法名
方法名用小驼峰命名法,通常是动词或动词短语
sendMessage或 stop
- JavaScript风格指南
局部变量声明
局部变量通常不会在其包含块或类块构造的开始处声明;
每个局部变量声明只声明一个变量,不使用let a = 1, b = 2;此类的声明
属性注释
必须记录属性类型,如果代码提供了足够的说明文档,则可以省略私有属性的描述
/** My class. */class MyClass {/** @param {string=} someString */constructor(someString = 'default string') {/** @private @const {string} */this.someString_ = someString;}}
其他: