![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构与设计
文章平均质量分 78
这是你的路啊
自强不息 追求卓越
展开
-
进程内的消息通知
背景 我们团队,由于原python项目由于可维护性的降低、开发成本和周期的增长、扩展性差,已经逐渐适应不了公司业务的发展,面临不得不重构项目。该项目主要使用django+celery单体服务、29万行pyton代码、约1500个接口,包含仓库中的商品信息、仓库信息、库存管理、库内流程、出库流程、入库流程等各种业务。在业务发展初期,为了快速的完成业务迭代,模块间的通信方式都是直接函数调用,这种方式简单、直观。但随着业务的发展,直接调用的方式使得整个项目耦合严重、理解难度增加,进而使得开发效率骤减、bug急剧增原创 2022-05-23 11:04:08 · 395 阅读 · 0 评论 -
从0到1经历的一次重构
一、为什么需要重构: 1、每次促销活动,波次服务几乎都会卡住,卡住的原因就是旧系统的各种bug且不好排查,影响了商品出库效率,毫不夸张的说每次大促就像是在打仗,出问题成为了家常便饭,见怪不怪。由于我们业务的特殊性,每个月都会经历一次促销,而作为仓储服务,用户在商城买了自己喜欢的商品就需要在仓库内找到指定的商品发给用户,这个过程在仓库内部我们称为捡货商品出库。为了提高捡货效率我们提供了一个仓储内波次服务,这个波次服务所做的工作就是快速在仓库内找到订单上的商品,这个过程我们称之为跑波次,每跑一次波次就会将当前订原创 2022-05-23 10:58:06 · 360 阅读 · 1 评论 -
从业务开发到业务开发的思考
最近业务上遇到一些问题,引发了我的一些思考。 统一处理和分散处理的利弊前言总结 前言 有这样一个场景,当你需要和外部系统交互的地方有很多时,一般都是你先落表,然后推送给外部系统,这时实现方式你该怎么选择?是让业务方自己去与外部系统交互,还是在落表的地方实现几个统一的方法让特定的人去做推送这一块的业务。 我们遇到的困惑是这样的,我们的业务中有库存信息,但是有另外一个系统相当于我们的缓存面向用户提供下单服务,我们库存的变更需要实时推送给这个另外的系统。这时我们重构系统实现的方式就是让有变更库存的地方自己去原创 2021-09-08 20:39:19 · 370 阅读 · 0 评论