![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构设计
文章平均质量分 78
菜爷面馆
大家好,
我叫青菜,
原阿里巴巴资资深软件工程师,
原梵帝IT技术总监,
45岁转行学厨师,
你们愿意看我怎么学厨师,
然后一步步走上创业之路吗?
展开
-
SPI机制详解
1、服务提供方提供接口具体实现,并且必须在Jar包的META-INF/services目录下创建以“接口全名”为文件名,内容为实现类全类名。ServiceLoader<S> load(Class<S> service),为给定的接口创建类加载器并通过反射加载具体的实现类。META-INF/service/java.sql.Driver内容com.mysql.cj.jdbc.Driver。1、ServiceLoader加载的是有共同接口的实现类,ClassLoader是个万能类加载器。原创 2024-03-27 19:40:50 · 1155 阅读 · 0 评论 -
中通云打印对接
注册中通开放平台,并且申请云打印接口权限,在各网点分别开通电子面单账号,在每个网点购买一台打印机,安装好中通打印驱动软件,打印驱动会生成一个唯一的QRCode、将QRCode配置在订单系统,在打印面单的时候将QRCode传给中通云打印服务,它就能够找到对应打印机进行打单。电商公司仓储方案有很多,有自建仓库也有外包给第三方仓储公司,还有一种就是和快递公司网点合作,将货物存放在网点,公司常温奶与奶粉采用该方案,在每个区域找一个网点合作,可以节省一些物流费用。货物存放网点仓库,那系统订单如何通知网点打单发货?原创 2023-10-25 11:51:46 · 406 阅读 · 0 评论 -
责任链模式应用案例
提供getMatchDiscount,调用时先调用缺省的门店折扣处理器,然后查找其下一级类目折扣处理器,再花型折扣处理器,一直找到商品SKU折扣处理器,然后依次返回,如果商品折扣有配置折扣就直接返回,否则依次调用前一级处理器。原创 2023-10-25 11:42:11 · 439 阅读 · 0 评论 -
鲜奶全程冷链配送
1、因为每周鲜奶都集中在周五、周六两天配送,如果系统有一点问题没有及时配送出去,客户会有很大的情绪,鲜奶也可能会变质,技术上主要是针对推送的报文进行监测,开始是将报文放在单独的日志文件里,后来为了方便快速查询将报表丢到Redis里,报文是XML格式,采用JAXB来转换对象与XML数据以及格式化日志输出。2、任何第三方系统都不是绝对可靠的,报文推送给Flux WMS,有时是因为报文格式不符合要求,有时候是顺丰仓对入库单没有确认,有时又是因为Flux WMS系统Bug或故障,所以能及时定位问题是相当重要的。原创 2023-10-16 09:40:59 · 185 阅读 · 0 评论 -
数据库设计理论与实战
注:做表设计第一步就是从需求中把实体抽象出来,然后理清实体之间的对应关系,每一个实体的主键(指的是逻辑业务主键,能够唯一确定实体的属性),然后再具体对每个实体属性进行定义,特别是要关注的是状态字段,状态字段涉及到流程和实体之间的转换,然后尽量按数据库3范式设计,再考虑查询性能及便利性进行反范式设计,表结构设计好后可以不先进行代码开发,可以写好各种SQL语句进行业务流程模拟验证。:与产品当前是一对一关系,主要是考虑当前供应商都是厂家,如果供应商是第三方机构,就是一对多关系。原创 2023-10-16 07:19:09 · 65 阅读 · 0 评论 -
微服务拆分的思考
基础服务主要是账号权限以及商品合并为一个微服务,核心业务拆成两个微服务,交易微服务会依赖于库存微服务,一般业务里分三个微服务,采购、数据统计和其它,任务调度放在其它微服务中。前面几篇文章介绍了微服务核心的两个组件:注册中心和网关,今天我们来思考一下微服务如何拆分,微服务拆分难度在于粒度和层次,粒度太大拆分的意义不大,粒度太小开发、调试、运维会有很多坑。业务流程反应的是数据流,数据从上游流到下游,上游微服务不可以调用下游微服务,下游微服务可以调用上游微服务。核心领域:系统的核心业务,需要保证绝对稳定。原创 2023-10-16 07:03:39 · 831 阅读 · 0 评论 -
数据库字段打标
前两天系统要增加了一个功能,需要统计出客户无发票退货原因报表,这个需要把无发票退货订单标记出来,这种最常规的做法就是增加一个字段,但加字段方式不可扩展,尤其是当表数据量大更改表结构困难的时候,这时我们可以考虑用二进制标记位来做,这种做法在大厂里应用得非常普遍,我们在牛奶项目的用户表中也有应用,下面介绍一下使用方法。把字段某个Bit位设为0,用的是与操作(只有要去掉的位设为0,其它位全部设为1),对其它标记位也没有影响。:把字段某个Bit位设为1,用的是或操作,对其它标记位没有影响。原创 2023-10-13 09:20:45 · 286 阅读 · 0 评论 -
收银系统商品定价设计思考
是产品一个标准化单元,对于我们来讲就是花型,类目+花型就可以定义一个SPU,促销活动大多时候是也是根据花型去做的,有Single daisy(单雏菊)、Single orchid(单瓣兰花),WAX HOLDER(蜡架,老外是真浪费啊),这个分类其实咱也搞不懂,也没什么兴趣去了解,能抽像出来就行。PS:文章标题写了个思考,主要是让标题看起来高大上一些,其实是没什么思考的,先记录在这里,以后慢慢思考吧,这块业务还是有些复杂的,涉及到退换货预售单,销售业绩统计,收银对账等等,以后有时间慢慢梳理吧。原创 2023-10-12 23:00:45 · 2008 阅读 · 0 评论 -
商品子系统设计
一个完整的电商系统,包含用户中心、商品中心、订单中心、促销系统、库存管理、物流管理等,对于平台类电商都叫中心,这样显得比较高大尚,而对垂直类电商充其量只能叫子系统,不然别人会觉得你吹牛B。正如客户是一个CRM系统的核心,一切都围绕客户搭建,商品是电商系统的核心,一切围绕着商品搭建,商品系统设计是否合理是很关键的一件事,本文就讲一下商品的基础概念以及近四年我负责三个系统商品子系统的抽象和设计。原创 2023-10-12 07:26:58 · 75 阅读 · 0 评论 -
聊聊ToB与ToC技术开发的区别
英文To Business,指面向企业提供相关的服务、产品、平台,为企业内部所使用,包括企业内外部运营管理,数据应用和决策分析。To C英文 To Custome,指面向最终用户个体消费者,比如衣食住行各类APP电商网站等。To B 一般由传统软件厂商、中间件厂商、系统集成商运营,在对应的领域提供相应的产品级解决方案,主要围绕着企业生产、管理、运营、决策各个环节,原创 2023-10-08 19:42:56 · 2307 阅读 · 2 评论 -
类目体系设计总结
公司窗帘产品在做分类调整,从原先二级类目调整为三级类目,相对于平台电商我们的类目层次结构要简单很多(没有定义商品动态属性等),但对于也有上万款SKU的系统来讲,做好基础的分类对于采购、商品促销、数据报表统计还是有必要的。11年左右,我们在淘宝用共享平台搭建垂直市场,大致流程就是先申请后台类目,然后申请前台类目,配置好前后台类目的映射关系,然后申请几台机器,做个导购页面,部署发布上去就OK了。3、采购系统的类目和销售系统的类目划分不统一,而采购系统的类目来源于工厂ERP,很难统一,将来会是个麻烦事。原创 2023-10-08 19:32:55 · 260 阅读 · 0 评论 -
跨时区系统设计方案
划分时区作用是为了统一时间,让各个区域12点都是正中午的时候,其实我没想明白为什么这么折腾,我这边18点是正中午有什么不可以的呢,这世界就是这样总喜欢把简单的事情搞复杂了,时区的划分以地球表面按经线从东到西划成一个个区域,每隔经度15°划分一个时区,规定相邻区域的时间相差1小时,,如下图所示。门店收银系统分布在澳洲、中国、新西兰,分跨不同时区,系统需要显示不同时区的时间,这是比较折腾的一件事,今天讲一下我们是怎么作的。4、门店表配置了对应时区,比如 Perth时区是东八区,Jindalee 是东十区等。原创 2023-10-08 07:28:12 · 582 阅读 · 0 评论 -
跨境电商系统对接-进口
指中国境内有进出口经营权的企业进行进出口贸易,货物到港后需要先清关(办理海关申报、查验、征税、放行等手续),然后货主才能提货,一般贸易适合大批量进口商品,公司的鲜奶、常温奶、奶粉都是通过这种方式空运或海运进来的。保税仓备货模式,商家提前从国外批量备货到国内保税仓,待客户下单后从保税仓打包完成通关后使用国内物流配送给消费者,公司的婴儿奶粉是采用该方式进口,本文主要讲一下保税区模式系统如何对接。通过海外直邮直接发到客户手上。原创 2023-10-07 21:26:52 · 181 阅读 · 0 评论 -
从一张表格开始做挖机报价系统
客户是CRM模块的核心,围绕着客户将其在系统中的每一个事件都进行汇总,并且记录每一事件中销售与客户的沟通记录,这样销售在跟进一个客户时,可以清晰地知道与客户交互的所有情况,我们会生成一个时间轴,什么时间接到客户电话,什么时间进行报价,什么时间与客户签订合同,以及这中间所有的沟通记录,然后给客户分成不同等级,当客户变成非活跃时,会及时提醒销售进行跟进。4、ToB的系统没有高并发的挑战,但业务复杂度是远远超过ToC的业务,这里仅简单介绍一下,实际项目中更复杂,每一个下拉框选择不同的类型都会触发一系列业务规则。原创 2023-10-07 17:13:35 · 95 阅读 · 0 评论 -
Java设计模式概述
设计模式为开发人员提供了一系列经过验证的解决方案,能够显著提升代码的可读性和可维护性。这些模式广泛应用于开源基础框架中,如JDK、Spring等,如果你不熟悉设计模式想要理解这些框架的源代码就会非常困难。在业务项目中,设计模式的应用会受到一些限制。特别是以业务为导向的技术团队中,成员的技术背景可能存在差异,如果设计模式应用得不恰当,可能会导致后续维护过程成为一场灾难。原创 2023-08-30 10:58:14 · 41 阅读 · 0 评论 -
面向对象设计原则
面向对象设计原则是一组用于指导良好的软件设计的基本准则。这些原则帮助开发人员创建可维护、可扩展和易于理解的代码,所有的设计模式都会遵循这些基本原则。原创 2023-09-02 17:22:21 · 54 阅读 · 0 评论 -
策略模式与模板方法结合案例
3、模板方法:AbstractBaseHandler定义了模板方法,调用sendSms、sendWxMsg、addintegral抽象方法,封装了具体流程,具体子类去实现,如果不需要该功能就空实现。在项目中,当配送单开始配送时需要给用户发送短信和微信通知消息告知用户快递单号,当订单完成或将小程序加入我的小程序时也需要给用户加积分,这里采用MQ进行解藕和异步化,具体见类图和下面的分析。封装了一个固定流程,该流程由几个步骤完成,具体步骤由子类实现,从而让固定的流程产生不同的结果。原创 2023-10-06 14:29:45 · 930 阅读 · 0 评论