实战来了,基于DDD实现库存扣减~
本文详细介绍了库存领域的关键概念以及库存扣减的三种模式,同时基于DDD的分层模型,成功实现了预扣模式的业务逻辑。在库存的预扣和库存释放接口中,通过业务流水表和状态机的方式确保了接口的幂等性。然而,值得注意的是,本文所展示的方案采用了纯数据库实现,可能在高并发情况下性能略有下降,当然这也是我们后面需要优化的点。
复用性风控:软件复用成本的量化管理
本文分析「复用性」这一概念背后的风险及成因,借助笔者在业务安全和基础安全的经验,提出了一个在软件研发流程中,管理「复用性成本风险」的风险管理模型,希望能为读者在后续的技术决策和软件研发流程提供些许帮助。
在Lombok的加持下,“小狗”.equals(“老狗”) = true
我有一个同学,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用Idea进行开发。
Spring 冷知识:一个提前 AOP 的机会
今天再来聊一个 Spring 中的冷门知识:Bean 的处理不走正常流程,而是提前进行 AOP。 本文算是前面文章(Spring Bean 名称暗藏玄机,这样取名就不会被代理)内容的一个补充,如果还没阅读前文,建议先阅读,这样有利于更好的理解本文。
线程池中的最大线程数、核心线程数和队列大小的合理设置
线程池是多线程编程中常用的工具,通过合理的设置线程池参数,可以有效地管理线程,提高程序性能,避免资源浪费。其中,线程池的最大线程数、核心线程数和队列大小是决定线程池行为的关键参数。本文将深入探讨如何设置这些参数,以便更好地满足应用程序的需求。
优秀程序员的22个优秀习惯
看了一篇关于优秀成员的共同特征的文章,文章是基于Golang编程的总结和分析,但大多数理念在编程领域都具有普适性,这里总结分析给大家。
业务能力、业务功能、业务流程、业务服务及业务模型到底有什么区别?
业务能力、业务功能、业务流程、业务服务、业务模型是接触业务时经常碰到的术语,但这些术语具体是什么含义,互相之间有什么联系和区别,很多时候不太分得清楚,当这些概念相互混淆时,可能会导致业务架构不清晰、工作效率低下、用户体验差,甚至可能影响到整个业务的成功。
数据复制策略综述
数据复制是确保数据安全、可用和高性能的关键策略之一。不同的复制策略提供不同的权衡,可以根据具体需求选择。同步复制提供高一致性和可靠性,但可能会降低吞吐量。异步复制提供高吞吐量,但可能会有一些数据丢失的风险。半同步复制则在一致性和性能之间取得平衡。 在设计分布式系统时,需要仔细考虑数据复制策略,以满足应用程序的需求和性能要求。了解数据的重要性、一致性要求、系统吞吐量和复杂性等因素将有助于选择适当的复制策略。无论选择哪种策略,数据复制都是确保数据的安全性和可用性的关键步骤。
初识搜索:百度搜索产品经理的第一课
提到百度,很多人的第一印象还是搜索,而搜索也一直是互联网用户的刚需,是最核心的基础应用之一。百度经过多年对用户需求的理解和满足,奠定了在中国中文搜索的头部地位。如今百度搜索的移动市场占有率已经高达85%,每天有2亿多的用户发起超过60亿的搜索请求。
Vaex助力高效处理大规模数据集
在数据科学中,高效处理大规模数据集一直是个挑战。Vaex是一个功能强大的Python库,旨在通过提供快速且内存高效的数据操作和分析功能来解决这个问题。本文将探讨Vaex的实际应用,并展示如何简化工作流程。
如何设计云原生数据治理方案
数据治理项目通常伴随着监管压力、高成本和不明确的投资回报。识别关键数据、管理元数据、控制数据质量和确定数据来源的程序通常耗时较长且成本高昂。比如银行业的相关年度成本很容易超过每年 1000 万元,有时甚至超过 1 亿元。执行过程既痛苦又缓慢,因为需要在数百个系统和应用程序中手动识别数千个数据元素,而这些系统和应用程序通常是在过去几十年创建的。
Khronos: 面向万亿规模时间线的性能监控引擎建设实践
阿里巴巴智能引擎事业部自研的 Khronos 系统是阿里内部接入规模最大的性能数据存储引擎。Khronos 支持动态生命周期的存储计算分离架构,采用 schemaless 的 data model 设计,在万亿数据规模下为业务提供易用、高效、经济的服务,团队近期的优化工作也被国际学术会议CIKM2023收录。本⽂总结了Khronos 在性能监控领域遇到的技术挑战,以及在这个场景下的一些价值判断。
Linux系统Sar文件性能分析利器介绍
提到Linux系统中常用的性能分析工具,那我们一定会想到sar(System Activity Report)。它可以从多方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、网络吞吐量、进程活动及 IPC 有关的活动等。可以通过使用sar工具来获取整个系统性能情况从而进行深度分析,帮助我们定位系统性能瓶颈。在系统上sar文件CPU资源利用情况如下:
阿里二面:消息队列的事务消息可以用 TCC 模式实现吗?
消息队列的主要功能是系统间解耦,实现流量的削峰填谷。主流的消息队列一般有三个核心操作:消费者发送消息,Broker 保存消息,消费者消费消息。如下图:
BeanPostProcessor 是在何时介入 Bean 创建的?
今天来和各位小伙伴详细分析一下 BeanPostProcessor。今天这篇是原理分析,基本用法松哥之前已经讲过了,有视频也有文章,对视频感兴趣的小伙伴戳这里:Spring源码应该怎么学?
掌握这些套路,你也能顺利解决并发问题
掌握解决并发问题的多种方法,能够从有锁和无锁两个角度深入理解并发问题的解决方案,能够结合自身实际项目思考并发问题出现的原因及其解决方案,并将解决并发问题的方案灵活应用到自身实际项目中。
一个实例教你实施面向对象开发,构建高内聚、低耦合的高质量代码~
本文从一个具体的开发案例出发,介绍在实际项目中如何进行面向对象分析、面向对象设计、面向对象编程。
【交付高质量,用户高增长】-用户增长质量保证方法论
俗话说,“测试是质量的守护者”,但单凭测试本身却远远不够。大多数情况下,测试像“一面镜子”,照出系统的面貌,给开发者提供修改代码的依据,这个“照镜子”的过程,就是质量评估的过程,或者说,测试的过程更像“量体温”,虽然可以测量出温度进而判断健康状况,却不能靠量体温治病。同时,需求交付的高质量不仅仅体现在结果层面,如功能、性能、可靠性、可用性、可维护性、安全性以及用户体验,也应该包括交付的过程层面,如业务需求的高质量、产品文档的高质量、提测代码的高质量等等。所以,应该站在更高的维度、更宽的视野来看待质量保证。本文基于C端用户拉新的业务场景,以质量保证的全视角,总结了质量保证过程中的框架、策略、流程、规范、方法、工具以及实践,全面阐述了用户增长质量保证的价值观、方法论以及我们所理解的内涵,即高质量=质量策略多样化+质量流程标准化+质量活动规范化+质量工具平台化+质量运营常态化。限于自身认知、专业
通过述职发现自己“变”了
述职的目的是通过事情本身看人的成长变化,有两点比较重要:一个是价值和结果的呈现、另一个是个人的成长和变化。本文针对这两个点展开聊聊,包括通过哪些方式来改变自己有所成长,如何进行价值的定义判断、结果及呈现。
不可不知的FPGA设计妙招,使用Makerchip进行在线虚拟开发(附案例)
介绍如何使用Makerchip进行在线虚拟开发(附案例)。