为代码规范发声

前言

本文内容主要为笔者从事开发工作以来在编码习惯上的一些总结,难免有主观性。本文更想表达的是代码规范的重要性,代码规范理应得到我们的重视;特别是刚入行的朋友,因为编码习惯大多数是刚入行那段时间养成的,而习惯一旦养成,到后面再去改就困难许多了。

概述

所谓无规矩不成方圆,无规范不能协作;现代软件架构都需要协同开发完成,高效协作即降低协同成本,提升沟通效率;适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率。

良好的代码规范带来的好处

  1. 可以促进团队合作
  2. 可以减少bug处理
  3. 可以降低维护成本
  4. 有助于代码审查
  5. 有助于自身的成长

代码规范点

结构规范

项目的结构就像我们房屋的结构一样,设计好了我们才能住的舒适。一个类创建出来的时候就应该为它找到合适的位置,什么样的包放什么样的类,就像垃圾回收一样要分门别类。
nhfaq9.png

命名规范

  1. 类名UpperCamelCase,方法名和变量名lowerCamelCase。
  2. 特殊群体我们要给予respect,它们值得拥有专属签名。

例如:抽象类:AbstractXxx、异常类:XxxException、测试类:XxxTest、设计模式类:Xxx模式名、枚举:XxxEnum

  1. 单词千万不要拼错,不能确定时我们可以查字典,这不是闭卷考试。
  2. 命名尽量做到望名知其义,名字长点也没关系。不要随意起名,不要过度简写,更不要词不达意。

例如:pullCodeFromRemoteRepository(望名知其义,虽然有点长)、String a = “命名太随意了”、condition简写为condi(过度简写)、getApple() {return banana} 明明是想要苹果结果却得到香蕉(词不达意)

编码规范

  1. 逻辑要清晰,结构要分明。根据具体的业务场景我们要先理清要实现这个业务大概要分几步,每一步的顺序是怎样的,并且每个步骤之间应该以空行分割,以提高代码可读性。
  2. 该写注释的地方一定要写注释。注释可以提高代码可读性,方便他人阅读与维护。
/**
 * 编码规范样例
 *
 * @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);
    }

注释规范

  1. 类应该添加创建者、创建日期以及适当的说明。
  2. 类、类属性、类方法的注释应该使用文档注释/** */,不应该使用单行注释//。
  3. 方法内部单行注释,在被注释语句上方另起一行。方法内部多行注释使用/* */注释。
  4. 注释的内容要和代码实现的业务保持一致,不要表里不一。
  5. 代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、核心逻辑等的修改。
  6. 确定不用的代码应该及时删除而非注释。不然后面接手的人也不敢轻易的动它,影响市容。

结语

人过留名,雁过留声,猿过留码。为代码规范发声,愿与君共勉,码出优雅,像她一样优雅。

grace.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值