知识卡片
"满足需求的最小自由":交互界面上折中一致性与灵活性
内容
交互界面是用户体验感知最强的部分,如果完全交给引擎统一实现,会因为界面是业务中最易变的部分而让引擎维护成本失控;但如果完全放给各产品自由发挥,又会重新制造出插件化本来要消灭的碎片化问题。U系统给出的折中方案是:允许插件配置里像写HTML一样,用预定义的控件(文本框、下拉列表、日期选择器等二十多种通用控件)自由组合出界面结构,但不允许插件自定义CSS和JS,控件的实际渲染样式和排版逻辑完全由引擎统一负责;遇到通用控件库确实无法覆盖的特殊交互需求,也是由引擎方去开发新控件,而不是开放给业务方自己实现。这套安排背后的原则可以概括为”只给业务方满足需求所必需的最小自由”——业务方能决定”用哪些控件、按什么顺序组合”,但不能决定”控件长什么样、怎么渲染”,把自由度精确限定在真正需要个性化的维度(控件选择与排版),而在容易造成体验割裂的维度(视觉样式)上保持强约束。这个思路对任何”既要允许下游定制、又要保证整体一致性”的平台型设计都有参考价值:与其笼统地讨论”开放多少自由”,不如先把自由度拆解到不同维度上分别决策,只在真正需要差异化的维度放开,其余维度维持统一。
参考来源
- 位置:《高可用架构(第1卷)》第2章《高可用架构原理与分布式实践》"2.3 解耦的艺术——大型互联网业务系统的插件化改造"节,"2.3.2 如何处理用户交互"(源文件:_epub-src/OEBPS/Text/Chapter2_3_3.xhtml)
- 结论依据:原文说明"在插件中可以像HTML一样指定文本框、下拉列表等控件,自由地构造界面,但不能自定义CSS和JS,而是由平台统一渲染和校验",并总结"因只提供给产品'满足需求的最小自由',整个系统交互的用户体验还是很统一的",直接支撑本卡片结论。
- 原始内容:在插件中可以像HTML一样指定文本框、下拉列表等控件,自由地构造界面,但不能自定义CSS和JS,而是由平台统一渲染和校验……从结果来看,因只提供给产品"满足需求的最小自由",整个系统交互的用户体验还是很统一的。