美文网首页
JAVA代码规范

JAVA代码规范

作者: 上海马超23 | 来源:发表于2017-09-29 22:00 被阅读0次

POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类

所有的 POJO 类属性必须使用包装数据类型。
RPC 方法的返回值和参数必须使用包装数据类型。
POJO 类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE 问题,或者入库检查,都由使用者来保证。
所有的局部变量使用基本数据类型。

定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。

序列化类新增属性时,请不要修改 serialVersionUID 字段,避免反序列失败;如
果完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。
新增属性不影响老版本的反序列化!

构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。

使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全
一样的数组,大小就是 list.size()。

创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。

使用 CountDownLatch 进行异步转同步操作,每个线程退出前必须调用 countDown方法,线程执行代码注意 catch 异常,确保 countDown 方法被执行到,避免主线程无法执行
至 await 方法,直到超时才返回结果。

ThreadLocal 无法解决共享对象的更新问题,ThreadLocal 对象建议使用 static修饰。这个变量是针对一个线程内所有操作共享的,所以设置为静态变量,所有此类实例共享
此静态变量 ,也就是说在类第一次被使用时装载,只分配一块存储空间,所有此类的对象(只要是这个线程内定义的)都可以操控这个变量。

超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现

下列情形,需要进行参数校验:
1) 调用频次低的方法。
2) 执行时间开销很大的方法。此情形中,参数校验时间几乎可以忽略不计,但如果因为参数错误导致中间执行回退,或者错误,那得不偿失。
3) 需要极高稳定性和可用性的方法。
4) 对外提供的开放接口,不管是 RPC/API/HTTP 接口。
5) 敏感权限入口。

防止 NPE 是调用者的责任。即使被调用方法返回空集合或者空对象,对调用
者来说,也并非高枕无忧,必须考虑到远程调用失败、序列化失败、运行时异常等场景返回null 的情况。

相关文章

  • Java编码规范

    Java 代码规范 本 Java 代码规范以 SUN 的标准 Java 代码规范为基础,为适应我们公司的实际需要,...

  • Android开发中的优化方案

    一、命名规范 代码规范先从命名规范开始,Android的命名规范主要涉及:Java源代码,xml文件,图片资源。 ...

  • Java代码规范

    遵从java编码规范,目的做到代码规范、统一 鲁曾说过:只要代码规范了工作就完成了一半。。。 0.遵从java编码...

  • 代码规范

    请参考java代码规范: https://github.com/alibaba/p3cvue代码规范: https...

  • 从代码中学习阿里编码规范(一)

    Java编程需要用到阿里编码规范。Java小白在写代码时,经常容易出现代码规范问题,以下为我根据现有代码以及阿里的...

  • java代码规范

    本司代码规范继承grpc的google java规范。 中文:https://segmentfault.com/a...

  • JAVA代码规范

    POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 如果变量值仅在一个范围内变化,且...

  • Java代码规范

    一、为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为重要,有以下...

  • Java代码规范

    第1章 引言 1.1介绍 本文档以SUN的标准Java代码规范为基础,结合公司的实际需要,做一些修改和补充,编写次...

  • idea插件

    Java代码规范与质量检测插件SonarLint

网友评论

      本文标题:JAVA代码规范

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