7月编程心得

news/2024/11/16 23:36:39/文章来源:https://www.cnblogs.com/makemylife/p/18351838

7 月份非常忙碌,想系统性的写一篇文章,好几次不知道如何下手,后来想想还不如顺其自然,写一点自己的学习心得体会。

这篇文章,聊聊 7月份笔者的编程心得 ,希望对大家有所帮助。

1 IntelliJ IDEA 社区版

工欲善其事,必先利其器。

笔者的 Mac 电脑安装了 IntelliJ IDEA Ultimate Edition 2018 ,一次非正常关机,Ultimate Edition 再也启动不了,不愿意再用破解版了,于是下载了 IntelliJ IDEA 社区版。

体验一番,感觉很惊喜,启动速度非常快,界面非常简洁。

开发过程中,基本没有卡顿的场景,市场中免费的插件基本可以满足个人的需求 。

2 Hutool 初体验

Hutool 是最近几年非常火的 Java 工具类库 , 笔者一直没有使用过,这个月有机会就尝试了一番。

这次实战主要使用了 Hutool 的两个功能: HTTP 客户端JSON 解析工具

1、HTTP 客户端

我们可以按需依赖,比如我们只需要 HTTP 客户端工具,只需要依赖如下组件即可:

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-http</artifactId><version>5.8.25</version>
</dependency>

下图是执行 HTTP GET 的流程:

假如我们想换成 POST 请求,只需要简单的修改:

笔者自己也封装过 HTTP 工具类,大体的套路类似:

上图,笔者定义一个 HTTP 工具类,在类中定义多个静态公共方法供使用。这个工具类非常容易实现,但还是显得非常粗糙。

而 Hutool HTTP 工具的使用方式是链式调用 ,所谓链式调用是通过设置方法的返回值,让返回值变为对象自身,从而实现连续的方法调用。

Hutool 提供了 GenericBuilder 类,可以实现链式调用,具体实现代码如下:

使用链式调用提高了代码的可读性和可组合性,使得代码更加简洁、灵活和易于维护,这种编程技巧值得我们学习。

2、JSON 解析工具

笔者曾经用得比较多的 JSON 解析工具是阿里的 FastJSON , 项目中使用的是 Hutool JSON ,所以也就尝试用了一下。

笔者对接的业务接口返回的结果如上图的格式,定义了一个响应类:

然后直接将结果转换成相关的数据实体:

比如当解析商品信息时,调用如下方法:

从使用体验来看,Hutool JSON 使用起来和 FastJSON 差异并不大,API 非常类似,使用起来还是很丝滑的。

3 整合电商供应链

某电商公司有一个自研的商城 APP ,商品来自 A 供应链,公司领导谈了另一个供应链 B , 想让技术团队接入进来,从而丰富商城的商品多样性。

但两个月过去了,技术团队进展非常缓慢,任务交给笔者后,笔者花了 1 个月时间,初步将供应链整合一起。

上图是用户下单的原有流程,当支付成功之后,支付服务会供应链 A 的提交订单服务,创建供应链订单,并回写到数据库。

假如引入了多个供应链,对于各个业务系统来讲,与多个供应链系统交互就会变得复杂,因此从服务调用角度来讲,笔者引入了一个独立供应链服务 ,下图是供应链服务的设计概览。

不同的供应链公司会提供不同的 API 接口 ,假如每次调用供应链接口使用 if else 来判断,代码就会变得极其难以维护。

因此,笔者设计了一个适配器层,类似于笔者开源的短信服务的适配器层。

短信服务适配器层

不过相比短信服务的 SPI 机制,考虑到研发成本,同时也方便其他研发同学维护,笔者将供应链适配器做了非常大的简化。

供应链适配器层

供应链适配器核心接口如下图:

调用供应链接口时,通过适配器构造器创建适配器,然后调用适配器的方法即可。

经过三周左右的研发,笔者基本将供应链 B 整合了进来,同时将供应链服务化,提升了系统的可维护性。

4 写到最后

这次整合供应链的任务,虽然基本完成了,但笔者内心并没有很多成就感,一方面是因为曾经经历了无数次大大小小的重构,感官都有点麻木了。

另一方面,很多管理者一直都认为技术很简单,可事实是,没有对技术的投入和重视,有些事情他们真的搞定不了。

技术一直都是:短时间被高估,长时间被低估。


Hutool 地址:https://hutool.cn/

IDEA 社区版:https://www.jetbrains.com/idea/download/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/780600.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三分钟对可视化表单设计器开源优点做简单介绍

为了帮助大家了解可视化表单设计器开源的多个优势特点,本文将为大家做一个系统介绍。想要实现流程化办公,需要了解低代码技术平台、可视化表单设计器开源在现代化办公中的作用和价值。为了帮助大家了解可视化表单设计器开源的多个优势特点,本文将为大家做一个系统介绍。 要了…

校园集市小程序开发-系统架构与Django后端

引子: 烂尾就烂尾吧,大不了以后自己创业。唉,也算给自己一个警戒。E-R模型接口设计数据模型设计 基本模型放在models.py中 class School(models.Model):id = models.AutoField(primary_key=True)name = models.CharField(max_length=100, verbose_name=学校名称) # 学校校区 …

基于MPPT最大功率跟踪算法的光伏并网发电系统simulink仿真

1.课题概述基于MPPT最大功率跟踪算法的光伏并网发电系统simulink仿真,包括PV模型建模(不使用simulink自带的PV模块,根据公式进行建模),MPPT最大功率控制器,PI控制器,锁相环,逆变器等等。输出系统的收敛曲线。2.系统仿真结果 上面三个波形分别表示光伏并网输出的Ipv,Upv和…

如何选择最适合你的免费项目管理软件

国内外主流的10款免费项目管理软件对比:PingCode、Worktile、Teambition、Tower、Tapd、Asana、Trello、Wrike、Basecamp、ClickUp、Monday.com。在众多项目管理工具中,找到一个既免费又能满足你专业需求的软件似乎是一项挑战。市场上免费和付费工具琳琅满目,但很多小型团队…

limu|P8-9|线性回归、softmax回归

线性回归模型:\(y = Xw + b + \epsilon\) 1、如何衡量模型质量?loss function损失函数——量化实际值和预测值之间的差距 可证:在高斯噪声的假设下,线性模型的最大似然估计 等价于 最小化均方误差(MSE)。证明在另一篇里写过:https://www.cnblogs.com/xjl-ultrasound/p/1…

学习笔记-图灵完备、图灵机与Brainfuck

前言 本文是近日对图灵完备的学习所做的笔记,如有错误还请指正. 本文包含以下内容: 1.什么是图灵机?什么是图灵完备?什么是Brianfuck? 2.对图灵机的简单模拟. 3.使用Brianfuck模拟一个简单的图灵机. 图灵机? Alan Mathison Turing在1937年提出了一个通用计算设备的猜想.他猜…

帝国cms怎么整站迁移

帝国CMS整站迁移指南第一步:备份数据使用帝国CMS自带的备份功能,对网站数据进行完整备份,包括数据库、目录和文件。第二步:导入新数据库在新的服务器上,创建一个新的数据库,并导入之前备份的数据库。第三步:修改配置文件和数据库连接参数修改 config/config.php 和 data…

织梦dedecms怎么上传本地视频

如何使用 Dedecms 上传本地视频步骤 1:准备视频文件确保视频文件格式符合 Dedecms 支持的格式(例如 MP4、FLV、AVI)。 确定视频文件的存储位置,最好保存在本地电脑上。 步骤 2:打开 Dedecms 管理后台输入管理员账号密码登录 Dedecms 管理后台。 步骤 3:创建新的视频分类在…

帝国cms数据库如何批量替换字段值

UPDATE phome_ecms_news_data_1 SET newstext=REPLACE(newstext,原来,现在) 说明:phome_ecms_news_data_1为数据表名,可以改为任意数据表名,newstext为批量替换的字段。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CS…

大小核溯源:parallelism 和 heterogeneity

ETH Computer Architecture Fall 2023 [1]课程笔记从 parallelism 到 heterogeneity Parallelism 加速的本质来自 Admals Law 和 Polloacks Rule。理想 N 核体系相比单核加速比遵守 \(s = \frac{1}{p+\frac{1-p}{N}}\), 但一味增加并行计算能力不仅边缘递减反而还会 degradati…

地铁站点客流量预测:随机森林极限梯度提升回归器XGBoost

全文链接: https://tecdat.cn/?p=37308 原文出处:拓端数据部落公众号 分析师:Xinyi He 随着城市化进程的加快,地铁作为城市公共交通的重要组成部分,其客流量管理与预测对于城市交通规划和资源配置具有重要意义。准确的客流量预测不仅有助于提高地铁运营效率,确保乘客安全…

项目文档管理利器:2024年你必须了解的工具

国内外主流的10款项目文档管理软件对比:PingCode、Worktile、Teambition、Tapd、Tower、Confluence、Notion、Dropbox Paper、Quip、Basecamp。在面对项目管理的复杂性时,选择合适的文档管理工具可以显著提高效率和团队协作。许多团队在文档管理上遭遇混乱和效率低下,尤其是…