首页 > 其他分享 >我总结了写出高质量代码的12条建议

我总结了写出高质量代码的12条建议

时间:2023-01-25 10:12:09浏览次数:42  
标签:code 12 Good 代码 高质量 class Bad 写出 public

前言

工作这么多年,见过许许多多的代码,有的写的好,有的写的很糟糕。好的代码不外乎要做到你的代码可阅读、可维护、可扩展。说难不难,说简单也不简单,那么本文我将总结工作这么多年该如何写出整洁代码的一些实践。

欢迎关注个人公众号【JAVA旭阳】交流学习

1.使用清晰且有意义的命名

干净代码最重要的原则之一是使用清晰且有意义的命名。这使其他开发人员可以轻松理解您的代码在做什么,并减少出现错误的可能性。例如,不使用名为“d”的变量来表示距离,而是使用名为“distance”的变量。

// Bad
int d = getDistance();

// Good
int distance = getDistance();

2.使用合适的数据类型或者数据结构

干净代码的另一个重要原则是使用适当的数据类型, 这可确保您的代码能够正常工作并减少出现错误的可能性。例如,不使用字符串来表示年龄,而是使用整数。

// Bad
String age = "25";

// Good
int age = 25;

3.保持方法简短且重点突出

干净的代码还与保持方法简短和重点突出有关,一个方法应该只做一件事并且应该易于理解,这使得测试和维护代码变得更加容易。例如,与其将处理订单的所有代码放在一个方法中,不如将其分解为更小的方法来进行验证、计算和保存。

// Bad
public void processOrder(Order order) {
    // lots of code
    }

    // Good
    public void processOrder(Order order) {
        validateOrder(order);
        calculateTotal(order);
        saveOrder(order);
    }

4.撰写清晰且有意义的注释

干净代码的另一个重要原则是编写清晰且有意义的注释。注释应该解释这段代码做的事情的原因,而不是它是如何做的。这使其他开发人员更容易理解您的代码。

// Bad, 只说明是递增
// increments count 
count++;

// Good,说明业务需要每次加1
// Increment the count by 1
count++;

5.使用空格和缩进提高可读性

干净的代码还意味着使其易于阅读,使用空格和缩进来提高代码的可读性。这使其他开发人员更容易理解您的代码在做什么。

// Bad
if(a==b){c=d;}

// Good
if (a == b) {
    c = d;
}

6.以正确的方式使用异常处理

干净的代码要求 以正确的方式处理异常。您应该只捕获您可以处理的异常,并以特定的方式处理它们,避免包罗万象的异常处理程序。

// Bad
try {
    // some code
} catch (Exception e) {
    // handle exception
}

// Good
try {
    // some code
} catch (IllegalArgumentException e) {
    // handle specific exception
} catch (Exception e) {
    // handle general exception
}

7.使用封装来隐藏实现细节

封装是一种有助于隐藏类的实现细节并使其更加灵活和可扩展的技术。通过使用封装,您可以更改类的实现而不影响其余代码。

// Bad
public class BankAccount {
    public double balance;
    // other methods
}

// Good
public class BankAccount {
    private double balance;
    // other methods
}

8.使用继承和多态来编写可重用的代码

继承和多态性是面向对象编程的强大功能,可让您编写可重用的代码。通过使用继承,您可以创建一个包含公共代码的基类,然后创建继承该代码的子类。通过使用多态性,您可以编写以通用方式处理不同类对象的代码。

// Bad
public class Square {
    // code specific to squares
}

public class Circle {
    // code specific to circles
}

// Good
public class Shape {
    // common code for all shapes
}

public class Square extends Shape {
    // code specific to squares
}

public class Circle extends Shape {
    // code specific to circles
}

9.使用设计模式解决常见问题

通过使用设计模式,您可以编写易于理解、维护和扩展的代码。例如,策略模式是一种设计模式,可让您编写灵活且易于扩展的代码。

// Bad
public class OrderProcessor {
    public void processOrder(Order order) {
        // lots of code
    }
}

// Good
public class OrderProcessor {
    public void processOrder(Order order) {
        OrderStrategy strategy = new OrderStrategy(order);
        strategy.process();
    }
}

10.使用单元测试确保代码按预期工作

干净的代码也与测试有关。通过编写单元测试,您可以确保您的代码按预期工作并且易于维护。单元测试是测试单个代码单元的自动化测试。

public class BankAccountTest {
    @Test
    public void testDeposit() {
        BankAccount account = new BankAccount();
        account.deposit(100);
        assertEquals(100, account.getBalance());
    }
}

11.使用代码审查来提高代码质量

干净的代码也与协作有关。通过使用代码审查、结对编程和指导,您可以提高代码质量并使其更易于理解和维护。

12.使用工具来提高代码质量

开发工具安装 checkstyle 这样的代码格式化工具来检查代码,同样,sonarQube 也可以帮助检查代码中的问题。

总结

总而言之,代码不是写给自己看的,而是写给别人看的。你得想办法让你的代码能让别人容易看的懂、容易维护、能够很好的扩展,那么你才是一个合格的程序员,本文介绍了一些最佳实践和示例,希望对你有帮助。

欢迎关注个人公众号【JAVA旭阳】交流学习

标签:code,12,Good,代码,高质量,class,Bad,写出,public
From: https://www.cnblogs.com/alvinscript/p/17066696.html

相关文章

  • 洛谷P1259 黑白棋子的移动 题解
    本蒟蒻这题用的打表做法,其实也可以理解为是一种递推。先来观察一下样例:当n为7时,输出共有14行,易得输出行数为2n。ooooooo*******--oooooo--******o*oooooo******--o......
  • 数据结构 玩转数据结构 12-1 平衡树和AVL
    0课程地址https://coding.imooc.com/lesson/207.html#mid=14346 1重点关注1.1本节关注重点平衡二叉树的重新定义,标注节点高度,平衡因子 1......
  • 服务架构学习与思考(12):从单体架构到微服务架构的演进历程
    从单体架构到微服务架构的演进历程一、单体架构1.1什么时候用单体架构在创业初期或项目开始时,项目整体功能比较少,开发人员也少,且项目需要用最少时间开发出来,用MVP方......
  • Day12 - 多任务编程【进程】
    0.多任务的概念多任务是指在同一时间内执行多个任务,例如:现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。1.多任务介绍多任务为提高程序的执行效......
  • 0123 训练小记
    0123训练小记BZOJ2159Crash的文明世界把\(k\)次方用第二类斯特林数拆开,然后换根dp统计即可。时间复杂度:\(O(nk)\)。CF453ELittlePonyandLordTirek每次操......
  • 230124_50_SpringBoot入门
    thymeleaf语法1.th:utext,转义文本controllermodel.addAttribute("msg","<h1>hello,springboot!</h1>");html<divth:text="${msg}"></div><divth:utext="......
  • P2260 [清华集训2012]模积和
    P2260[清华集训2012]模积和求\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n\bmodi)\times(m\bmodj),i\neqj\]mod19940417的值分析假设\(n\lem\)$......
  • __int128:懒人的福音
    前言对于一个懒懒的,不想写高精的人(就是我),每次都会遭遇到答案爆$long$ $long$的危险比如说这道题:题目传送门最后的$23-25$的两个点,$long$ $long$甚至$unsigned$ $......
  • macOS Monterey 12.6.3 (21G419) 正式版 ISO、IPSW、PKG 下载
    macOSMonterey12.6+,皆为安全更新,不再赘述。macOSMonterey12.6,发布于2022年9月12日(北京时间今日凌晨),本次为安全更新。今日(2022-07-21)凌晨,Apple终于发布了macO......
  • macOS Monterey 12.6.3 (21G419) Boot ISO 原版可引导镜像
    macOSMonterey12.6+,皆为安全更新,不再赘述。macOSMonterey12.6,发布于2022年9月12日(北京时间今日凌晨),本次为安全更新。今日(2022-07-21)凌晨,Apple终于发布了macO......