Embedded 六边形体系结构在嵌入式系统中的应用
我正在努力研究如何在嵌入式软件系统的环境中使用六边形(端口和适配器)体系结构 如果我理解正确,架构是这样的Embedded 六边形体系结构在嵌入式系统中的应用,embedded,software-design,hexagonal-architecture,Embedded,Software Design,Hexagonal Architecture,我正在努力研究如何在嵌入式软件系统的环境中使用六边形(端口和适配器)体系结构 如果我理解正确,架构是这样的 /-----------------\ /-----------------------------\ | | | | | Application | | Domain
/-----------------\ /-----------------------------\
| | | |
| Application | | Domain |
| | | |
| +----------+ | | +---------+ |
| | +-------------->|interface| | /-------------------\
| +----------+ | | +---------+ | | |
| | | ^ | | Infrastructure |
| | | | | | |
\---------------+-/ | +---+---+ +---------+ | | +----------+ |
| | +---->|interface|<-------------+ | |
Code that allows | +-------+ +---------+ | | +----------+ |
interaction with | | | |
user \--------------------------+--/ \-----------------+-/
Business logic What we (the business)
depend on - persistence,
crypto services etc
/--------------\/-------------------------------------
| | | |
|应用程序| |域|
| | | |
| +----------+ | | +---------+ |
||+------------->|接口|/-------------------\
| +----------+ | | +---------+ | | |
|| | ^ | |基础设施|
| | | | | | |
\---------------+-/ | +---+---+ +---------+ | | +----------+ |
||+--->|接口|这看起来确实是个糟糕的设计。它应该像UART驱动程序->UART HAL->协议处理程序->应用程序逻辑一样,在需要的地方传递数据。对于较小的项目,您可能会选择捷径,但讨论程序设计实际上没有意义。@Lundin,您可能是对的。在我的实现中,我使用了一个称为平台的新边界,它包含HAL和同时指向应用程序和基础结构的驱动程序。但我想看看传统的六角拱是否有办法在这里工作。我还认为“应用程序”是一个不幸的名字。也许它是应用程序前端的缩写?我想你是在太低的层次上应用架构的。据我所知,UART本身静态地定位在某个地方并不是Hexagon架构的一部分。我可以想象一个UART管理器作为“基础设施”(使用您的术语)中的存储库,它将一个物理UART(即一个特定物理UART的驱动程序对象的句柄)传递给“域”,而“域”又将一个抽象的基于串行字符的双向通信对象传递给“应用程序”.@Vroomfondel我倾向于同意你。综上所述,我猜大多数使用HA的系统都会使用完全忽略底层系统的高级API,而在嵌入式世界中,我们需要提供操作系统接口、驱动程序和可能的通用实用程序功能(例如数组大小(c)等)。我想这就是为什么需要一个平台分区的原因。