从最原始需求出发,我们必须有一个最简单的实现类,这个类必须是可继承的。方便之后不同的业务需要做不同的扩展。我们必须确保这个类的稳定性。
简单实现类的定义:鼠标点击触发某容器,不带任何辅助效果。我们来想想,这么简单的一个类,需要包含哪些方法,搭个骨架出来:
这是所有满足本文定义的简单实现类所需的基本方法,我们可以将它作为一个基础方法,方便满足简单类定义的交互形式在此基础上扩展,然后我们开始归纳常用的满足简单类定义的交互形式,如:tab切换,气泡提醒,下拉列表,xbox……
这个类,我们可以抛开业务需求,简简单单的实现最基础的交互形式,相信这个脚本已经能满足日常中60%的需求了,当然这对于一个业务极其复杂的公司而言,是远远不够的,所以重点来了,在面临多变的需求和复杂的业务需要时,我们该如何应对?
假设接到一个新需求:需要做一个形如支付宝首页广告切换的效果,通常大家会是怎么样一个思路呢?我想应该是重新定义了一个类,堆了一堆的方法进去,对于一个团队协作的JS开发模式来说,这种做法并不幽雅
我们基于上面的规划,首先你的大脑终端扫描,对比,定位要实现的这个新效果,在简单类中是否有相似的原型。结果很显然,那么我们接下去要做的只是针对首页特殊的交互效果,基于简单类中的xtab做一个继承扩展,形如:
这样做的好处在于,避免不同的业务场景下不同的需求把我们的基础组件撑的越来越大,降低耦合度过高带来的修改风险。当然这种模式也很大程度的提升了开发效率。
说到这里,抛个个人看法,YUI,实在不是最理想的团队JS开发协作模式,至少个人觉得不适合目前支付宝前端开发团队,或许我们应该反思一下我们某些组件中闭包的应用是不是不合时宜…
未完,待续…
Tags: javascript, 团队协作, 设计模式这是一个比较有意义的课题,期待更多人的发言
老鱼已经站在更高的角度在看问题了哦
牛人啊,膜拜~~
i want your twitter baby
有点启发,我好好想想
啥叫大局观,哈哈,老鱼你行的
恩,看了以后有少少的感触,关注ing
这个看看还是不错的,一直都关注楼主的文章.
老鱼的文章亚克西…
[...] 近日,看了玉伯写的《构建前端UI组件的新思路》一文,让我追忆起去年自己分享的一篇P文《随感协同开发的JS设计模式》,有几分共鸣…… [...]