软件架构下的代码分层详解

102 阅读3分钟

欢迎关注我的wechat公众号:程序员技术成长之路
欢迎投递简历,可以帮忙内推

导读

        项目代码需要分层主要是为了降低复杂性,提高代码的可读性和可维护性,同时能提高代码复用性,有利于团队协作和专业化分工,而且也有助于降低系统各部分之间的耦合度,增强应用的灵活性和可扩展性。

1-简单项目

  1. 展示层(Presentation Layer):这一层主要是跟用户进行交互的界面层,它展示了用户所看到的前端页面和操作的逻辑。

  2. 服务层(Service Layer):这个层主要提供业务的逻辑处理,比如一些算法和数据处理的逻辑。

  3. 数据访问层(Data Access Layer):这一层主要涉及到对数据库的操作,包括对数据库的增删改查。

  4. 数据库层(Database Layer):这一层就是实际的数据库存储层。

    项目代码的分层可以帮助我们构建结构更清晰、维护更方便的代码,同时也有利于团队协作开发。每个层级都有其对应的职责和任务,降低了系统各部分之间的耦合度。

640.png

2-复杂项目

对于复杂的项目代码,一般会有更多的层级,每一层有其专门的职责和任务。具体的分层可能因项目类型和开发框架的不同而不同,但常见的分层有以下几种:

  1. 用户界面层(UI层):这一层主要负责与用户进行交互,包括页面展示和输入输出处理。
  2. 业务逻辑层:这一层负责处理应用程序的核心业务逻辑,如数据验证、计算等。
  3. 数据访问层:这一层主要负责与数据库或其他数据源进行交互,执行增删查改等操作。
  4. 数据服务层:这一层常见于分布式应用,负责数据的分发和同步,以支持跨平台、跨设备的数据访问。
  5. 公共组件层:这一层包含了一些底层公共的代码模块,如工具类、公共函数等。
  6. 配置和安全层:这一层负责应用的配置管理和安全控制,如用户权限、日志记录、异常处理等。
  7. 测试层:这一层可以单独拿出来,主要是进行单元测试、集成测试、性能测试等。

3-微服务分层

  1. 接口层(API层):这一层主要负责提供对外的接口服务,可以是RESTful API,GraphQL等等。通常由一个API Gateway或BFF(Backend for Frontend)来处理。
  2. 业务逻辑层(Business Logic Layer):这一层主要提供业务的逻辑处理,是微服务的核心部分。
  3. 数据访问层(Data Access Layer):这一层主要负责数据库或其他存储服务的交互。
  4. 基础服务层:这层主要提供一些公共的基础服务,如认证、日志、配置管理等。
  5. 数据库层:这一层通常位于微服务的最低层,用于存储微服务处理的数据。
  6. 服务治理层:负责服务的注册、发现、熔断、限流等。