2022年4月24日
Javascript 是一种单线程语言。这意味着它有一个调用栈和一个内存堆。正如预期的那样,它按顺序执行代码,并且必须在执行下一段代码之前完成一段代码。它是同步的,但有时可能是有害的。例如,如果一个函数需要一段时间才能执行或必须等待某事,它会同时冻结所有内容。 发生这种情况的一个很好的例子是窗口警报功……
阅读全文
2022年4月17日
自从著名设计师 Ethan Marcotte(@beep)在 A List Apart 上发表了一篇名为《 Responsive Web Design 》的文章之后,响应式网页设计(RWD,即 Responsive Web Design)的身影就出现在了公众面前。自此就有了响应式 Web 设计这个概念。从提出这个概念到今天已经有十多年的时间了。在这十多年来,CSS 也发生了巨大的变化,新增……
阅读全文
2022年3月23日
GC:Garbage Collection(垃圾回收是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。)GC过程中无需程序员手动执行,GC机制在现代很多编程语言都支持,GC能力的性能与优劣也是不同语言之间对比度指标之一。 关于Golang的GC在演进过程……
阅读全文
2022年3月22日
前面我们重点讲述了领域建模、微服务设计和前端设计方法,它们组合在一起就可以形成中台建设的整体解决方案。而中台大多基于分布式微服务架构,这种企业级的数字化转型有很多地方值得我们关注和思考。 我们不仅要关注企业商业模式、业务边界以及前中台的融合,还要关注数据技术体系、微服务设计、多活等……
阅读全文
2022年3月22日
我们前面已经讲了很多 DDD 的设计方法和实践案例。虽然 DDD 的设计思想和方法很好,但由于企业发展历程以及企业技术和文化的不同,DDD 和微服务的实施策略也会有差异。那么面对这种差异,我们应该如何落地 DDD 和微服务呢?今天我们就来聊聊微服务的设计原则和演进策略。 微服务的演进策略 在从单体向微服务演进……
阅读全文
2022年3月22日
为了更好地理解 DDD 的设计流程,今天我会用一个项目来带你了解 DDD 的战略设计和战术设计,走一遍从领域建模到微服务设计的全过程,一起掌握 DDD 的主要设计流程和关键点。 项目基本信息 项目的目标是实现在线请假和考勤管理。功能描述如下: 请假人填写请假单提交审批,根据请假人身份、请假类型和请假天数进行校……
阅读全文
2022年3月22日
微服务架构通常采用前后端分离的设计方式。作为企业级的中台,在完成单体应用拆分和微服务建设后,前端项目团队会同时面对多个中台微服务项目团队,这时候的前端人员就犹如维修电工一样了。 面对如此多的微服务暴露出来的 API 服务,如何进行正确的连接和拼装,才能保证不出错?这显然不是一件很容易的事情……
阅读全文
2022年3月22日
在 DDD 分层架构和微服务代码模型里,我们根据领域对象的属性和依赖关系,将领域对象进行分层,定义了与之对应的代码对象和代码目录结构。分层架构确定了微服务的总体架构,微服务内的主要对象有服务和实体等,它们一起协作完成业务逻辑。 那在运行过程中,这些服务和实体在微服务各层是如何协作的呢?今天……
阅读全文
2022年3月20日
前几讲我们已经介绍过了,在用 DDD 进行微服务设计时,我们可以通过事件风暴来确定领域模型边界,划定微服务边界,定义业务和系统运行边界,从而保证微服务的单一职责和随需而变的架构演进能力。 那重点落到边界的时候,总结一下就是,微服务的设计要涉及到逻辑边界、物理边界和代码边界等等。 那么这些边界……
阅读全文
2022年3月20日
一个成功的事件风暴会议——以及一个成功的软件项目——需要同等的艺术、知识和技术技能。此外,对便笺进行更改比对生产代码进行更改要便宜得多。通过编写代码来了解您的系统是理解和完善所涉及的业务流程的一种非常昂贵的方法。 本文中的任何内容都不需要技术专业知识或以前使用反应式事件驱动系统……
阅读全文