关于M.js槽点的几个说明
咱天在幸在w3ctech第21期分享了我们团队的M.js,虽然M.js还存在很多问题,虽然我说的也不是很明白,但通过这次分享学习到很多新的知识。
貘大讲话之前有两位同学的提问,很杯具我没听明白,然后又很杯具的所答非所问了,原谅我这个菜鸟吧……幸好貘大给解释了下。那么就貘大解释的问题我可以说明一下:首先,是我例子举的不对。因为其实我的粒度是控制在一个完整的业务上,而非系统级别。如果是系统级别,我还是很推荐总线调度。但不管是业务单元内的事件驱动还是系统级别的业务调试,都能使用M.js提供的模型搞定。也许不是很好的方式。
后面灰大的也提出了一个重要的槽点:看这里 https://skydrive.live.com/view.aspx?cid=556CE34496EA9887&resid=556CE34496EA9887%21329
不得不说灰大的槽点很有深度,不得不说灰大作为业内的高富帅咱不得不服!跪了一个先……
跪完之后还得解决灰大的问题。事件驱动是不是意味着我每得针对每个模型进行注册事件?那这样做的话太不雅观了。那如何去解决灰大的问题?首先灰大的第一个问题,事件太多,每个事件或动作我是不是都非得去监听一次?不是的。实际上在M.Object中有一个保留的事件我一直没有说出来:readyStateChange。每次的事件触发都会触发这个带队件,我们可以监听readyStateChange以方便做统一行为的处理。灰大的第二个槽点:宿主太多。也许我们不知道我们在实际生产过程中产生多少个模型对象,灰大给了个speaker.bubble的示例,我觉得灰大的设计非常之好,但我想把这个选择留给开发者自己去解决。或者说我可以考虑新建一个M.ObjectModel去解决这个问题,或许ObjectModel可以解决speaker和this的问题。