锁定老帖子 主题:讨论一下,Ext里哪个组件设计的最不好
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-05
并且做一些修改和扩展. 多少也研究了不少他的组件. EXT有多强大多NB就不用我多说了 但是任何好的事物也都有不好的方面 大家来讨论讨论呢 哪个ext的组件设计的不最不好吧 我先说说我的观点: 我觉得最不好的就是 他的树. 首先 设计的不够灵活(想灵活也行 但是需要开发人员做很多事情) 其次 严重违背了ext自己的一个设计理念: 数据与展现分离. Tree,Node,TreePanel, TreeNode,AsyncTreeNode,TreeNodeUI, TreeLoader.... 彼此之间的关系混乱复杂, 有很多错误的关系(我认为错误 并不一定真的错误) 大家觉得还有哪些组件设计的不够好呢??? 下面附上一张我对ext tree的分析图 还有我的一个重构目标 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-05
我不爽的是ext 关于event element和ext-lib里面的一些封装,总感觉代码层次不是很清晰
|
|
返回顶楼 | |
发表时间:2008-09-05
Toolbar,PagingToolBar
|
|
返回顶楼 | |
发表时间:2008-09-05
toolbar 确实也够郁闷的 和ext其他地方的组件机制不一样
================ 主楼补充了一张图 是我对树组件的一个简单分析 和我的重构目标 |
|
返回顶楼 | |
发表时间:2008-09-05
tree:目前不支持xml,而且不好扩展,数据格式不可以自定义解析,比如text属性
PagingToolBar:分页参数limit,带查询条件的分页,分页的时候要把参数带着的话,得费一番周折。麻烦死了 |
|
返回顶楼 | |
发表时间:2008-09-06
fins 写道 最近在一直做Ext的研究 代码结构方面的.
并且做一些修改和扩展. 多少也研究了不少他的组件. EXT有多强大多NB就不用我多说了 但是任何好的事物也都有不好的方面 大家来讨论讨论呢 哪个ext的组件设计的不最不好吧 我先说说我的观点: 我觉得最不好的就是 他的树. 首先 设计的不够灵活(想灵活也行 但是需要开发人员做很多事情) 其次 严重违背了ext自己的一个设计理念: 数据与展现分离. Tree,Node,TreePanel, TreeNode,AsyncTreeNode,TreeNodeUI, TreeLoader.... 彼此之间的关系混乱复杂, 有很多错误的关系(我认为错误 并不一定真的错误) 大家觉得还有哪些组件设计的不够好呢??? 也做了些树的扩展,不过自己做的很不好,估计我把代码贴出来,会把很多人搞的吐血。我一直主观上认为TreeNode不应该继承Node,这点让我很排斥,fins的这个讨论让我提起看Ext代码的兴趣,得出不同的结论。 第一:data.Node和tree.TreeNode从包名的分解看,data是管数据的,tree是与tree有关的,两个包是单向的关系;而从TreeNode的代码看,包含了节点的展现行为(注意,这里是行为,不是样子,样子由TreeNodeUI管理)控制。从这两点看,TreeNode的设计是合理的。 第二:TreeLoader,构造出来的是TreeNode, 数据加载上:doPreLoad模式支持已准备数据的;动态request上,支持json数据,需要支持xml,可以通过覆写processResponse来达到,缺乏解析xml的支持;创建的节点上,类型可指定也可以覆写方法来达到目的。 总体感觉划分清晰,也灵活吖。 |
|
返回顶楼 | |
发表时间:2008-09-06
fins 写道 toolbar 确实也够郁闷的 和ext其他地方的组件机制不一样
================ 主楼补充了一张图 是我对树组件的一个简单分析 和我的重构目标 恩,Toolbar是个异类 |
|
返回顶楼 | |
发表时间:2008-09-10
nihongye 写道 fins 写道 最近在一直做Ext的研究 代码结构方面的.
并且做一些修改和扩展. 多少也研究了不少他的组件. EXT有多强大多NB就不用我多说了 但是任何好的事物也都有不好的方面 大家来讨论讨论呢 哪个ext的组件设计的不最不好吧 我先说说我的观点: 我觉得最不好的就是 他的树. 首先 设计的不够灵活(想灵活也行 但是需要开发人员做很多事情) 其次 严重违背了ext自己的一个设计理念: 数据与展现分离. Tree,Node,TreePanel, TreeNode,AsyncTreeNode,TreeNodeUI, TreeLoader.... 彼此之间的关系混乱复杂, 有很多错误的关系(我认为错误 并不一定真的错误) 大家觉得还有哪些组件设计的不够好呢??? 也做了些树的扩展,不过自己做的很不好,估计我把代码贴出来,会把很多人搞的吐血。我一直主观上认为TreeNode不应该继承Node,这点让我很排斥,fins的这个讨论让我提起看Ext代码的兴趣,得出不同的结论。 第一:data.Node和tree.TreeNode从包名的分解看,data是管数据的,tree是与tree有关的,两个包是单向的关系;而从TreeNode的代码看,包含了节点的展现行为(注意,这里是行为,不是样子,样子由TreeNodeUI管理)控制。从这两点看,TreeNode的设计是合理的。 第二:TreeLoader,构造出来的是TreeNode, 数据加载上:doPreLoad模式支持已准备数据的;动态request上,支持json数据,需要支持xml,可以通过覆写processResponse来达到,缺乏解析xml的支持;创建的节点上,类型可指定也可以覆写方法来达到目的。 总体感觉划分清晰,也灵活吖。 我也觉得ext这样的结构是合理的,只要treenode继承data.node有点不能接受 |
|
返回顶楼 | |
发表时间:2008-09-10
不好意思跑题了。
一直认为既然你选择了EXT,去扩展它不是个明智的选择。 一直认为EXT 的Cache 是影响性能一个主要原因。 Class A={ this.dom this.Element 等等 } 缓存了很多对象。 selector 不要只针对Dom了,应该是对象。 |
|
返回顶楼 | |
发表时间:2008-09-10
再扩展一下。
大家回忆下dojo的dojoType.或者html5 我们为什么自己编写组件呢,因为html提供的标准组件不够用。 那我们写的组件和html提供的标准组件 有什么关系呢? 我希望是这样的 document.getElementById(id); 不仅可以获取 html提供的标准组件。 也可以获取扩展的组件。例如 Ext提供的组件。 |
|
返回顶楼 | |