mcpField
H
HexaGO (A simple ports & adapter architecture example)

HexaGO (A simple ports & adapter architecture example)

本地服务
github.com/edlingao开发工具073 周前更新

关于 HexaGO (A simple ports & adapter architecture example)

HexaGO 是一个用 Go 编写的简易计算器项目,用于演示六边形(端口与适配器)架构,适合学习如何将应用逻辑与外部系统分离。

主要功能

  1. 01演示端口与适配器架构
  2. 02分离核心逻辑与适配器
  3. 03以端口组织接口
  4. 04包含计算器应用

适用场景

  1. 01学习 Go 中的六边形架构
  2. 02了解核心与适配器的边界
  3. 03将小型项目用作架构示例

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

HexaGO(一个简单的端口与适配器架构示例)

这是一个使用端口与适配器架构的简单计算器应用示例。

如何运行

  1. 克隆仓库
  2. 安装 air:go install github.com/cosmtrek/air@latest
  3. 安装 templ:go install github.com/a-h/templ/cmd/templ@latest
  4. 在项目根目录运行 air
  5. 打开浏览器并访问 http://localhost:3000

灵感来源

本项目的灵感来自 Alistair Cockburn 和 Juan Manuel Garrido de Paz(RIP)所著的《Hexagonal Architecture》。

本项目的目的是展示如何在 Go 项目中实现端口与适配器架构的简单示例。

许可证

你可以随意使用本项目。它是免费的开源项目,不附带任何限制。

简介

什么是 hexago?

这是一个用 golang 实现的简易六边形架构(端口与适配器)。

什么是六边形架构?

六边形架构是一种软件设计模式,可将应用程序划分为不同的层。此模式也称为端口与适配器模式。

六边形架构的主要组成部分如下:

  • 核心:这是应用程序的主要部分,包含业务逻辑和领域模型。
  • 端口:这是核心用于与外部世界通信的接口。它们在核心中定义,并由适配器实现。
    • 驱动器:这是端口的实现,负责与外部系统(数据库、API 等)交互。 -- 驱动适配器:这是驱动器的实现,负责在核心与外部系统之间转换数据。
  • 适配器:这是端口的实现,负责在核心与外部系统之间转换数据。

六边形架构的主要优势是让应用程序更易于测试和维护。核心与外部系统解耦,因此可以单独测试。端口和适配器可以轻松替换为不同的实现,因此应用程序可以轻松适应新的需求。

如何使用 hexago?

我喜欢将内部层拆分为多个六边形。 每个六边形都位于自己的文件夹中,并具有如下文件夹结构:

<HexagonName>
├── core
│   ├── <HexagonName>.go
│   └── <HexagonName>_test.go
├── ports
│   ├── driven
│   │   ├── for<Verb><Action>.go // e.g forCreatingUser.go
│   │   └── for<Verb><Action>_test.go
│   └── driving
│       ├── for<Verb><Action>.go // e.g forCreatingUser.go
│       └── for<Verb><Action>_test.go
└── adapters
    ├── db.go
    └── calculatorHTTP.go

core 文件夹包含六边形的业务逻辑和领域模型。

ports 文件夹包含核心用于与外部世界通信的接口。

adapters 文件夹包含端口的实现。

端口是一组接口,用于限制核心与外部系统之间的交互。

如何开始

  1. 克隆仓库
  2. 安装 air:go install github.com/cosmtrek/air@latest
  3. 安装 templ:go install github.com/a-h/templ/cmd/templ@latest
  4. 在项目根目录运行 air
  5. 打开浏览器并访问 http://localhost:3000
Docker 化待办步骤
  1. 将 compose.yml 中的镜像名称更改为你的镜像名称
  2. 将 nginx.conf 中的域名更改为你的域名
  3. 将 .github/workflows/deploy.yml 中的 Docker 镜像名称更改为相同的名称

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。