多么痛的领悟,基础数据的全部

欢迎访问陈同学博客原文

名词解释:Lookup 指数据字典,常用于表示状态,应用中通常为枚举类,页面上可作为下拉框的数据源。

本文以一个小故事分享基础数据维护的一些事。

痛苦的原始生活

晚上九点,程序在生产环境部署完成,小A终于歇了口气,开始按顺序把各种基础数据录入系统。

  • 录入新菜单
  • 录入新接口
  • 录入Lookup

重复着 Control C/V ,小A回想起开发 F功能 时的场景,真是惨不忍睹。

“擦,功能简单至极,却有5个Lookup,每个Lookup居然有十几个项”,瞄完功能文档后,小A痛不欲生。

好吧!又能怎样呢?

吭哧吭哧创建了5个枚举类,完成CRUD,痛苦的把Lookup维护到待发布文档中。

接着,收集本次变更的接口。“POST请求,URI 是 /examples ……” ,小A念叨着。

偷个懒吧

“开发时要维护,打断思绪,影响心情;发布时要复制粘贴,浪费时间。要是哪天漏维护,生产环境指不定还能生个阿哥。总这么搞也不是事呀!”。睡在床上,小A思考着。

“干脆按规定格式维护到Excel里吧,写个导入程序,发布时抓Excel数据然后自动导进DB。虽然开发时仍然要维护,但起码发布时轻松很多”。

第二天,设计完 Excel 中的数据结构,几个小时后,小A快速完成了开发。录入些基础数据,测试一把,基础数据自动进入DB,爽歪歪!

向小伙伴介绍完如何维护数据之后,小A期待着下次发布的到来!

“哈哈哈哈,得亏我机智!”。两周后,看着满屏待维护的基础数据,小A乐的合不拢嘴。

几十秒,基础数据 “刷刷刷” 自动导入了DB,Perfect!

刹不住的"懒车"

眨眼过去一个月,虽然发布轻松一些,但平时反人类的维护工作还是历历在目。

上班路上,小A想着:“还能不能让我安心的干活了,非得搞定你不可”。

作为 Java 程序小哥,小A自然知道 Spring 的 XML 维护时代、注解标记时代、Spring Boot 自动搞定各种体力劳动的奇妙,小A又回想起开发时的一些细节。

XML 手工定义 Bean,繁琐不说,还容易把class维护错。基础数据也一样,繁琐,容易错,还容易漏。

<bean id="userService" class="com.example.UserService"/>

JavaConfig 方式果然爽,coding的方式还是舒服很多!

@Configuration
public class UserConfiguration {
    @Bean
    public UserService userService {
        return new UserService();
    }
}

扫描并自动注入真赞!通过 @Service 标记,它成了为类的属性,UserService 就可以被自动处理了,完美呀!

@Service
public class UserService {}

我能不能也搞个扫描,然后加载到DB呢?关于Lookup,小A立马构思了一个方案,联想到了案例。

@Lookup
public class UserStatus {
    ACTIVE("ACTIVE", "正常"),
    INACTIVE("INACTIVE", "注销"),
    FROZEN("FROZEN", "冻结");
}
  • Lookup 是枚举类,定义 @Lookup 注解,为类打上标记
  • 构建时利用 maven 扫描特定 package,收集 @Lookup 标记的数据,打成json文件放到jar包中
  • 部署时利用程序读取json文件数据并导入到DB
  • 应用运行后自动读取基础数据,解析并加载

由于实现很简单,小A慢慢的完成了设计和开发工作,各种基础数据也逐渐被处理掉,筒子们从此可以专心的干活。

后记

技术设计、开发、测试、部署过程中,会有许多臃肿、痛苦却无法避免的维护工作。这些工作需要开发规范来约定,codereview 人员需要经常提醒新人,却也会忘记维护,偶尔也会维护出错,在构建新环境时还要处理一大堆额外维护工作。

许多元数据就在程序中,有的也是跟着开发步骤走,比如:

  • 利用Liquibase脚本来处理DB对象,脚本在部署包中
  • 利用 Swagger 来标记接口,定制开发,自动收集并导入DB
  • 利用自定义注解来处理 Lookup 等类似的数据,自动收集并导入DB

"利用安装介质,一键部署,一个Docker镜像搞定一切,随时随地随意构建新环境!",这是最开心的方式,现在许多软件产品都是运行一个镜像即可。

” 出新境界吧!


欢迎关注陈同学的公众号,一起学习,一起成长

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值