论坛首页 Web前端技术论坛

讨论一下,Ext里哪个组件设计的最不好

浏览 8542 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-05  
最近在一直做Ext的研究 代码结构方面的.
并且做一些修改和扩展.
多少也研究了不少他的组件.

EXT有多强大多NB就不用我多说了 但是任何好的事物也都有不好的方面

大家来讨论讨论呢 哪个ext的组件设计的不最不好吧

我先说说我的观点:

我觉得最不好的就是 他的树.
首先 设计的不够灵活(想灵活也行 但是需要开发人员做很多事情)
其次 严重违背了ext自己的一个设计理念: 数据与展现分离.

Tree,Node,TreePanel, TreeNode,AsyncTreeNode,TreeNodeUI, TreeLoader....
彼此之间的关系混乱复杂, 有很多错误的关系(我认为错误 并不一定真的错误)


大家觉得还有哪些组件设计的不够好呢???


下面附上一张我对ext tree的分析图 还有我的一个重构目标




   发表时间:2008-09-05  
我不爽的是ext 关于event element和ext-lib里面的一些封装,总感觉代码层次不是很清晰
1 请登录后投票
   发表时间:2008-09-05  
Toolbar,PagingToolBar
0 请登录后投票
   发表时间:2008-09-05  
toolbar 确实也够郁闷的 和ext其他地方的组件机制不一样

================

主楼补充了一张图 是我对树组件的一个简单分析 和我的重构目标
0 请登录后投票
   发表时间:2008-09-05  
tree:目前不支持xml,而且不好扩展,数据格式不可以自定义解析,比如text属性
PagingToolBar:分页参数limit,带查询条件的分页,分页的时候要把参数带着的话,得费一番周折。麻烦死了
1 请登录后投票
   发表时间: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的支持;创建的节点上,类型可指定也可以覆写方法来达到目的。
总体感觉划分清晰,也灵活吖。
0 请登录后投票
   发表时间:2008-09-06  
fins 写道
toolbar 确实也够郁闷的 和ext其他地方的组件机制不一样

================

主楼补充了一张图 是我对树组件的一个简单分析 和我的重构目标

恩,Toolbar是个异类
0 请登录后投票
   发表时间: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有点不能接受
0 请登录后投票
   发表时间:2008-09-10  
不好意思跑题了。
一直认为既然你选择了EXT,去扩展它不是个明智的选择。

一直认为EXT 的Cache 是影响性能一个主要原因。

Class A={
   this.dom
   this.Element
等等
}

缓存了很多对象。

selector 不要只针对Dom了,应该是对象。

0 请登录后投票
   发表时间:2008-09-10  
再扩展一下。
大家回忆下dojo的dojoType.或者html5
我们为什么自己编写组件呢,因为html提供的标准组件不够用。
那我们写的组件和html提供的标准组件 有什么关系呢?

我希望是这样的
document.getElementById(id);
不仅可以获取 html提供的标准组件。
也可以获取扩展的组件。例如 Ext提供的组件。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics