美文网首页
不好的代码要引以为戒,才能写出更好的代码

不好的代码要引以为戒,才能写出更好的代码

作者: 余很多之很多code | 来源:发表于2022-11-10 14:39 被阅读0次

不好的代码要引以为戒,才能写出更好的代码

吃掉异常

try {
    //...
}
catch (Throwable t) {
    return;
}

catch的地方直接吃掉异常,这样导致排除问题变困难。

变量名无意义,神奇魔法数

public static final String ZERO = "0";//Constants.java
wrapper.lambda().eq(UserEntity::getIsDelete, Constants.ZERO);

定义的变量名只是0的英文,根本无法理解表达的是已经删除还是未删除状态

循环里依次查询数据库

for(Test test:tests) {
    test.setName(userService.getNameById(test.getUserId()));
}

应该汇总userId,一次性查询tests列表里对应的,而不是循环不断查询

System.out.println()打印

System.out.println("users:"+users);

生产上应该用log日志去打印,而不是System.out.println,
System.out.println代码跟踪进去,会有synchronized 同步锁,对性能影响很大。
printStackTrace也是。

参数传递userId

//接口请求,传递userId,直接用前端给的userId查询数据
//user/getUserById?userId=11

存在安全风险,应该从当前用户session或者token中得到userId(经验的原因,新手老是会犯)

大量的ifelse

if ("1".equals(type)) {
    ...
} else if ("2".equals(type)) {
    ...
} else if ("3".equals(type)) {
    ....
} else if ("4".equals(type)) {
    ....
}

通过map优化,更复杂考虑采用责任链模式。

controller调用mapper

@RestController("user")
public class UserController {
 
    Autowired
    private UserMapper userMapper;
 
    @RequestMapping("/getUser")
    public String getUser() {
        Long userId = ...;
        return userDao.getUserById(userId);
    }
}

controller直接调用mapper,而不是service,层级混乱

未在finally中close

try {
    //...
    x.close();
}
catch (Throwable t) {
    return;
}

很多api涉及到资源释放,都会提供close方法,
但是close()方法应该写在finally中确保被调用。

log日志打印用占位符而不是用字符串拼接

log.info("users:"+users);

正确应该是log.info("users:{}",users);

synchronized范围太大

public void deal() {
    synchronized (obj) {
        // 查询list当数据判断
        // 处理业务
    }
}

synchronized应该锁粒度尽量小,本身查询list没有影响的情况下,应该在synchronized前面执行,而不是方法里面,影响了整体性能。

相关文章

  • 不好的代码要引以为戒,才能写出更好的代码

    不好的代码要引以为戒,才能写出更好的代码 吃掉异常 catch的地方直接吃掉异常,这样导致排除问题变困难。 变量名...

  • Matlab编程风格

    Matlab编程风格 代码格式要正确,表达清晰、通用,这样才能写出具有共享性和容易维护的代码。良好的代码写作规范,...

  • 如何写出不好的代码

    [toc] 如何写出不好的代码 这是一个从各个项目整理出来的代码,具有一定代表性。坏代码的产生,本篇暂时不深究原则...

  • 要写出更好的代码记录

    1.values()返回的是 V 值集合,是一个 list 集合对象;keySet()返回的是 K 值集合,是一个...

  • Python写出更好的科学代码

    如何在&Python中写出更好的科学代码? 任何科学工作的一大部分都在于编写代码。无论是典型的机器学习建模、分析,...

  • 写出不好代码的原因有什么

    有这么一种情况, 为什么上学的时候偏科, 我喜欢数理化, 但是让我背东西, 我完全不行. 原来就以为是偏科, 现在...

  • JavaScript中的继承和组合

    继承与组合都是面向对象中代码复用的方式,了解各自有什么特点,可以让我们写出更简洁的代码,设计出更好的代码架构。 这...

  • 虚幻引擎4-UE4 语言基础之代码规范

    要编写出优雅的Unreal Engine代码,需要了解所在sdk环境的编码习惯和约定,这样才能编写出和上层sdk一...

  • (1)如何写出胸怀世界的时间代码

    更好的代码阅读体验,请移步 作业部落 (1)如何写出胸怀世界的时间代码 ISO 8601 计时法 ISO 8601...

  • UBB标签

    UBB标签以其更好的安全性,成为论坛发帖的代码标准;UBB标签还是要解析成HTMl代码,才能让浏览器认识,一般都是...

网友评论

      本文标题:不好的代码要引以为戒,才能写出更好的代码

      本文链接:https://www.haomeiwen.com/subject/tygztdtx.html