架构设计之学新而知故

缘由

因为一些特殊的机缘,接触到洋葱架构等一些新架构设计概念。

尝试理解了一段时间,就想简单梳理下对它们的理解,以达到学新而知故 😃

信息增益

以前计算机专业并不设置通信领域的信息论的专业课程,但是,信息论的知识,应该是每个计算机从业者必知必会的概念。

区别信息之间的相同与差别,找出相同和不同,才能将掌握的信息量增加,以达到学新而知故!

  • 集中精神、注意观察、多试几次!

多试几次这步,信息量的增加是核心要诀,不然,都是无效的徒劳

所以,我总在信息量不增加的情况下,宁肯抱残守缺,并不选择继续重试,必须在找到新方法、新工具、新视角情况下,展开下一次尝试!

以前积累的架构设计

  • 分层设计
  • MVC设计

新学习的架构

  • 六边形架构
  • 洋葱架构

架构设计更高层面的哲学

  • 高内聚、低耦合
  • 单一职责
  • 依赖倒置,利用稳定接口将变化隔离
  • 稳定之锚必须存在,不然,无法建构一个系统,犹如在沙滩上搭建房子一般
  • 即使是依赖倒置这种场景,也有稳定的部分和变化的部分

分层设计

分层设计,层次之间拥有稳定的接口,但层次与层次之间在细节上无关的,代表着高内聚和低耦合、单一职责设计原则指导下的隔离。

其典型代表是网络协议栈

当协议栈处理网络层IP协议时,并不需要关心传输层TCP/UDP层的具体报文,而仅仅将其看成有效载荷,进行无差别的处理而已。

在这里插入图片描述

  • 另外,分层设计需要注意自举能力,通过功能分解,最终完成大功能的自举过程

MVC设计

MVC设计,按照职责进行分割系统,如以用户为视角,从前端View,到中台Controller,再到数据后端Model。

在这里插入图片描述
从结构上来看,与分层设计并无太大区别,但是,具有新意,在WEB系统场景,使得对于理解和实践分层设计很有帮助。

六边形架构和洋葱架构

两种新的架构,着重于依赖倒置原则,将依赖外悬进行适配,或分出不同的圈层进行隔离,以利于核心业务层的稳定。

如果说,分层设计对上层的依赖仅为有效载荷的假设,六边形架构和洋葱架构,则允许更多的假设,
但采用依赖倒置的办法,在外层圈层将这些依赖固化后,而在核心层可以进行无差别的接口假设进行执行。

六边形架构和洋葱架构,退化来看,也是一种分层设计,但还是有所着重。在适应的场景,用其进行建构更方便,用其长处!

当分层演变为多边形

在这里插入图片描述

当简单的分层设计出现比较严重跨层的耦合时,例如,途中红色的线,实际上出现多边形结构。

这时看是否设计上向六边形架构和洋葱架构靠拢。

六边形架构

在这里插入图片描述

洋葱架构

在这里插入图片描述

树形架构

以前刚毕业时,自己也曾有:在枝叶处确定细节,在主干区无差别地进行共同处理

此种无名气的设计思想,是否也可以理解为,在六边形架构和洋葱架构之外,另外一重诠释呢?

设计的稳定之锚

纵观各种架构设计,居于内层的领域模型,必须是稳定之锚。

然后,合理地区分变化和稳定的关系,迭代、重构开发,谁也无法提前理解全部,哈哈

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器的建模与仿真展开,重点介绍了基于Matlab的飞行器动力学模型构建与控制系统设计方法。通过对四轴飞行器非线性运动方程的推导,建立其在三维空间中的姿态与位置动态模型,并采用数值仿真手段实现飞行器在复杂环境下的行为模拟。文中详细阐述了系统状态方程的构建、控制输入设计以及仿真参数设置,并结合具体代码实现展示了如何对飞行器进行稳定控制与轨迹跟踪。此外,文章还提到了多种优化与控制策略的应用背景,如模型预测控制、PID控制等,突出了Matlab工具在无人机系统仿真中的强大功能。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程师;尤其适合从事飞行器建模、控制算法研究及相关领域研究的专业人士。; 使用场景及目标:①用于四轴飞行器非线性动力学建模的教学与科研实践;②为无人机控制系统设计(如姿态控制、轨迹跟踪)提供仿真验证平台;③支持高级控制算法(如MPC、LQR、PID)的研究与对比分析; 阅读建议:建议读者结合文中提到的Matlab代码与仿真模型,动手实践飞行器建模与控制流程,重点关注动力学方程的实现与控制器参数调优,同时可拓展至多自由度或复杂环境下的飞行仿真研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值