陈同学
微服务
Accelerator
About
# 多么痛的领悟,基础数据的全部 > 名词解释: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维护错。基础数据也一样,繁琐,容易错,还容易漏。 ```xml <bean id="userService" class="com.example.UserService"/> ``` JavaConfig 方式果然爽,coding的方式还是舒服很多! ```java @Configuration public class UserConfiguration { @Bean public UserService userService { return new UserService(); } } ``` 扫描并自动注入真赞!通过 **@Service** 标记,它成了为类的属性,**UserService** 就可以被自动处理了,完美呀! ```java @Service public class UserService {} ``` 我能不能也搞个扫描,然后加载到DB呢?关于Lookup,小A立马构思了一个方案,联想到了案例。 ```java @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镜像搞定一切,随时随地随意构建新环境!"**,这是最开心的方式,现在许多软件产品都是运行一个镜像即可。 "**懒**" 出新境界吧!
本文由
cyj
创作,可自由转载、引用,但需署名作者且注明文章出处。
文章标题:
多么痛的领悟,基础数据的全部
文章链接:
https://chenyongjun.vip/articles/106
扫码或搜索 cyjrun 关注微信公众号, 结伴学习, 一起努力