惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
量子位
GbyAI
GbyAI
B
Blog RSS Feed
月光博客
月光博客
人人都是产品经理
人人都是产品经理
腾讯CDC
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
The Cloudflare Blog
D
Docker
Cyberwarzone
Cyberwarzone
U
Unit 42
NISL@THU
NISL@THU
C
Check Point Blog
B
Blog
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
P
Proofpoint News Feed
F
Fortinet All Blogs
V
V2EX
T
Threat Research - Cisco Blogs
T
Threatpost
S
SegmentFault 最新的问题
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 司徒正美
P
Privacy & Cybersecurity Law Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
TaoSecurity Blog
TaoSecurity Blog
Latest news
Latest news
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
P
Privacy International News Feed
L
Lohrmann on Cybersecurity
AWS News Blog
AWS News Blog
G
Google Developers Blog
美团技术团队

博客园 - luckygxf

架构积累-系统划分 架构积累-软件架构终极目标 javascript构造方法 数据库连接池初始连接 分布式系统CAP理论(一) 数据库连接太多排查(一) 审批流程-节点自动审批通过 防表单重复提交 深分页问题 devops 对象存储迁移-组件上线 工作效率提升 js析构赋值 框架的好处和不足 React框架Hello world 数据库表设计在哪个接口 需求实现-ddd四层架构实现 前端代码(一) 高内聚,低耦合 对象存储改造 mermaid初体验 业务逻辑优化-解决提示词问题打分不准 idea 插件envfile初体验 防盗链-防盗用链接 springboot项目启动小技巧 github托管网站 AI MCP开发 AI中 MCP 作用 mapconstruct 初体验 架构积累-解耦与防腐 表创建索引的重要性 重构注意事项(一) drawio初体验 六边形架构 架构积累-依赖注入和SOLID原则 工作总结-定时任务 工作总结-知识通关需求上线 工作总结-演练场景映射方案 工作总结-MVP 工作总结-需要学习的方向 工作总结-接口优化 python asyncio demo 工作总结-sse接口心跳 工作总结-问题筛选方案 工作总结-工具分享 工作总结-提示词优化 工作总结-工作优先级 工作总结-灰度发布
新需求开发-重构老的逻辑
luckygxf · 2026-05-14 · via 博客园 - luckygxf

最近在做一个需求,把客户迁移从一个地方迁移到另外一个地方。之前有过类似的需求,我参考之前的实现逻辑,实现这次需求。不了解之前的需求,不敢在之前的实现上重构,增量重构

主要步骤有一个待迁移的客户列表,在数据库表中。迁移步骤

1.根据多个规则过滤用户,命中规则的用户不迁移

2.发送短信,IM等通知客户

3.校验通知结果

4.执行迁移

参考之前同事写的代码,发现和自己的习惯有些不太一样的地方。

1. 代码基本没有注释,不太好阅读

2.部分代码有缩写,加上没有注释,要联系上下文,才能理解

3.部分入参、出参是map类型。不知道map里面放的是什么,需要看上下文

4.部分基础、工具服务和业务逻辑耦合在一起,不能复用。比如,发送通知,应该是一个可以复用的实现。调用外部接口,发送通知。接口可以直接定义为,sendMsg(targetUser, msgContent)。代码和业务耦合了,不能复用,入参是业务实体,在内部拼接消息内容等。应该把拼接消息的逻辑放到应用层,或者converter里面。消息发送完成后,

5.做了记录操作的动作,把操作保存到数据库。保存内容应该跟业务无关的,把业务相关的放到操作内容里面,不应该单独建一列,这样,其他场景就不能复用了。因为其他场景,可能没有这一列

6.没有按照公司的四层架构实现,在领域层创建了一个发送消息的领域服务。根据公司的规范,应该在domain创建一个support接口,基础设施层实现发送消息逻辑。在应用层,拼接好消息内容,调用domain层的接口发送即可。问了下大模型,领域服务应该是在实体不能沉淀,跨领域对象的逻辑,定义领域服务。公司不推荐创建领域服务,推荐把业务逻辑沉淀到领域对象。应用层实现业务编排

也有写的好的地方,值得学习的地方

1.批处理,提高系统性能

2.查询、更新数据库,使用了一个大的类型,这样不用每个字段更新都写一个方法

3.大部分实现是符合公司四层架构的

4.日志打印的比较多,好定位问题