最新要闻
- 《塞尔达传说:王国之泪》卖爆背后是手游行业的悲哀-全球视讯
- 再见吧!特斯拉强制单踏板模式
- 全球今亮点!“感染”塞尔达病毒后 我每天只睡三小时
- 硬派越野车不适合城市?仰望U8云辇-P出手:三级可调、软硬随心
- ChatGPT估值已上2000亿 创始人对钱没兴趣:收入只够交保险 当前速看
- 23中国中药SCP001今日发布发行公告|当前聚焦
- 全球头条:1美金等于多少人民币元(2023年5月17日)
- 国内又现被驱赶的5G基站:你敢建?我就敢拆!居民称辐射大有害健康|全球热点评
- 开除软件部门全体高管后 大众被曝要用华为车机软件|全球微资讯
- 1TB硬盘只要200元 三星等带头减产闪存 国产存储公司回应:好消息 天天短讯
- 当前要闻:沈阳金融商贸开发区聘请十余位顾问委员会特邀专家
- 四大运营商宣布:我国启动全球首个5G异网漫游试商用
- 国产武侠游戏巅峰 等了16年的《仙剑4重制版》悬了
- OPPO Reno10系列正面颜王:对称双曲面、2.12mm窄下巴 世界快讯
- 前苹果工程师被指控盗窃自动驾驶技术 为中国汽车公司牟利
- ZV-1继承者来了!索尼新款Vlog相机5月23日发布
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
匠心精神--来看一个小迭代的代码实现
(资料图片)
问题
我司对外部商户提供的API中,有一个年久失修的开票记录查询接口,近期在一次集中测试时,发现这个接口的响应值与接口文档里描述的不一致。代码里定义的field名是type,而文档里参数名是invoiceTypeId。
修改方案
因为无法确定原先的type有没有商户在用,所以,在模型类里新增invoiceTypeId,以保证与文档一致。
代码实现
先介绍这个模型类QueryInvoiceResultResponse,是一个普通的POJO,一堆field,一堆getter&setter,往下翻还有个使用IDE生成的toString方法,洋洋洒洒300余行代码。
代码怎么改呢?这还不太简单!新增一个名为invoiceTypeId的私有field,并为其增加getter&setter,再在声明这个对象的业务类里,调setInvoiceTypeId,妥了。
是的,就是这么简单。
once you do, do it well. 我们来看更好的代码实现方式
1)比较type与invoiceTypeId这2个字段名,不难看出type无法完整表达其含义,invoiceTypeId更优。既然如此,我们将type隐藏起来,不让业务类里再关注type,只需关注invoiceTypeId即可。另外,既然保留了type,那么,就要在其javadoc里注明保留的背景和原因,便于后续维护理解。
2)再说说这个300余行的POJO类,显然缺乏代码简洁度。在需求不断迭代过程中,我们不应该总是新增代码,而要适时调优代码。就拿这个POJO来说,我们做一番小改造,首先用lombok的@Data注解来取代getter&setter,以及IDE快捷生成的toString方法。这些都是举手之劳,却能带来极好的效果。这次CR时我就发现开发人员遗忘了重新生成toString方法,致使toString方法中没有体现新增的invoiceTypeId,这对于一个300余行代码的POJO类来说是很容易漏掉的,因此,我们完全借助lombok的@Data或@ToString就好了,没必要自己每次都生成。
/** * 查询开票结果返回实体 * * @Author : peanut * @Created : 2020/11/23 下午11:16 */@Datapublic class QueryInvoiceResultResponse { /** * 服务商ID **/ private Long levyId; /** * 商户号 **/ private String merId; /** * 发票类目。 2023-5-15经验证发现对外暴露API里,发票类目参数名是{@link #invoiceTypeId},但不确定这个type是否有商户使用,暂时保留 **/ private Long type; /** * 发票类目id */ private Long invoiceTypeId; /** * 申请开票金额(单位:分) **/ private Long amt; ... ... public void setInvoiceTypeId(Long invoiceTypeId) { this.invoiceTypeId = invoiceTypeId; this.setType(invoiceTypeId); } /** * 不再对外暴露setType方法 * @see #setInvoiceTypeId(Long) * @param type */ private void setType(Long type) { this.type = type; }}
关键词:
匠心精神--来看一个小迭代的代码实现
《塞尔达传说:王国之泪》卖爆背后是手游行业的悲哀-全球视讯
再见吧!特斯拉强制单踏板模式
全球今亮点!“感染”塞尔达病毒后 我每天只睡三小时
硬派越野车不适合城市?仰望U8云辇-P出手:三级可调、软硬随心
ChatGPT估值已上2000亿 创始人对钱没兴趣:收入只够交保险 当前速看
23中国中药SCP001今日发布发行公告|当前聚焦
全球头条:1美金等于多少人民币元(2023年5月17日)
国内又现被驱赶的5G基站:你敢建?我就敢拆!居民称辐射大有害健康|全球热点评
开除软件部门全体高管后 大众被曝要用华为车机软件|全球微资讯
1TB硬盘只要200元 三星等带头减产闪存 国产存储公司回应:好消息 天天短讯
全球观焦点:企业级项目模板的配置与集成(Vite + Vue3 + TypeScript)
智能家居生态迎来超强辅助 快资讯
当前要闻:沈阳金融商贸开发区聘请十余位顾问委员会特邀专家
四大运营商宣布:我国启动全球首个5G异网漫游试商用
国产武侠游戏巅峰 等了16年的《仙剑4重制版》悬了
OPPO Reno10系列正面颜王:对称双曲面、2.12mm窄下巴 世界快讯
前苹果工程师被指控盗窃自动驾驶技术 为中国汽车公司牟利
ZV-1继承者来了!索尼新款Vlog相机5月23日发布
我国成功发射第五十六颗北斗导航卫星 全球观点
数据结构-环球速递
【世界热闻】提高数据的安全性和可控性,数栈基于 Ranger 实现的 Spark SQL 权限控制实践之路
环球看点!Django authenticate() 函数查找不到与提交的用户名和密码匹配的用户,则会返回 None。
apb uart IP使用说明
微软反驳马斯克:我们并没有控制OpenAI
频繁翻车、流量不再 为何明星代言手机越来越少了?
环球要闻:20年来重大转变 马斯克将花钱为特斯拉打广告
边开边充!瑞典率先打造世界首条永久性充电公路 头条
病人被医生遗忘在磁共振舱近三小时 属重大医疗事故 科普:没辐射
全球新动态:【道德经】五十·出生入死
NineData:高效高质量的 Redis 可视化管理工具|今热点
如何在不改变图片分辨率的情况下增加图片的大小
今日讯!国家发展改革委与标普评级公司召开座谈会 开展我国主权信用评级复评工作
最新70城房价出炉,4月份郑州新房同比增长0.2%
孟羽童图文广告报价至少15万一条 网友称其已赚近300万-世界聚看点
屏幕良心了 Redmi Book 14用上2.8K 120Hz:告别万年FHD 60Hz 当前观察
自主品牌崛起 国人依然爆买BBA等豪华车 30万以上增速翻倍-全球视讯
一特斯拉高速堵车任性变至应急车道:差点蹭翻执勤车辆
火爆!华为Mate X3出货目标翻倍:修改为超300万台-世界消息
保障口岸快捷通道恢复通关
热点聚焦:简单聊两句前端模块化
【天天聚看点】2023蝶变志愿免费版有没有 软件好用吗靠谱吗
消息称特斯拉申请扩建上海超级工厂:将首次生产软包电池 全球观速讯
马斯克“抢功”:没有我就没有OpenAI ChatGPT
档位天花板!荣耀90系列官宣:全新镜头惊艳
淘汰老头乐!两部门支持农村购买新能源汽车 提供以旧换新奖励|世界时快讯
天热必备:匹克夏季针织短裤34元官方冲量(65元优惠券)_今热点
世界快资讯:《守望先锋2》PVE英雄模式取消:开发没有取得预期进展
Vuex的使用 环球通讯
最低已跌至5.5% 上市券商两融利率集体下滑|世界新资讯
焦点速看:连通三大火车站,广州站至广州南站将建铁路联络线
莫言称余华根本不是我的对手:神评当代大学生脱不下孔乙己长衫 让人感慨
或卖17万!特斯拉公布全新车型 新一代平台打造:不用任何稀土
华为启动建设“双万兆之城”:5.5G峰值速率10Gbps 比5G快9倍-每日观点
北京发布人工智能算法领域专门人才政策
环球通讯!【读财报】创业板一季度业绩透视:近四成公司营收净利双增 机械设备、医药生物等行业表现突出
苹果联合创始人称想死就买特斯拉!马斯克回应:这比人类驾驶安全10倍
全球快报:仙侠剧《护心》惊现科技梗:"爱凤"变“花为” 剧情脑洞大开
2023特斯拉股东大会正式召开!一文了解重点内容
天天热讯:迪马尔科赛后话筒喊话:谁不跳谁就是米兰球迷 一起去伊斯坦布尔
关于Kubernetes-k8s集群在任意nodes节点上执行kubectl和kubadm命令的方法 全球报资讯
至少30元/杯!国人消费越来越冷静:都不喝星巴克了...
最高读取7100MB/s!京东京造鲲鹏SSD发布:2TB 579元
成都医保局缴费记录多久更新?-今日热搜
03-运算符
播报:不如华为轻薄!曝三星Galaxy Z Fold5 7月发
世界关注:无力自研 大众密谋动用数十亿欧元收购华为车BU:玩真的?
全球微头条丨好评如潮PC大作!黑客修复《生化危机4重制版》破解补丁:更加完美了
《英雄联盟》2023MSI:BLG3:1战胜G2 晋级四强|全球播资讯
淄博快递员称发不完根本发不完:我在淄博40年 没见过这么火热过-全球今亮点
吃粽子表示着什么 吃粽子预示着什么
全球简讯:谈谈AI产品经理的产品开发流程
勒沃库森官方:球队传奇贝拉拉比将在本赛季结束后离队_时快讯
Python学习之十三_pip的学习
中科院专家谈ChatGPT:被过度炒作和神化 不久就是白菜价-天天微速讯
电脑16GB内存到底够不够用?实测揭晓答案_环球快讯
全球速读:RTX4070游戏本杀疯!晚买果真享折扣 等等党赢了
浙江多地海边现“蓝眼泪”奇观:场面惊艳
某某吉他谱_某某吉他谱
关于k8s-master节点的token过期后的处理方法-让新node节点加入的方法-每日热点
每日聚焦:下半年的神U!联发科天玑9200+稳了:性能霸榜安卓阵营
rpcauthnlevelprivacy enabled_privacyiconclient exe 每日资讯
聊聊我认为的OpenFeign|微动态
IDEA配合Docker插件进行一键部署
文心一言 VS chatgpt (17)-- 算法导论4.1 3~4题 全球速读
洛谷颜色对照表 焦点短讯
版本升级!微软更新Windows 11 22H2正式版官方ISO镜像:免费下载
世界热头条丨更近了!中国新一代载人火箭进展顺利:一级可复用
焦点短讯!520用得着!杰士邦进口零感组合0.8元/只速囤:超薄澎湃
女网红用AI和1000个男友同时谈恋爱:轻松月入3000万
神似iPhone!realme narzo N53来了:后置双摄 主打轻薄-世界速看
超合金战记3boss大全(超合金战记3怎么抽斯巴达)
当前资讯!探索数字未来——虚拟数字化展厅的革新之旅
Java设计模式-装饰模式
法治服务“零距离”,让法治意识深入人心
你支持吗?广州研究压缩机动车道宽度 让电动自行车通行|每日焦点
能量密度断层式领先!宁德时代:凝聚态电池正用于电动载人飞机开发|全球独家
天天热资讯!《甄嬛传》胧月公主扮演者回应近照曝光:没买热搜
每日看点!299元起!闪极《流浪地球2》联名移动电源开售 比手办还精致
【快播报】先蹦个迪再说!马斯克蓬头散发会见马克龙的原因找到了