字节架构师DDD(领域驱动设计)巅峰之作,拆解业务代码真好用

至少20年前,一些顶尖的软件设计人员就已经认识到领域建模和设计的重要性,但令人惊讶的是,这么长时间以来几乎没有人写出点儿什么,告诉大家应该做哪些工作或如何去做。尽管这些工作还没有被清楚地表述出来,但一种新的思潮已经形成,它像一股暗流一样在对象社区中涌动,我把这种思潮称为领域驱动设计(domain-driven design)。

过去10年中,我在几个业务和技术领域开发了一些复杂的系统。我在设计和开发过程中尝试了一些最佳实践,它们都是面向对象开发高手用过的领先技术。有些项目非常成功,但有几个项目却失败了。成功的项目有一个共同的特征,那就是都有一个丰富的领域模型,这个模型在迭代设计的过程中不断演变,而且成为项目不可分割的一部分。

本书为作出设计决策提供了一个框架,并且为讨论领域设计提供了一个技术词汇库。本书将人们普遍接受的一些最佳实践综合到一起,并融入了我自己的见解和经验。面对复杂领域的软件开发团队可以利用这个框架来系统性地应用领域驱动设计。

内容提要

本书是领域驱动设计方面的经典之作,全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些最佳实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计最佳实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。适合各层次的面向对象软件开发人员、系统分析员阅读。

限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴可以文末获取↓↓↓

本书分为4个部分。

第一部分“运用领域模型”

提出领域驱动开发的基本目标,这些目标是后面几部分中所讨论的的实践的驱动因素。由于软件开发方法有很多,因此第一部分还定义了一些术语,并给出了用领域模型来驱动沟通和设计的总体含义。

第二部分“模型驱动设计的构造块”

将面向对象领域建模中的一些核心的最佳实践提炼为一组基本的构造块。这一部分主要是消除模型与实际运行的软件之间的鸿沟。团队一致使用这些标准模式就可以使设计井然有序,并且使团队成员更容易理解彼此的工作。使用标准模式还可以为公共语言贡献术语,使得所有团队成员可以使用这些术语来讨论模型和设计决策。但这一部分的主旨是讨论一些能够保持模型和实现之间互相协调并提高效率的设计决策。要想达到这种协调,需要密切注意个别元素的一些细节。这种小规模的仔细设计为开发人员提供了一个稳固的基础,在此基础上就可以应用第三部分和第四部分讨论的建模方法了。

第三部分“通过重构来加深理解”

讨论如何将构造块装配为实用的模型,从而实现其价值。这一部分没有直接讨论深奥的设计原则,而是着重强调一个发现过程。有价值的模型不是立即就会出现的,它们需要对领域的深入理解。这种理解是一步一步得到的,首先需要深入研究模型,然后基于最初的(可能是不成熟的)模型实现一个初始设计,再反复改进这个设计。每次团队对领域有了新的理解之后,都需要对模型进行改进,使模型反映出更丰富的知识,而且必须对代码进行重构,以便反映出更深刻的模型,并使应用程序可以充分利用模型的潜力。这种一层一层“剥洋葱”的方法有时会创造一种突破的机会,使我们得到更深刻的模型,同时快速进行一些更深入的设计修改。

 

第四部分“战略设计”

讨论在复杂系统、大型组织以及与外部系统和遗留系统的交互中出现的复杂情况。这一部分探讨了作为一个整体应用于系统的3条原则:上下文、提炼和大型结构。战略设计决策通常由团队制定,或者由多个团队共同制定。战略设计可以保证在大型系统或应用程序(它们应用于不断延伸的企业级网络)上以较大规模去实现第一部分提出的目标。

本书通篇讨论使用的例子并不是一些过于简单的“玩具式”问题,而是全部选自实际项目。

限于文章篇幅原因,就展示到这里了,有需要的小伙伴可以查看下方名片↓↓↓

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
字节数据bp笔试搜索业务方向是指字节跳动面向搜索领域的岗位,该岗位需要具备搜索算法、搜索引擎相关的技能和知识。 首先,搜索业务方向要求应聘者具备扎实的计算机基础知识,包括数据结构、算法、操作系统等方面的知识。在搜索引擎的开发过程中,需要处理大量的数据,因此对于数据结构的选择和算法的优化是至关重要的。 其次,搜索业务方向需要应聘者熟悉搜索引擎的原理和技术。搜索引擎是一种用于从海量数据中查找和检索相关信息的系统,其中包括爬虫、索引、查询和排名等模块。应聘者需要理解这些模块的工作原理,并能够使用相关的工具和技术进行开发和调优。 此外,搜索业务方向要求应聘者具备良好的编程能力和代码质量。在搜索引擎的开发过程中,需要编写高效、可靠、易于维护的代码,以满足各种搜索需求。应聘者需要熟悉常用的编程语言和开发框架,并能够使用它们进行项目的实现和优化。 最后,搜索业务方向需要应聘者具备良好的团队合作能力和沟通能力。在搜索引擎的开发过程中,需要与产品、设计、运营等多个团队进行协作。应聘者需要能够与其他团队成员有效沟通,理解和满足他们的需求,共同推动项目的进展。 综上所述,字节数据bp笔试搜索业务方向需要应聘者具备扎实的计算机基础知识、熟悉搜索引擎的原理和技术、具备良好的编程能力和代码质量、以及良好的团队合作和沟通能力。只有具备这些技能和素质,才能在搜索业务方向上取得较好的表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值