|心想技术驱动业务,却在背道而驰( 二 )


常见的设计原则:

  • SRP 单一职责
  • OCP 开闭原则
  • LSP 里氏替换原则
  • DIP 依赖倒置原则
  • ISP 接口隔离原则
这些设计原则都有标准的定义 , 我就不一一列出来了 , 不清楚的可以自行网上搜索 。
常见的设计思想:
  • 分层架构
  • 六边形架构
  • 洋葱架构
  • 领域驱动设计
这里的每一个设计思想 , 都够写好几篇文章 , 我这里就不展开了 。
/03 构建完备的领域模型/
上面的四个设计思想 , 要我说哪个最有用 , 肯定是DDD 。 最近几年DDD也被炒的非常火 。
这里的领域模型就是DDD中的概念 。
我算是国内比较早一批接触DDD并运用的人 , 大概在2014年的时候机缘巧合了解到了DDD , 然后啃了两本最经典的书 , 当时给我一种看到世外桃源的感觉(真实感受 , 不夸张) 。
它让代码里的model变得有血有肉 , 好像你在设计一个虚拟城市一样 。 这里需要摆一个物件 , 那么它需要长成什么样子 , 你要尽可能详细的描绘出来;那里需要摆一个人物 , 那么他长什么样子 , 当时正在做什么事 , 也得描绘出来 。
DDD让你摒弃了传统三层架构以数据表为核心的代码设计方式 , 可以让业务含义更多地体现在代码中 。 如此的好处很明显 , 就是你的代码可扩展性必然很强 , 因为你的一个model体现了现实世界中所代表的对象 , 现实中的对象多了一种行为 , 那么给这个model增加一个对应的function就好 。
如果你是一位DDD(领域驱动设计)新手 , 并对DDD感兴趣 , 可以翻阅我2016年写DDD系列文章《如何一步一步用DDD设计一个电商网站》来入门 。 (当时还没开通公众号 , 所以你得到我的博客去看:zacharyfan.com)
不过里面有些内容在后来我有新的理解 , 但并没有更新 。 不过这不影响你体会DDD的优雅 , 所以你还是可以看看 。
当你做好了前面的3步 ,你就具备了驱动业务的前提条件 。
  1. 懂业务 。
  2. 基础架构够稳、弹性够强 。
  3. 现实的问题在技术维度上体现的够清楚 。

|心想技术驱动业务,却在背道而驰
本文插图

在这之上你就可以尝试基于对领域模型的观察找到前面提到的技术能够驱动业务的两个目标:
  1. 当前无法解决的问题
  2. 当前解决效率不高地方

好了总结一下 。
这篇呢 , Z哥和你分享了我对技术驱动业务这件事的看法 。
我认为技术驱动业务的关键并不在于技术多好 , 而在打破惯性思维和对业务的理解深度上 。
所以 , 如果你想真正做到驱动业务 , 不妨先将以下3点基础工作做好 , 否则只是空想而已 。
  1. 理解业务
  2. 稳健、可扩展的基础架构
  3. 构建完备的领域模型
希望对你有所启发 。
推荐阅读:
  • 好的自我介绍 , 面试成功一大半
  • 软件如何优雅地向前兼容?
也可以「关注」我 , 带你以技术思维看世界~
想更进一步和我一起玩耍 , 欢迎「搜索微信公号:跨界架构师」 。
内容包括:架构设计丨分布式系统丨产品丨运营丨个人深度思考 。
【|心想技术驱动业务,却在背道而驰】更多原创精品 , 欢迎加入小圈子 , 请戳【了解更多】


推荐阅读