咸鱼的翻身技术

JAVA/JAVASCRIPT

记WEB开发的一次争执

情景是这样的,在一个菜单页面里面,菜单的生成由程序员A来实现,响应键盘事件实现菜单的翻滚由B程序员实现,

争执的由头很简单:

1,键盘响应的一个很重要参数需要在菜单加载完毕后去,B程序员自然而言的就在菜单读取参数的回调函数里面加了一句代码

2,过一会,A程序员的代码变了,自然就带来B程序员的功能出错,然后A程序员就说是B程序员的问题,这个参数应该由B程序员代码去执行

3,B程序员当然不干了,如果这个参数要自己去读取,那么每次键盘事件都需要去遍历DOM,这是一个多么无聊的事情啊

4,A/B程序员互不相让,最后只能有A程序员去翻这个代码,在自己的回调函数里面补上...囧

5,结论:程序员都是有洁癖症的 orz...


如果用订阅/发布模式来解决的话,B程序员订阅一个menu-inited事件,A程序员回调函数就发布这个事件,2段代码互不干扰...多么和谐啊

咋一看,为实现一个菜单功能,要搞订阅发布,似乎太蛋疼了...在yui/jquery的大部分组件实现来说 恰恰就是使用HTML事件来通知

对于一个组件来说,为实现某一个"原子"功能的代码都应该是独立存在的,功能之间的互相调用,必须通过HTML事件机制方式通知

更高的一个层次来说,组件和组件的通讯,订阅/发布自然是最佳选择

另外:

程序洁癖症的重度患者是非常烦躁自己的参数被别人修改的,往往只提供了get方法而无set方法,但是在js实现来说,隐私是很难保护的...因为木有私有参数一说

但自从“sandbox”概念横空出世,一切都改变了,"sandbox"为什么那么牛,你懂的。。。

jquery的订阅和发布插件
http://plugins.jquery.com/project/jQuerySubscribe 



posted on 2011-01-17 18:47 hopesfish 阅读(211) 评论(0)  编辑 收藏 引用 所属分类: javascript

只有注册用户登录后才能发表评论。