Lzy19970621 发表于 2023-7-25 10:48

java编写规范

我看了一下论坛的一些java帖子和我现实在真实公司遇到的代码规范问题向大家提一个建议
[*]首先第一点就是controller不建议写很多逻辑,我的是四行是注解,三行代码,其实也就只有一行是调用service的
[*]service层不推荐每个接口超过50行(阿里编码规范写的),我有同事一个接口一千多行(我的天),我认为的是,可以稍微超出一些,但是如果超出50行以上就建议额外在写一个方法了
[*]不要使用一大堆if,else,如果是对同一个值判断的话可以使用switch,如果是对象中不同的是可以使用参数效验,或者1使用断言直接异常抛出去
[*]尽量不要使用循环嵌套,当然我理解的是,如果集合不大的话可以使用一下,但是能不用还是不要用
[*]如果前端传了一个对象,某个值我们需要重复使用的话可以尝试先get出来赋值给另一个变量,然后使用变量,而不是每次使用都去get
[*]写逻辑的时候能不查库就不查库,可以引入本地缓存或者redis,当然重要的数据还是以数据库为准
[*]逻辑无非也就是增删改查,但是增,删,改的时候批量操作的时候尽量不要循环去操作库,而是建议批量操作,mybatisplus中有对应方法,特别是编辑的时候建议使用数据库的乐观锁,我是喜欢用mybatisplus的version乐观锁
[*]注释,注释,注释,重要的事情说三遍,一定要写注释,要不然谁知道你写的是啥,我们公司尽然找借口要向前端去要,进很离谱,但也没办法
[*]本人也是首次发帖,阐述了一些搭建还是比较容易发生的问题,如果有不对的还是希望大家指出,不足的欢迎大家补充

Lzy19970621 发表于 2023-7-25 11:04

可能我的截图没有上传,这是我又重新补充的

hrh123 发表于 2023-7-25 11:10

编码规范有啥好讨论的,可曾听过Google Style Guide?<https://google.github.io/styleguide/>

Lzy19970621 发表于 2023-7-25 11:14

hrh123 发表于 2023-7-25 11:10
编码规范有啥好讨论的,可曾听过Google Style Guide?

如果没有可讨论的必要的话,为什么还会有那么多没有注释的代码,为什么还有那么多在controller写逻辑的呢,很多人只是因为前人教他们那么写的,也需要有人对他们说代码规范,Google Style Guide说实话我还真没听过,相信也有很多人没听过,不能因为自己知道就默认其他人也知道,这样本身就不是很合理的

hrh123 发表于 2023-7-25 11:19

本帖最后由 hrh123 于 2023-7-25 11:24 编辑

Lzy19970621 发表于 2023-7-25 11:14
如果没有可讨论的必要的话,为什么还会有那么多没有注释的代码,为什么还有那么多在controller写逻辑的呢, ...
你可能误解了.........我只是想引出存在个较为通用的编码规范这个主题而已(也不能说通用,起码谷歌内部都要求员工遵守这个编码规范)

www805 发表于 2023-7-25 11:21

这个每个公司都不同吧,跟公司规范就行

Lzy19970621 发表于 2023-7-25 11:25

hrh123 发表于 2023-7-25 11:19
你可能误解了.........我只是想引出存在个较为通用的编码规范这个主题而已

不好意思,是我曲解意思了,我原本没想那个发到这个板块的,审核员给我移动到这里了,名字也确实稍微有点不恰当

Lzy19970621 发表于 2023-7-25 11:29

www805 发表于 2023-7-25 11:21
这个每个公司都不同吧,跟公司规范就行

我感觉这个和公司无关,和公司有关的应该是架构或者controller的注解,但是很多规范也应该是通用的,如果controller不写逻辑,只写调用,service单个接口不要太大,不要循环嵌套什么的,当然这只是我个人认为的,如果确实公司有要求的话还是按照公司规范吧

zang135579 发表于 2023-7-25 11:31

国内Java都是阿里的规范多吧,我前端是照着Airbnb的来的

Lzy19970621 发表于 2023-7-25 11:36

zang135579 发表于 2023-7-25 11:31
国内Java都是阿里的规范多吧,我前端是照着Airbnb的来的

国内基本还是用阿里规范的居多,但是还是有很多写的有问题的,我遇到的主要是我帖子上说的那几个最多,就是想给大家一个建议,不过我说的是java规范,不是前端规范,前端规范我了解不多{:1_925:}
页: [1] 2 3 4
查看完整版本: java编写规范