一、秒杀业务为什么难做IM系统,例如QQ或者微博,每个人都读自己的数据(好友列表、群列表、个人信息)。微博系统,每个人读你关注的人的数据,一个人读多个人的数据。秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。读写
如果你查看目前任何主流的项目中的 devDependencies,我们不会在生产环境用到,但是它们在开发过程中充当着重要的角色。归纳一下有:javascript转译、代码压缩、css预处理器、elint、pretiier,postcss等。所有的上述工具,不管怎样,都建立在了AST这个巨人的肩膀上,都是 AST 的运用:编辑器的错误提示、代码格式化、代码高
海外酒店是酒旅事业群第一个孵化的业务,从2016年9月份开始到现在已经半年多的时间。在业务后台搭建、成长、优化过程中,经历了很多的思考与选择。主要分为下面几个阶段:初建:调研、落地,合理复用,高效自建。优化:量化、决策,寻找瓶颈,优化性能。展望:梳理、规划,业务展望,未雨绸缪。本文将分别介绍这几个阶段后台系统相关的思考,此外还会在最后总结团队建设方面的经验。 初建海外酒...
原创 2021-05-11 23:10:27
408阅读
本文通过对贫血三层架构进行精炼,推导出适合我们落地的应用架构,并且将之实现为Maven Archetype以应用到实际开发,然而应用架构只是落地DDD的一个知识点,要完整落地DDD还必须体系化地掌握限界上下文、上下文映射、充血模型、实体、值对象、领域服务、Factory、Repository等知识点。 1. 前言常见的DDD实现架构有很多种,如经典四层架构
智能、互联时代已经来临,应用并发量激增,业务流程更加复杂,新技术迭代落地速度更快。 传统单体应用架构开发设计,代码复杂度控制,系统可扩展性保障难度越来越大。微服务架构通过将独立业务流程解耦的设计理念快速赢得了大量架构师的关注。更加灵活的部署方式和便捷的服务拼装都使人眼前一亮。大量企业客户,特别是互联网企业基于微服务架构建设信息系统获得了成功。然而,微服务是否适合所有类型的应用系统呢?是否是治愈日益
转载 2024-03-09 09:39:51
18阅读
# DDD落地架构科普指南 领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发的方法论,旨在通过对复杂业务领域的深入理解,来提高软件系统的设计质量。在DDD中,架构设计与业务逻辑紧密相连,这使得开发团队可以更好地应对业务需求的变化。本文将探讨DDD落地架构的基本概念,并通过代码示例帮助读者理解。 ## 理解DDD 在DDD中,核心概念有几个主要部分: 1.
原创 2024-10-18 07:23:19
67阅读
2020 年,新冠肺炎疫情催化数字化生活方式渐成常态。在企业积极进行数字化转型、全面提升效率的今天,几乎无人否认背负“降本增效”使命诞生的 Serverless 即将成为云时代新的计算范式。
原创 精选 2020-12-11 17:35:28
4931阅读
        业务架构的关键是组织机构、业务功能、业务流程等。业务功能靠业务流程实现,业务流程由业务步骤组成。业务架构中,业务流程是关键。         应用架构中,功能和系统是关键。应用架构设计的过程,就是从业务架构到应用架构的映射过程。究其实践主线,就是从业务流程到IT功能,再到IT应用系统的分析与设计的过
# CQRS架构落地实践 CQRS(Command Query Responsibility Segregation,命令查询职责分离)是一种常用的软件架构模式,它通过将读操作和写操作分离,帮助开发者提升应用的可扩展性和性能。本文将通过一个简单的示例来阐述CQRS的落地实操。 ## CQRS基础概念 在CQRS中,系统的写部分(Command)与读部分(Query)是分开的。命令用于更改系统
原创 10月前
32阅读
2020年,新冠肺炎疫情催化数字化生活方式渐成常态。在企业积极进行数字化转型,全面提升效率的今天,几乎无人否认背负“降本增效”使命诞生的 Serverless 即将成为云时代新的计算范式。 Serverless 将开发者从繁重的手动资源管理和性能优化中解放出来,正在引发云计算生产力的新变革。 然而,Serverless 的落地问题却往往很棘手,例如传统项目如何迁移到 Serverless,同时保障
转载 2021-07-16 11:34:01
346阅读
这是Kata迄今为止最令人兴奋的版本,其中包括对Firecracker hypervisor、s390x架构的支持,并提供了与containerd项目集成的方法。Firecracker支持因为知道在功能、资源占用和安全性之间总是存在权衡,Kata Containers项目在设计时就考虑到要支持多个hypervisor。在1.4版本中增加了NEMU,比QEMU更加轻量级。11月底,AWS宣布推出他们
# 整洁架构落地:实践与代码 ## 引言 整洁架构(Clean Architecture)是一种软件设计理念,旨在使系统的各个部分相互独立,从而提高代码的可维护性、可测试性和可扩展性。由罗伯特·C·马丁(Robert C. Martin)提出的整洁架构不仅强调层次化的结构,还关注领域逻辑的独立性和可测试性。在本文中,我们将通过实例和图示来深入理解整洁架构的关键组成部分,并展示如何在实际项目中落
原创 10月前
45阅读
你是否经历过这样的场景: 业务团队对着技术团队抱怨:“你们技术总是听不懂我的需求!我要的是能快速响应市场变化的系
目录宏观出发局部细节注意要点总结:宏观出发1、整体结构的上下顺序为上级依赖于下级。2、色彩搭配不要太唐突,最好有渐变性。3、图形间宽松程度适宜,对称程度适宜。4、虚线框和实线框的结合,实线框表示的关系强烈程度高于虚线框,虚线框更重于逻辑上的关联。局部细节1、用词表达要标准2、业务要全面3、模块划分粒度适宜4、模块摆放以及层级关系:纵向:分层——上层依赖于下层越底层,越是基础服务;横向:并列关系,级
引言业务架构一般不被开发重视,开发人员喜欢追求新技术,而技术是服务于业务的,现在没有一项技术是自娱自乐的,一定要支撑业务,否则没有场景。设计好业务架构要考虑的方面比较多,要做到业务彼此隔离、业务与技术 (平台) 隔离,从业务架构中能看得出整体业务的流程运转、业务产品的能力、业务领域对象…接下来的两篇文章将重点讲业务架构。一、什么是业务架构业务架构是系统架构的一种,那什么是业务架构呢?业务在百科中的
 业务架构、信息架构、技术架构三位一体      客户天天打电话要修改产品功能,简单的一个需求可能要做一个月。产品越改越笨重,为了赶工期bug越来越多。头疼!   产品从初级版到现在已经四个年头,相关的程序员来去换了三批,在补丁上打补丁是常有的事,很多功能只是开了个头,换个项目经理就被遗忘。我们总是害怕客户在这个产品上提出新的需求,只要客户还用得过去,能不改就不改。即使到了非改不可的地步
软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案。而软件开发中最大的挑战,就是即能够快速高效地针对需求、环境的变化做出改变,也能够持续提供稳定、高可用的服务。而软件架构,就是软件系统的骨骼与框架。所谓架构,见仁见智,很难有一个明确或标准的定义;但架构并非镜花水月或阳春白雪,有系统的地方就需要架构,大到航空飞机,小到一个电商系统里面的一个功能组件,
1.3 业务架构(Business Architecture)企业架构开发方法各阶段——业务架构1.3.1 目标描述基线业务架构开发基于原则、业务目标和策略驱动力的目标业务架构,描述产品和/或服务策略,以及业务环境在组织、功能、过程、信息和地理这些方面的内容分析基线和目标业务架构之间的差距选择和开发相关的架构视角,通过这些视角架构师可以阐述业务架构是如何对各干系人的关注点进行解答的。选择与选中的视
转载 2023-08-10 16:29:06
183阅读
功能模块、业务架构、需求分析、用户需求、系统分析、功能设计、详细设计、文档、业务、技术……很多被随口使用的名词,其实是含糊甚至错误的。到底含糊在哪里,错误在哪里,不仅仅是新手软件开发人员糊涂,许多入行多年的老手也一样。虽然很多老手功成名就,挂着CTO、总架构师等研发线的最高头衔,但是心里对这些概念也是一团浆糊。可能有的人会说,不会吧,这些牛人带团队做出了让公司赚钱的系统,怎么会不清楚呢,只不过表达
Java生鲜电商中在做拆单的需求,细思极恐,思考越深入,就会发现里面涉及的东西越来越多,要想做好订单拆单的功能,还是相当有难度,因此总结了一下拆单功能细节,分享出来。 订单拆单拆单也有两个层次,第一次是在提交订单后支付之前拆单,这次是拆分的订单,一次是在下单之后,发货之前,去拆分发货单(SKU层面)。两次拆单的原则不同,第一次拆单是为了区分平台商家、方便财务结算,第二次拆单是为了按照最后的发货包
  • 1
  • 2
  • 3
  • 4
  • 5