团队建设之代码质量

代码质量与代码规范

代码规范和架构设计是软件的灵魂所在,代码质量偏低,就像是人失去了三魂七魄中的一魄,就会丧失活力,影响正常运行,增加软件交付后维护成本,出现推迟完成、超出预算、特性缺失等现象。
只要是团队开发,遵守同一份规范,写出的代码人人都是可以看懂和维护的.而每个人都以不同的风格写代码,整个项目中,风格乱舞,无疑会增加后期维护。
实际上,每家公司都会有一份自己的代码规范,因此提高代码质量的关键在于是否能落实,在于公司的技术总监、项目经理或相关代码审查人员是否具有应有的执行力。而如果不能落实,那么即便代码规范画得再美,具体的代码也会丑到崩溃。顺便提一下,通过有效的代码审查可以发现潜在的问题,会很大程度上避免造成线上项目的损失。

代码规范

团队建设中,代码规范其实是很重要的一步。大概分为:制定通用简洁的代码规范;编码时使用代码规范;编码后进行有效的代码审查;通过代码审查后的总结与学习。

如果不想为以后挖坑,是做好代码规范与其后的执行功能是程序员和团队负责人、项目经理的必修课。如何保证当前项目开发过程中压力正常,而不是在后期面对过多的压力、以至于噩梦缠身?最简单的办法就是照看好你的代码,也就是落实好公司的代码规范工作。使用相同的代码规范,即使你的代码有业务逻辑问题,也能更容易进行重构。每天为此付出一丁点的努力,便可以避免代码腐烂,并保证代码产品日后不至于变得难以理解(可读性)和维护(可维护性)。而且通过别人给你检查代码和检查别人的代码,这种在工作中提升自己的形式真的很有效果与成就感,对于自己的成长也是很有好处的。
注:代码规范可以在《阿里巴巴Java开发手册》的基础上更改成自己公司的一套规范.

文件链接:https://download.csdn.net/download/baidu_25310663/11290003

代码质量

高质量代码的三大要素:

可读性、可维护性和可变更性:

代码的可读性

代码的可读性是指代码让人容易阅读、跟踪和理解的程度。提高代码的可读性可以为代码阅读者节约时间(避免阅读时浪费过多无谓的时间)和精力(Debug、扩展功能或是性能优化的前提条件是你要读懂这段代码)。

以下是可供参考的策略:

  • 编码风格一致,如:命名,注释,字段,统一格式的接口入参与出参,统一的异常编码,更多参考《阿里巴巴Java开发手册》
  • 代码清晰表达意图,能够让人快速看懂(最低限度的要求是自己一个月后能快速读懂);
  • 恰到好处的注释
    • 不能太多或太少,注释的形式根据代码具体的情况有不同;
    • 避免用注释包裹代码;
    • 尽量留下简明扼要的注释;
    • 增加业务逻辑注释
  • 简单就是美,避免简单的功能写出复杂的代码;
    • 保持简单的代码远比写出复杂代码要难得多,但这是值得的;
    • 不编写讨巧的代码,比如只为实现功能而实现;
    • 避免无谓的条件嵌套和过度封装;
    • 第一眼看上去就能知道其用处的代码,才是简单而美的代码
    • 坚持操作方法的原子性,而后使用组合模式实现业务逻辑;
    • 避免大段代码,要写高内聚、低耦合的代码;
  • 模块化编程,相同的模块代码放到一个模块或包下
  • 公共业务服务的统一,避免项目中出现多个完全相同的代码功能
  • 使用同一个的代码生成器,生成代码快捷键和代码格式化规则,提交前格式化代码
  • 根据页面返回的自定义的错误编码与描述,快速定位问题

代码的可维护性

软件可维护性是指理解、改正、改动、改进软件的难易程度。通常影响软件可维护性的因素有可理解性、可测试性和可修改性。这里将其分为两大类:编写时可维护性和运行时可维护性。

编写时可维护性

编写时可维护性是指在程序或系统上线后爆出 BUG,开发团队能够及时扑灭这个 BUG 且不会爆出其他 BUG。保持方法的原子性,提高代码内聚,能使某处修改的影响降到最低,这样某处方法出现 BUG,也不太会影响到其他模块的正常运作。编写时可维护性还包括了代码的可测试性。

运行时可维护性

运行时的可维护性是指在系统运行过程中(或无需再次编码发布、只需系统重启一次)修改系统的某项配置并使其生效,且不影响现在正在进行的业务和用户的操作。这要求软件工程师不能把代码写死。例如,将数据库连接字符串放到配置文件中。又例如,使用第三方系统,控制当前系统内使用哪种逻辑,做到可配置,无缝切换功能的效果。

代码的可变更性

代码的可变更性是软件理论的核心。代码的可变更性是建立在代码的可维护性上的,而代码的可变更性与可维护性又都建立在代码的可读性上。如果代码难以阅读,那么 BUG 的修正将变得难以入手,新功能的添加就更是无从入手了。相信每个程序员都经历过,需求变来变去的情况,这种情况下,可变更性高的代码修改起来会很方便,相反,修改起来会让你感到崩溃的。

具体的策略可以钻研一下设计模式,争取将设计模式与代码相结合,但是也不要为了使用而使用。

编码时规范的代码举例

  1. 方法参数超过三个,建议封装到一个类中
  2. 循环中对字符串增删操作使用StringBuilder或StringBuffer
  3. if判断中使用肯定有值的放到第一个参数上或者使用Objects.equals方法
  4. 判断逻辑超过三个,封装到单独方法中
  5. 接口不抛出异常,在接口类处理,对应返回不同的错误编码
  6.  
  7.  
  8. 未完待续...

 

 

 

Java企业场景下的实战入门课(Spring Boot+Redis)

04-20
<p> 企业场景下的Java实战课程!  </p> <p> 【超实用课程内容】 本课程主要是从最基础的技术要点一步一个脚印的介绍Spring Boot2.0相关的核心技术栈和缓存中间件Redis常见且典型的数据结构、相关的核心技术栈及典型的应用场景的实战。并附带业务场景实战用户注册和点赞系统中点赞功能模块的设计与实现为各位小伙伴提供企业级项目开发中常见且典型的Java核心技术,可以说是拒绝纸上谈兵、注重实战并学以致用!  </p> <p> <br> </p> <p> 套餐中一共包含2门实战入门课程(共82讲)  </p> <p> 课程1:《Java实战之Spring Boot入门到精通》  </p> <p> 课程2:《Java实战之Redis入门到精通》  </p> <p> <br> </p> <p> 【基础要求】  </p> <p> 1、基本要求:具备一定的JavaSE以及Java Web项目的开发基础、了解spring boot更佳  </p> <p> 2、工具要求:会使用Intellij IDEA、Navicat以及Postman  </p> <p> <br> </p> <p> 【你能收获到什么?】  </p> <p> 1、帮助学员了解并掌握springboot和缓存中间件Redis的方方面面、包括其典型及常用的数据结构及其在实际项目开发中典型的应用场景!  </p> <p> 2、掌握如何基于Spring Boot搭建企业级项目,整合加入中间件Redis相关的依赖配置,并以此为扩展,为后续学习其他中间件做铺垫;可以提升学员Java中间件的实战能力。  </p> <p> 3、帮助学员了解并掌握缓存中间件Redis在实际应用中有哪些常见、典型的应用场景,如对象信息存储、列表存储、队列特性分发消息、试题库随机获取、排行榜等等,这对于学员在平时项目开发、跳槽面试等情况下将有很大的帮助  </p> <p> 4、本课程介绍的基于Redis相关数据结构的特性独立设计并实战项目中典型功能模块,如会员到期自动提醒、点赞功能模块等内容,将有助于学员将所学的技术栈真正应用到实际中、提升自身的数据库设计能力、业务理解能力、代码实战能力以及性能优化方面的能力  </p> <p> <br> </p> <p> 【课程如何观看?】  </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习;  </p> <p> 2、移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录课程观看页面,点击右下方课程资料、代码、课件等打包下载 </p> <p> <img src="https://img-bss.csdn.net/202004200821078434.png" alt=""> </p>
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值