前言
本文内容主要为笔者从事开发工作以来在编码习惯上的一些总结,难免有主观性。本文更想表达的是代码规范的重要性,代码规范理应得到我们的重视;特别是刚入行的朋友,因为编码习惯大多数是刚入行那段时间养成的,而习惯一旦养成,到后面再去改就困难许多了。
概述
所谓无规矩不成方圆,无规范不能协作;现代软件架构都需要协同开发完成,高效协作即降低协同成本,提升沟通效率;适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率。
良好的代码规范带来的好处
- 可以促进团队合作
- 可以减少bug处理
- 可以降低维护成本
- 有助于代码审查
- 有助于自身的成长
代码规范点
结构规范
项目的结构就像我们房屋的结构一样,设计好了我们才能住的舒适。一个类创建出来的时候就应该为它找到合适的位置,什么样的包放什么样的类,就像垃圾回收一样要分门别类。
命名规范
- 类名UpperCamelCase,方法名和变量名lowerCamelCase。
- 特殊群体我们要给予respect,它们值得拥有专属签名。
例如:抽象类:AbstractXxx、异常类:XxxException、测试类:XxxTest、设计模式类:Xxx模式名、枚举:XxxEnum
- 单词千万不要拼错,不能确定时我们可以查字典,这不是闭卷考试。
- 命名尽量做到望名知其义,名字长点也没关系。不要随意起名,不要过度简写,更不要词不达意。
例如:pullCodeFromRemoteRepository(望名知其义,虽然有点长)、String a = “命名太随意了”、condition简写为condi(过度简写)、getApple() {return banana} 明明是想要苹果结果却得到香蕉(词不达意)
编码规范
- 逻辑要清晰,结构要分明。根据具体的业务场景我们要先理清要实现这个业务大概要分几步,每一步的顺序是怎样的,并且每个步骤之间应该以空行分割,以提高代码可读性。
- 该写注释的地方一定要写注释。注释可以提高代码可读性,方便他人阅读与维护。
/**
* 编码规范样例
*
* @author Sky
* @date 2022/11/10
*/
@Slf4j
public class CodingSpecificationDemo {
/**
* 数据库地址
*/
public static final String URL = "jdbc:mysql://127.0.0.1:3306/mysql?characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
/**
* 用户名
*/
public static final String USER = "root";
/**
* 密码
*/
public static final String PASSWORD = "root";
/**
* 获取数据库连接
*
* @return 数据库连接
* @throws ClassNotFoundException if the class cannot be located
* @throws SQLException if a database access error occurs or the url is null
*/
public static Connection getConnection() throws ClassNotFoundException, SQLException {
// 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 返回数据库连接
return DriverManager.getConnection(URL, USER, PASSWORD);
}
/**
* 获取用户列表
*
* @return 用户列表
*/
public static List<String> listUser() {
// 定义查询语句
String querySql = "select User from user";
// 获取用户列表
List<String> userList = new ArrayList<>();
try (Connection connection = getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(querySql)) {
// 遍历结果集
while (resultSet.next()) {
userList.add(resultSet.getString(1));
}
} catch (Exception e) {
log.error("List user exception:", e);
}
// 返回用户列表
return userList;
}
public static void main(String[] args) {
// 获取用户列表
List<String> userList = listUser();
// 遍历用户列表
userList.forEach(System.out::println);
}
注释规范
- 类应该添加创建者、创建日期以及适当的说明。
- 类、类属性、类方法的注释应该使用文档注释/** */,不应该使用单行注释//。
- 方法内部单行注释,在被注释语句上方另起一行。方法内部多行注释使用/* */注释。
- 注释的内容要和代码实现的业务保持一致,不要表里不一。
- 代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、核心逻辑等的修改。
- 确定不用的代码应该及时删除而非注释。不然后面接手的人也不敢轻易的动它,影响市容。
结语
人过留名,雁过留声,猿过留码。为代码规范发声,愿与君共勉,码出优雅,像她一样优雅。