称赞别人总是一件容易的事情,但是如果去批评别人,就要拿出十足的勇气和底气了,因为至今都没有把YUI的所有源代码都看一遍,所以不敢说那些是YUI的缺点,只能说是不足吧。通常别人在指正别人时,都会先夸奖别人一番,就是那些所谓的溢美之词,YUI的优点很多,是个很优秀的AJAX框架,在这里我就不客套了,直入主题。
第一,命名规则不统一。这一点主要体现在一些Widget的Configuration Attribute和一些CSS样式名上。举一个简单的例子,在YAHOO.widget.Panel的配置属性中,close表示一个Panel是否可以被关闭,是否可以有关闭按钮,draggable代表这个Panel是否能被拖动,同样是Boolean的属性值,但是一个用了动词一个用了形容词,我不知道老外是否也把close和draggable的词性看的一致,反正在我看来,觉得不是很好。还有就是有些属性值使用了“骆驼”的命名方式,即非第一个单词的首字母大写,如Panel中的dragOnly属性,但是另一些属性却没有,如fixtoviewport、fixedcenter。CSS样式中也存在着同样的问题,你可以看到yui-panel和yuimenu这两种不同的命名方式。
带来的危害:程序员总是希望有着统一的命名方式,不想在记住属性名称记住相应的命名规则。
第二,继承体系不唯一。这一点主要体现在所有的Widget没有实现单根继承上。像TabView和TreeView就没有一个共同的祖先,TabView继承YAHOO.util.Element,而TreeView没有父类,只是用一些像EventProvider来丰富了自己。而Container中的一些组件又继承自YAHOO.widget.Overlay。这其中的混乱还体现在一些类只是用另一些类来“丰富”自己,通过YAHOO.lang.augment方法,而一些类却是继承了别的类,通过YAHOO.lang.extend方法。
带来的危害:不同的继承体系使得YUI中不同的组件构造的过程变得不一样,有些是通过YAHOO.util.Config的方式,有些是通过YAHOO.util.AttributeProvider的方式,这样去扩展YUI的组件变得相当的不方便,你需要去了解许多种不同的组件配置和初始化的方式。
当然,如果你只是把YUI集成到自己的应用当中,第二点对于你来说也许没有多大关系,但是你如果潜心想去扩展YUI,我想第二点是一个很另人头痛的事情。这里不得不夸一夸EXT,单根继承,Component模式,使得EXT中的widget的设计十分成功。真的很希望YUI不要再把不同的widget看成不一样的组件来对待,应该把这些子项目看成一个统一的子项目,重新去设计和实现,毕竟对于一个Ajax框架,UI部分的优劣很容易影响一个人对他的选择。
不过,我还是很喜欢YUI,我会做出自己的努力~!为他尽一点自己的力量。
分享到:
相关推荐
YUI与jQuery、Prototype等其他JavaScript库相比,更注重企业级应用的稳定性和可维护性,但可能在社区活跃度和第三方插件数量上稍显不足。选择哪个库取决于具体项目需求和个人喜好。 总结,YUI 2.5.2是一个功能全面...
然而,YUI也存在一些缺点: 1. **学习曲线较陡**:YUI的API相对复杂,初学者可能需要花费更多时间来理解和掌握。 2. **更新停滞**:自2014年后,YUI项目已停止更新,这意味着它可能无法适应现代Web开发的新需求和...
本文将详细介绍一些常见的JS框架和库,包括它们的主要特点、优缺点。 1. Dojo Dojo是一个全面的JavaScript工具包,不仅包括了基础的JavaScript库,还提供了丰富的UI组件。它的特色在于通过添加特殊属性到HTML标签来...
缺点是相比其他框架知名度较低,社区支持可能不足。 这八款框架各有特点,开发者应根据项目需求、团队技能和性能要求来选择合适的框架。例如,需要强大UI组件的项目可以选择Dojo或YUI-ext,而希望快速实现基本功能...
然而,在兼容性和性能上遇到了一些问题,主要是YUI框架在移动端显得臃肿庞大,以及项目初期代码设计不足导致逻辑混乱。 ### 2. 面对挑战的优化 文档随后介绍了彩票H5订单系统V2.0版本的开发,重点在于代码重构和...
这需要强大的前端框架来支撑,如YUI3,它提供了一套完整的解决方案,包括UI组件、事件处理、数据管理等,以弥补JavaScript在语言层面上的不足。YUI3的模块化设计使得开发者可以按需引入组件,降低项目复杂度,提高...
Prototype的突出优势在于其轻量级和易用性,然而功能的全面性和深度略显不足。 #### 四、Scriptaculous Scriptaculous是基于Prototype框架的高级UI组件库,包含六个JS文件,每个文件负责特定的JS视觉效果。它被...
尽管如此,仍然存在不少问题,比如稳定性不足、组件数量有限以及学习成本较高等。 #### 二、新一世代前端类库Arale 为了解决上述问题,支付宝推出了新的前端类库——Arale。Arale的目标是实现更加稳定、高效且灵活...
为了解决UI Automation的一些不足,豆瓣开发了一套自定义的自动化测试框架——Ynm3k。该框架具有以下特点: 1. **功能结构**:引入了YUItest框架,支持使用testSuite、testCase等概念,同时支持YUItest的相关事件。...
正是由于这些不足,激发了一群开发者和开源贡献者的热情,他们共同努力将YUI扩展成了一个更为强大的客户端应用程序库,即ExtJS。 **1.4 ExtJS的特性** - **丰富的用户界面**:ExtJS提供了类似桌面应用级别的UI体验...
ExtJS是一个基于JavaScript的前端Ajax框架,由JackSlocum开发,起初它是基于YUI技术构建的。ExtJS用于创建丰富交互的Web应用程序界面,尤其擅长构建富客户端应用程序(RIA)。使用ExtJS可以创建界面华丽、用户体验...
Extjs最初是对Yahoo UI Library(YUI)的扩展,弥补了YUI在API质量和组件多样性方面的不足。通过开源社区的不断努力,Extjs逐渐发展成为一个全面的客户端应用程序库,专注于提供更丰富、更直观的用户界面体验,而不...
然而,jQuery UI 也存在一些不足之处: 1. **代码健壮性**:由于缺乏全面的测试用例,部分组件可能存在较多 Bug,可能不完全满足企业级产品的开发需求。 2. **架构规划**:组件间的 API 协调不足,缺少协同使用的...
尽管UI Automation在某些方面(如框架结构)存在不足,但豆瓣团队能够对其进行改造和扩展,以满足特定需求。 ### Ynm3k:豆瓣自研工具 Ynm3k是豆瓣自主研发的一款自动化测试工具,旨在解决现有工具的局限性,提供...
ExtJS最初基于雅虎的YUI库发展而来,旨在弥补YUI在API设计和用户界面组件方面的不足。通过社区的不断努力,ExtJS逐渐成为一个独立且强大的客户端应用程序库。 #### 三、ExtJS安装与配置 ##### 3.1 获取ExtJS - ...
然而,EasyUI也存在一些不足: - 自定义程度较低:虽然组件多,但样式和功能调整的空间相对有限。 - 文档和社区支持:相比于EXTJS,EasyUI的文档和社区活跃度稍弱。 2. EXTJS EXTJS则是一个更为全面且强大的前端...
YUI扩展性好,但CSS文档不足;Ext JS侧重于前端界面,体积较大;MooTools则是轻量级的面向对象库。 通过深入了解jQuery的各个部分,开发者可以更有效地编写JavaScript代码,提升开发效率,同时享受到jQuery带来的...
ExtJS也是对Yahoo的YUI库的扩展,弥补了YUI在控件和API方面的不足。 ### ExtJS的下载和安装 要使用ExtJS,首先需要从官方网站下载SDK,其中包含了丰富的示例和API文档,这对于学习和参考有极大帮助。解压SDK到本地...