重构思路
首先,要从需求考虑,将每个需求都抽成对象,然后梳理它们之间的关系,把每个对象的属性都考虑好
然后去对比现有数据库是否能够满足需求,且满足数据库三范式
第一范式(1NF):字段值具有原子性,不能再分(所有关系型数据库系统都满足第一范式);
第二范式(2NF):一个表必须有主键,即每行数据都能被唯一的区分;
第三范式(3NF):一个表中不能包涵其他相关表中非关键字段的信息,即数据表不能有沉余字段;
如果数据库有改动,那么代码也需要改动,且要去优化之前的代码(重构一定会优化代码,不然为什么重构)。
优化代码思路
减少过多的条件判断
使用布尔值的快捷方式
合理使用三元语句
把复杂的条件分支语句提炼成函数
避免条件判断的重复过程
巧用return
适当使用设计模式,比如策略模式
临时变量尽量减少
不要出现不恰当的命名
命名要准确描述做的事情
命名需符合约定俗称的惯例
禁止即某个类的方法过多的使用其他类的成员
合理的继承体系
继承符合封装性,子类依赖其父类中特定功能的实现细节
尽量控制逻辑不要分散,较少出现以下情况
发散式变化:某个类经常因为不同的原因在不同的方向上发生变化
散弹式修改:发生某种变化时,需要在多个类中做修改
方法不要过长,且减少代码重复
逻辑要清晰明了,只在复杂的逻辑上添加注释
方法中的语句保持在同一个抽象层级
不要出现一些逻辑十分简单,但是写的却很复杂的代码
不要使用过时的方法
应使用常量或确定有值的对象来调用 equals,防止空指针报错
IDEA插件
最后推荐几个比较好用的idea插件
Alibaba Java Coding Guidelines
Alibaba Java Coding Guidelines 专注于Java代码规范,目的是让开发者更加方便、快速规范代码格式。该插件在扫描代码后,将不符合规约的代码按 Blocker、Critical、Major 三个等级显示出来,并且大部分可以自动修复,它还基于 Inspection 机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。(唯一的问题这个插件很长时间没有更新过了)
GitToolBox
配合版本控制工具git使用,非常直观显示当前项目分支,及代码未更新,未提交数目,并且可以自动更新git代码。省去查询分支和最新代码等不必要的麻烦。
MyBatisX
有了MybatisX后只用在dao中写好对应方法后,按Alt+Enter选择自动生成就能自动在xml中生成对应的映射方法
添加插件后在dao层会多一只戴红色头巾的小鸟,同样在对应xml文件方法前也会对应一直戴蓝色头巾的小鸟,点击即可在dao和xml文件之间跳转
Rainbow Brackets
这个插件基本作用是按照颜色匹配括号,提高括号匹配速度。还可以高亮目标代码,快速锁定显示目标代码。