By 高焕堂
ee ee
在前面几篇文章以,我们观摩和学习了IBinder、IPlugin等通用性接口设计。于此将进一步带您领悟这些通用性接口的幕后结构。从这幕后结构,您更能理解如何创造出架构的未来性。以软件专业术语来说,这未来性就是系统(或架构)的重构(Refactoring)自由度。
1. 通用性接口的涵意
“通用性”与”特殊性”其实只是相对性而已。在下图里的<I-1>接口,可明显看出它是专属于<Client-1, Server-1>的特殊性接口。
随着企业业务需求的增加,软件系统会含有愈来愈多的特殊性接口;如下图里的<I-1>、<I-2>和<I-n>等。
为了整合这些众多的特殊性接口,通常会设计出通用性接口,来试图统一他们,进而监控(Monitor)它们。如下图里的IMS就是一个通用性接口了。
其实,通用性接口常常示成双成对的,例如上图里的<IMS>是对 Client端的通用性接口;此外,还常常设计一个对 Server端的通用性接口,它就是大家熟悉的EIT造形里的<I>了。如下图所示。
上述的架构,看来颇为合理而美好。那么,又如何设计这两个通用性接口的内涵呢? 那么,又如何从通用性的<I>转换成为<I-1>、<I-2>等特殊性接口呢? 这就是本文的焦点了。接下来,将针对<I>来探讨其设计思维和方法。
2. 通用性接口创造了<重构自由度>
框架设计的两项关键议题是:
- 架构设计如何迅速落实为代码。
- 架构师团队如何给自己创造重构的自由度,以及支持开发者重构的空间。
2.1 迅速落实为代码
架构师以EIT代码造形表述设计;让开发者直接对应到代码。代码造形就如同专块,建筑师叙述如何以砖块组合出形形色色的建筑物;施工者就烧出专块,并按步就班组合起来。其中,EIT造形成为架构思考的简单元素,然后从简单中组合出复杂架构,而框架则是产出的代码层级的架构(亦即,计算机可执行架构)。
基于EIT造形,架构师和开发者都能从简单组合出复杂。亦即:造形很简单,内涵可复杂,重复地组合。让用户获得从简单中叫出复杂的满足感。亦即:优质的用户体验。
2.2 重构的自由度
架构师团队如何给自己创造重构的自由度,以及支持开发者重构的空间,是框架设计的关键议题。这种自由度,决定于架构师是否能仔细分辨出:关注<未来的决策>与关注<今天决策的未来性>的微妙差异了。愈是能关注<今天决策的未来性>,而不是关注<未来的决策>,就愈能创造未来重构的自由度。例如,EIT造形和框架的主角都是接口<I>,愈是关注<目前决策的未来性>时,就愈会想去设计通用性(General)<E>和<I>来包容未来<T>的多变化。而一群<E&I>的巧妙组合,就成为框架了。[ 认识EIT造形 ]
由于EIT造形具有重复组合的特性,人们可以组合出多层级EIT造形体系的结构,进而设计出多层级的框架,就能创造更大的重构自由度。例如,上层EIT造形的<I>能包容用户需求<T>的未来变化;而底层框架则能包容系统平台特殊模块<T>的未来变化。用户需求与平台模块之间藉由两层EIT造形的通用性<I>来衔接与组合,而创造了弹性的重构空间。 ◆
[Go Back]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步