杂谈 - 对开发人员屏蔽架构上的复杂性

189 阅读2分钟

前言

当下各种架构层出不穷,设计上也是越来越健壮臃肿,普通开发人员的关注点是否应该放在这个上面呢?

 

思路

先来看红帽软件大拿的一个理念,基本上可以涵盖当前绝大部分软件架构的设计方向。

Red Hat 首席架构师 Bilgin Ibryam 提出了 multi-runtime 的理念。runtime 作为理论的出发点,Bilgin Ibryam 提出现代分布式应用程序的需求分为 4 类,分别是生命周期(lifecycle)、网络(networking)、状态(state)和绑定(binding)。

  • 生命周期:编程语言会指定生态系统中的可用库、打包格式和运行时,自动化部署、弹性伸缩、自愈等代表了应用程序生命周期的需求。
  • 网络:从更广泛的角度去掌握网络,例如 DNS、流量管控。
  • 状态:依赖于底层的状态的分布式能力,如缓存、服务编排和工作流、分布式单例、临时调度。
  • 绑定:在跟外部系统的集成过程中,依赖于协议转化,错误恢复等能力。

 

一般情况下,开发人员只需要关注黄色区域的内容就可以了。至于其他东西,比如服务治理、流量控制、性能监控之类,在开发过程中不需要过多关注。

为什么需要

这是因为开发人员通常会专注于实现具体的功能,而不是系统整体的设计和架构。如果开发人员需要深入了解系统的架构和设计,可能会浪费大量时间和精力。

而屏蔽架构上的复杂性可以使开发人员更加专注于实现具体的功能,从而提高开发效率和代码质量。

如何做

  • 提供清晰的接口文档,让开发人员只需要关注接口的实现而不必了解具体的实现细节。
  • 为开发人员提供易于使用的工具和框架,使其能够快速地开发和测试代码,而不必了解系统的整体结构。
  • 将系统分解为小的、独立的模块或组件,每个模块只负责一个特定的功能,使得开发人员只需要关注自己的模块即可。

弊端

当然,一个事情总是有利有弊的。

对于企业来说,这样可以大大提升效率,减少不必要的人力浪费。

对于个人来说,也是非常明显的。总的来说就是不利于开阔程序员的视野,提升自身的专业能力和市场竞争力