CrazyAirhead

疯狂的傻瓜,傻瓜也疯狂——傻方能执著,疯狂才专注!

0%

代码自动生成的注意事项

概要

在“SpringBoot与Jfinal合体”中说到,使用代码生成技术,大大简化了编码量。但在爽的时候也要时刻注意,自动生成的代码是可能存在问题的,排查问题时不要忽略。

记一次排查过程

在整合好了自动代码生成基础框架后,交给同事处理,具体业务需求。一开始一切正常,后面新增加了表,自动生成后,测试对应接口也是正常。

中间因为有其他任务安排,这部分任务先停了一段时间,这两天回来重新实现业务时,发现接口调用不了,提示空指针。

在排除了Maven依赖等问题之后,基本能判断是ActiveRecordPlugin的配置没有读到引起的,但查看ActivePlugin的注入的代码(包括SQL文件)都是正常的。

感觉有点无解的时候,想到要不重新生成试试,因为主要是Model的问题,于是重新生成了Model。之后运行代码,一切正常了。
重新核对,发现是_MappingKit,是表和类的映射关系只有一张表。

最后确认,当时看只要增加一张表,于是把之前的表屏蔽了,同时因为测试了新的接口是正常的,也就没有注意到生成的映射关系有问题。
而我自己呢因为是自动生成的代码没有注意排查。

注意事项

代码自动生成有好的一面,也有不足的一面(代码覆盖问题),而一个架构好用就在于能使用少犯错。在架构没有起来之前也就是靠人治,如规范,培训及惩罚等。

  1. 代码自动生成,最好使用在新项目中。
  2. 代码自动生成,应该区分可变不可变内容,让覆盖更合理,让编码更放心。
  3. 代码自动生成,代码可能被覆盖或修改,排查问题时不要忽略。
  4. 修改代码生成器配置时,一定在注意影响范围并测试。

欢迎关注我的其它发布渠道