美文网首页
工程架构 2023-02-17

工程架构 2023-02-17

作者: 9_SooHyun | 来源:发表于2023-02-16 23:43 被阅读0次

工程架构设计的核心是面向接口编程

展开来讲,就是架构需要分层,层之间通过interface交互而不依赖具体实现,达到高内聚低耦合的效果

什么是好的工程架构

  • 不依赖特定UI
  • 不依赖特定框架。从web框架换成桌面应用框架,whatelse,不影响业务逻辑
  • 不依赖特定外部组件。例如可以使用任意db,如mysql、mongo,不与某一基础设施强耦合

如何做到好的工程架构

总的原则还是面向接口编程,接口可以解耦,可以替换成任何不同的具体实现而不影响业务逻辑本身

clean-architectrue.JPG

具体地,一个好的工程架构如上图示范

  • 越外层(主要指使用的基础设施)越具体,越容易变化;越内层(主要指业务逻辑本身)越抽象越核心,越不容易变
  • 内层是高度抽象的,只能跟着业务逻辑变化,而不受基础设施变化的影响。内层不能依赖外层,而是外层依赖内层。那么如何理解DB这些基础设施要去依赖内层的业务逻辑?这是因为,是业务逻辑定义了外部基础设施的interface,然后随便你什么基础设施去做interface的具体实现,把具体实现注入到内层(如use cases)即可(内层预留注入口)

说到这里可能还是略微有点抽象,其实golang的OpenTelemetry-Go就是个很好的案例

OpenTelemetry-Go提供了一套Telemetry interface,也提供了具体实现
当然,如果你不喜欢它的实现,你可以自行对Telemetry interface进行实现

任何的具体实现,都可以通过如SetTracerProvider这类的方法注入到工程中使用

// SetTracerProvider registers `tp` as the global trace provider.
func SetTracerProvider(tp trace)

相关文章

  • 安卓工程指南

    1. Project guidelines 工程指南 1.1 Project structure 工程架构New ...

  • 情绪取向疗法的重要技术

    2023-02-17 重要技术 1肯定(Validation) 2同理反映(Empathic Reflection...

  • 数据仓库架构师的岗位工作职责及应具备的能力

    技术研发类岗位包括大数据架构师、数据仓库架构师、大数据开发工程师、数据采集工程师、数据仓库开发工程师、系统开发工程...

  • iOS架构

    公司项目采用了这个架构开发。 讲iOS架构不得不说到工程目录,我的工程目录由business、common、loc...

  • Vue.js | 365笔记第9天 |vue.js结构

    Vue项目架构 一、工程说明: 二、工程注意事项: 三、工程目录结构: 四、打包发布流程;

  • 工程管理架构

    项目经理 全面负责 十几年深耕水务的经验 技术负责人 开工前,技术的全面交底 项目副经理 负责施工计划,安全全面落...

  • RN 工程架构

    参考

  • 第二天,前景规划

    岗位方向包括: 架构师、运维开发工程师、应用架构师、云计算运维工程师、大数据运维工程师等 知识技能进化方向: 1、...

  • 蚂蚁金服技术风险部招人啦

    蚂蚁金服技术风险部招人啦,技术风险研发工程师、应用运维工程师、Python开发工程师、资金安全架构师、高可用架构师...

  • 工程架构能力对于做好机器学习重要吗?

    摘要:做好机器学习到底对工程架构能力有要求吗?看看技术大牛如何说? 工程架构能力对于做好机器学习到底重要吗?可能很...

网友评论

      本文标题:工程架构 2023-02-17

      本文链接:https://www.haomeiwen.com/subject/ielmkdtx.html