对构建可复用WebUI组件的思考
曹至梧
2016-01-10 16:55 更新
去公司内部的交流活动参数了一个讲“构建可复用的 WebUI 组件模型”的交流,前面对 WebUI 差异性的分析引发了我的一些思考。
与软件(我猜指的是桌面软件)的 UI 实现不同,WebUI 的实现变动大。我会认为,给予了更多我的实现手段。
造成差异的原因:
- 设计风格
- 代码实现
关于第一点,不同的人,希望看到的界面是不同的,具体来说,界面上的 CSS 不同,图不同, DOM 结构不同。
关于第二点,因为交互的需求不同,同时因为不同的程序员和不同的实现思路,那么写出来的所有代码都可能不同。
我们的目的,是在于包容上面两种差异的情况下,来实现组件的复用。(不过,我没有在 topic 中听到怎么去解决)
提到了几种手段:
- 类的继承
- 类的组合
- 模板系统
这些手段我们都知道,不过,任何一种,至少在现在,我看都不太容易完善地解决以上两种差异产生的问题。
要把界面外观,和交互实现相分离,同时实现复用,我个人认为,必须使两方面在某个点,以约定的规则进行无须沟通的统一。而这个规则的实现,才是我们应该思考的。 任何单方面的去考虑怎么去封装 js 代码,然后让前端开发者去复用,都不可能解决上面所说的差异。
需要同时考虑前端开发者的复用,和前端设计师的复用。而且,这两者复用,还要统一,无须沟通。
一个美丽的远景是:
- 前端开发写代码时不关心具体的页面是什么样,写出的代码没问题,则界同上的交互没有问题。
- 设计做页面不关心交互的流程,页面通过规则验证,则可以保证交互实现不会出问题。
无法完美实现的话,我们只是经常考虑在哪些方面妥协。
评论