做开源项目和企业项目不同的地方在于,前者的目标是在封装的同时,尽量去保持灵活性和可扩展性。这是一种开闭原则——对实现封闭,对扩展开放。这使得开源库/组件可以适用所有场景。
然而在设计可复用的业务组件时,我们通常考虑的是,该组件在复用时能不能尽量少写代码?
这里所指的代码,就是通用的基础组件为了遵循开闭原则而留待业务方自己实现的逻辑。举个例子,我们在 ant design 基础组件的基础上,试图把 Form 和 Table 组合为一个解决「对数据进行条件查询、展示、操作」的高层业务组件。
在设计这个组件时,如果我们希望这个组件适合所有场景,我们需要使以下几点具有可扩展性: