在这篇文章中,我们将从 Univer SDK 的接口层 Facade API 说起,讨论我们如何让 Univer 更易用,服务更广泛的用户群体。
Univer 的设计目标
Univer SDK 的架构设计从一开始就确立了以下几个目标:
- 通过插件系统灵活扩展非核心功能,支持用户个性化需求,并允许用户和社区开发插件。
- 高度可定制和可扩展,以满足复杂应用的需求。
- 为大型项目提供长期的可维护性和可测试性。
- 提供卓越的开发者体验。
为实现这些目标,我们引入了诸多机制,如插件系统、依赖注入和命令系统等。然而,这些机制的引入也带来了副作用:直接使用 Univer 的底层 API 开发门槛较高,可能会影响开发者体验——这一点与我们的目标“提供卓越的开发者体验”有所冲突。
幸运的是,“计算机科学中的所有问题都可以通过添加一个间接层解决”,我们引入了 Facade API 作为 Univer SDK 的接口层,封装内部复杂度,为用户提供直观、易用的 API 接口。、
官网链接:Univer Go
简单易用的 Facade API
使用 Facade API 非常简便。如果你使用 Univer Presets,我们会自动为你创建 univerAPI
,你可以立即开始开发:
const { univerAPI } = createUniver({ locale: LocaleType.ZH_CN, locales: { [LocaleType.ZH_CN]: merge( {}, UniverPresetSheetsCoreZhCN, ), }, theme: defaultTheme, presets: [ UniverSheetsCorePreset({ container: 'app', }), ],}); const sheet = univerAPI.getActiveWorkbook().getActiveSheet();const range = sheet.getRange('A1');range.setValue('Hello, Univer!');
可扩展的接口设计
在