前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我的编码习惯 - 配置规范

我的编码习惯 - 配置规范

作者头像
哲洛不闹
发布2018-09-14 11:01:43
4380
发布2018-09-14 11:01:43
举报
文章被收录于专栏:java一日一条java一日一条

导读:程序员你为什么这么累?

导读(请先仔细阅读):分享我工作中制定配置文件的习惯

工作中少不了要制定各种各样的配置文件,这里和大家分享一下工作中我是如何制定配置文件的,这是个人习惯,结合强大的spring,效果很不错。

=============================需求==========================

如我们现在有一个这样的配置需求,顶层是Server,有port和shutdown2个属性,包含一个service集合,service对象有name一个属性,并包含一个connector集合,connector对象有port和protocol2个属性。

我一上来不会去考虑是用xml还是json还是数据库配置,我会第一步写好对应的配置bean。如上面的需求,就写3个bean。bean和bean之间的包含关系要体现出来。(使用了lombok)

然后找一个地方先用代码产生这个bean:

然后先测试,看看是否ok。为了演示,我就直接在controller里面调用一下

测试一下,工作正常

然后进行业务代码编写,等到所有功能测试完毕,就是【开发后期】,再来定义配置文件。中途当然少不了修改格式,字段等各种修改,对于我们来说只是修改bean定义,so easy。

都ok了,再决定使用哪种配置文件。如果是json,我们这样:

==============================JSON===========================

把上面接口调用的json复制下来,报存到配置文件。

json内容

然后修改config的bean生成的代码为:

代码太简洁了,有没有?!

==============================XML===========================

如果使用XML,麻烦一点,我这里使用XStream序列化和反序列化xml。

首先在bean上增加XStream相关注解

然后修改产品文件的bean代码如下:

XMLConfig工具类相关代码:

XStream库需要增加以下依赖:

所以个人爱好,格式推荐json格式配置。

=========================编码习惯=========================

配置文件编码禁忌

1. 读取配置的代码和业务代码耦合在一起!大忌!千万千万不要!

如下,业务代码里面出现了json的配置代码。

2. 开发初期就定配置文件

毫无意义,还导致频繁改动!先定义bean,改bean简单多了。我的习惯是转测试前一天才生成配置文件。

=============================重要============================

最主要的思想是,不要直接和配置文件发生关系,一定要有第三者(这里是配置的bean)。你可以说是中间件,中介都行。 否则,一开始说用xml配置,后面说用json配置,再后面说配置放数据库?这算不算需求变更?你们说算不算?算吗?不算吗?何必这么认真呢?只是1,2行代码的问题,这里使用xml还是json,代码修改量是2行。而且改了测试的话,写个main函数或者junit测试即可,不需要测试业务,工程都不用起,你自己算算节约多少时间

另外,代码里面是使用spring的习惯,没有spring也是一样的,或者配置的bean你不用spring注入,而用工具类获取也是一样,区别不大。

呕心沥血苦口婆心之作,希望对大家有帮助!其他人有好的习惯更加简洁的方式请在留言区留言,我会逐一回复的,谢谢阅读!

====================GITHUB地址======================

所有的代码细节都在已经上了github了,地址https://github.com/xwjie/PLMCodeTemplate,有问题欢迎提出。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java一日一条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档