前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术VP上任后的首次“大战”,全靠DDD才翻盘

技术VP上任后的首次“大战”,全靠DDD才翻盘

作者头像
用户6983566
发布2023-01-14 14:38:31
3790
发布2023-01-14 14:38:31
举报
文章被收录于专栏:findyifindyi

阅读本文大概需要7分钟。

要说程序员想进阶,架构是不可能绕开的最重要环节之一。懂架构设计是高级工程师甚至技术专家的分水岭,是告别重复劳动码农的第一步。

对于技术管理者来说懂架构更重要,不懂架构的技术管理者极难服众,也无法带领团队完成复杂的重构工作。

18年我加入哒哒少儿英语,担任技术VP,上任的第一件事就是参与重构整个公司的架构,深入了解了下,我们首先把公司当时的架构画出来了,简单点说就是个大泥球架构:

这家公司的数据库是单库模式,一张表就有几百个字段,简直搞死人。

当时公司已经惨到只要改一个功能就得测试2周的悲惨境地,线上出一个故障技术团队更是惶惶不可终日。

我很快明白,如果搞不定这个工作,这次空降就基本算失败了。

在巨大的压力之下,我果断选择了DDD架构来应对这次大重构,原因也很简单:DDD特别适合应对复杂的业务场景,同时能有条不紊的推进重构全流程。

耗时2周我们才完成第一步:深入了解了这个大泥球和对应支撑的业务。

接下来耗时1个月,采用DDD领域设计:

在充分了解业务之后,基于领域模型,我们做了对业务的拆解:

接下来我们最终确定了新架构的六大关键元素:

  • 前端业务模块
  • 支撑业务模块
  • 核心业务模块
  • 中台服务模块
  • 平台服务模块
  • 基础架构模块

基于领域模型的拆解,我们还确定了六大关键元素之间的并列、包含、支撑关系。

然后我们设计出了新的架构:

以上,是我们确定的公司的新的技术架构图,紧接着团队攻坚3个月,按照架构图的设想重构了公司的技术框架。

重构完成后,公司的程序员们再也不用为了一个bug拔光自己的胡子了,而我也在新公司站稳了脚跟。

事实上,作为软件开发方法学层面的DDD,并不仅仅局限于像微服务这样特定的架构风格,而是在企业数字化转型中有着广泛的应用。因此,目前各大公司也纷纷在核心业务中落地 DDD,例如京东物流、阿里零售、美团等等。

虽然 DDD 在这几年越来越流行,但不少人对 DDD 的基本概念、核心技能还不能充分地掌握,从而影响了 DDD 的学习和落地。

DDD 到底是什么?

DDD,也就是“领域驱动设计”,是一种开发复杂软件的系统化方法学思想。它继承了面向对象和敏捷方法的精华,并提炼了一套更容易掌握的原则、模式和实践,特别适合复杂的企业应用的开发。

一方面,数字化时代为软件开发带来了新的挑战。如何实现业技融合,如何应对复杂多变的需求,如何防止架构和代码的腐化等问题,需要新的解决办法。而 DDD 正是顺应了时代的要求,日益普及起来。

另一方面,优秀的工程师,尤其是想挑战架构师角色的同学,DDD 更是必修内容。这点在很多大厂招聘要求上也能看到,毕竟大厂软件更复杂,需求变化快,而且代码工程的规模也更大,这些都需要你深入了解和实践过 DDD。

那么,怎样跨越学习 DDD 的门槛,扫清落地 DDD 的障碍呢?虽说难点不少,但是你也大可不必担心。DDD 的学习还是有方法,有诀窍的。我们需要的是一套既有理论高度,又顾及实践细节;既能深入复杂概念,又符合认知规律的学习方法。

这里给大家分享一张Thoughtworks 首席架构咨询师钟敬梳理的「DDD 学习」知识地图,内容出自于《手把手教你落地 DDD》专栏,你可以跟着这个“套路“建模型、写代码,拾级而上,循序渐进地掌握 DDD:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 findyi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DDD 到底是什么?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档