java 项目团队开发规范

文章详细阐述了Java项目开发中的各项规范,包括Linux下JDK查询、命名和编码规则、代码格式、异常处理、并发实现、锁机制、数据同步、版本管理和代码提交流程。此外,还强调了测试、性能、安全性的关键点,如单元测试、性能优化、安全性防范措施等。
摘要由CSDN通过智能技术生成

java 项目团队开发规范

  • Linux 查询 JDK 安装位置:sudo update-alternatives --config java
  1. 命名规范:严格执行类、接口、方法、常量等的命名规则,并采用驼峰命名方式;
  2. 编码规范:不仅仅要符合基本的 Java 开发规范,同时还应注意方法的复杂度,类之间的关系和组织循序、数据结构设计等,使系统具备高内聚低耦合的特点和工业级的代码规范。
  3. 代码格式:遵循统一的缩进格式和代码排版风格,例如使用空格代替制表符进行缩进;
  4. 代码死循环:涉及批量及复杂逻辑处理的场景,必须明确流程终止条件,避免死循环出现;
  5. 配置文件格式:新增配置文件需采用.properties命名格式,便于修改配置项,不容易因对齐问题加载/使用异常的情况;
  6. 配置项格式:新增配置项,采用 xxx.xxx.xxx 形式,尽可能表达准确该项的含义,xxx 采用驼峰命名;
  7. 注释规范:文档化注释与单行代码注释对项目可维护性有极大帮助。可通过 Javadoc 标签实现自动化 API 文档生成,并编写必要的单元测试来确保代码执行的正确性和稳定性;
  8. 异常处理:明确异常的分类和范围,尽可能让异常往上抛,而在系统入口处集中处理捕获以及处理。若可以预测的情况下建议手动引发自定义的 Exception 类型;
    1. 自定义异常:RdsException、VariableCalculationServiceException
  9. 并发实现:采用J.U.C线程池中 ThreadPoolExecutor 自定义线程池,控制线程池的队列数、核心、最大线程数、最大空闲时间、队列类型等;
  10. 并发控制:Java 程序中颇有成效的就是 synchronized 关键字、原子类、线程池等工具。建议 synchronized 操作先考虑能否使用 JDK 提供的并发容器类或 lock 特性,从而进行优化进一步减少锁竞争影响性能。
    1. 并发控制:
      1. 锁:synchronized、ReentrantLock
      2. 数据副本:ThreadLocal
      3. 工具:Semaphore、CountDownLatch、CyclicBarrier、Exchanger
      4. 数据同步(Concurrent Collections):ConcurrentHashMap、ConcurrentLinkedDeque、CopyOnWriteArrayList
  11. 版本管理:对于java开发,使用 Git 进行版本控制,并采用迭代分支工作流。主干用于稳定代码迭代更新,每个分支都应该分别进行封装、测试以及集成;
    1. 代码提交流程:
      1. 迭代分支 -> uat 分支 -> pvt 分支 -> master 分支 -> 各在途迭代分支
    2. 代码开发、测试规范:
      1. 迭代分支功能开发完成后按顺序部署:dev 环境(自测) -> sit 环境(联调、测试验证) -> uat 环境(业务验证) -> pvt 环境(回归测试、问题复现、自动化测试) -> 生产环境
    3. 不论需求/测试发现bug,出现任何编码、配置项、脚本调整,必须遵循:
      1. 代码提交流程;
      2. 代码开发、测试规范;
  12. code review:在开发自测,且 dev 环境验证完成后,启动 code review,后续 bug 修复、需求调整,code review 时间节点、方式不变。
  13. 测试:编写必要的单元测试来确保代码执行的正确性和稳定性。
  14. 性能:必须达到较高的性能要求,同时也要确保系统高可用性。可以通过合适的负载均衡、缓存等技术,优化 IO、CPU、多线程等问题,并结合日志审计异步化,应用监控/报警是否正常。
  15. 安全性:优先考虑编写安全的代码,并在系统出口处加强输入参数校验、防止 SQL 注入等,也可结合网络流量监控项目是否异常。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值