背景
工作需要,以及技术追求。最近想研究一下「平台 + 插件」体系当中,插件系统应该如何设计。先从体验开始,先选最近比较火的小鲜肉 Monday 吧,开搞。
名词与基本概念
从 Monday 的帮助文档,可以知晓一些基本概念:
Board
Within a board, there are four main components that you should familiarize yourself with: Groups, Columns, Items, and Subitems.
- Groups help to organize and categorize the information on your boards in any way that you wish.
- Columns bring the data from your board to life, allowing you to customize the way your data is displayed.
- Items are the individual rows on the board which can be used to manage and track any kind data, whether it is projects, tasks, clients, or much more.
- Subitems add another level of hierarchy on your board by allowing you to add an additional level of information within the items on your board.
一图胜千言
点击 Add Column,可以看到能选多种数据类型,由此可初窥 Monday 的数据类型设计。
Workspaces
每个 workspace 下面可以新建 Board、Doc 等很多看板页面。注意,新建视图页面也可以选 Apps,也就是说 App 里的内容是可以在这里展示的。
Folders
Folder 就是 Board、Doc、Dashboard、Apps 等的聚合,个人理解只是方便管理而已。
Monday App - views and widgets
下面来看一下 App 的能力:
The monday apps framework allows you to build a variety of features, including:
- board views
- item views
- custom object views
- app settings views
- dashboard widgets
Each feature can display and manage monday.com data, but lives in a different context:
- Board views are connected to a single monday.com board
- Dashboard widgets are connected to multiple boards
- Item views are connected to a single item on a board
划重点:
- Board views 适用于单个 board
- Dashboard widgets 适用于多个 boards
- Item views 适用于某个 board 的某个 item
Board view
就是可以在 workspace 或 folder 下新建列表中 Apps 类型里面可以选择到的。选择并新建之后,就可以在看板列表看到,进入之后就可以操作了。见下图
Item view
点击某条数据后,弹出抽屉里展示的内容。见下图
Custom objects
TODO:可以在添加按钮的列表里,但不太明白啥意思
Account settings view
下面几个貌似是插件安装界面的展示,介绍,跳转什么的。
Settings tab
Button in the view settings
Admin section
Doc actions
插件有能力在 Monday Workdocs 的工具条里面加入自己的选项和功能。见下图
Dashboard widget
仪表盘里面的组件,就是自己做一个图表。
总结
其实除了 wiews and widgets 还有个 integration recipes,可以把自己的应用或系统,通过(Trigger -> Action)的方式进行联通。暂时我们先不深入研究这种集成了,先只研究下怎么搞一个「看得见」的 App。
总结一下,我们试着画一下 Monday 的概念关系图:
Account -> Workspace -> (Folders)|-> Board* -> Goup -> Item |-> Column
| |-> Item View*
|-> Dashboard -> Widgets*
|-> Doc*
|-> App View*
|-> Custom objects*
|-> Others
其中标了 * 的元素是 App 能够影响到的,也就是 App 有能力实现功能的地方。有了这些概念的铺垫,接下来我们就开始新建一个 App 了。我们下篇继续……