Web显示层技术评估

原创 2007年09月22日 18:27:00
 

HTML Tags and JavaScript tutorial



Web显示层技术评估



ed Template, 6, Template Manipulation, 7, Model Match, 8. 特性总表
 | 
下一篇: Web显示层技术评估 -- 1. 名词界定 2. 理论模型, 3. 数据寻址

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}


 Web显示层技术评估 -- 4.评估指标



评估指标
下面列出一系列比较详细的、能够落到实处的、能够客观量化的、可操作的评估硬指标。
排名不分先后。大家可以参考各自关心的选项。
虽然下面主要针对的都是
Java Web
显示技术,但这些指标同样适用于其他语言的
Web
显示技术。
评分采取
10
分作为满分。
(1) Host Language Consistency
宿主语言一致性
Server Side Template Script

Server Host Language
是同一种语言。这应该是专门针对
JSP
的优势来说了。
JSP
能够获得
10
分。
另外,
XSL
也是。
XSL
本是也是
XML
格式。也能够获得
10
分。
其他的
Template Script
,如
taglib,tapestry
只能获得
0
分。
freemarker, velocity
由于具有一定的动态解释的方便特性,可以获得
2
分。
至于在
Java Code
里面操作
Template
或者提供匹配数据的那些技术,由于
Template
中不存在
Script Logic
,能够获得
5
分。
大家可能不太注意这个特性。但是这个特性还是有一些意义的。其他的如
ASP.net
,还有动态语言,
Ruby, Python, PHP, Perl
等,都是
Template Script
和宿主语言一致。
这能够一定程度上降低学习成本。尤其是宿主语言比较适合作为
Script
的情况下。
 
(2)Template Purity
模板纯净度
这主要是指
Template
里面没有
Script Logic
代码污染。
这方面,所有的
Scripted Template
技术都只能获得
0
分。
XMLC
能够获得
10
分,只利用
HTML
本身的
Attribute
,没有增加任何自定义
DOM Attribute

Wicket, DOMPlus
能够获得
9
分,它们增加了一部分自定义
DOM Attribute

JDynamiTe, Fastm
能够获得
7
分,它们采用了
XML Comment
作为自定义结构标签。
Rife
也能够获得
3 -- 7
分,具体看它采用什么标签格式。
(3)Template Tidiness
模板整洁度
主要是指
Template
的格式是否整齐规范。
Taglib, XSL
无疑是胜利者,本身就是
XML
格式,通用的
XML Parser
就可以解析它们,比较容易在
IDE Plugin
中处理。
XMLC, Taglib, XSL
能够获得
10
分。
Tapestry, Wicket, DOMPlus
也能够获得
10
分,同样是
XML
格式。
JDynamiTe, Fastm, Rife
能够获得
5
分。
JSP, Velocity, Freemarker
只能获得
0
分。
(4) Replacement Flexibility
替换灵活度
主要是指能否自由替换
Template
里面的任何一块文本。不用考虑
DOM Node

JSP, Freemarker, Velocity, Rife, JDynamicTe, Fastm
无疑是胜利者,毫无限制,能够获得
10
分。
Taglib, XSL, Tapestry, Wicket, XMLC, DOMPlus
都或多或少受到
DOM Node
的限制(解析的最小单位是
XML Node
),能够获得
6
分。
(5)WYIWYG
所见即所得
Template
能够在
Browser
里面直接大致正确显示,设计人员友好。
XMLC, DOMPlus
得分
10

Wicket
得分
9

JDynamiTe, Fastm, (Rife
根据情况
)
得分
8

Tapestry
得分
7

HTML
毕竟夹杂了
Logic Tag

JSP, Freemarker, Velocity, Taglib, XSL
得分
0

 
Freemarker, Velocity
属于按行解析,有可能采取如下手段,把语句包含在
XML Comment
里面,进行显示友好的处理。这种情况下得分
5

<!--
#if ….
-->
 
由于
Taglib

XML
规范格式,使得某些
IDE Plugin

DreamWeaver Plugin
能够显示
HTML Display Taglib
。如果是对于此类
Plugin
来说,
Taglib
的所见即所得分数可以是
0-- 5
分。类似于
Tapestry
,仍然是
Logic Tag
影响了最终得分。
(6)Action Code Purity
用户代码纯净度
主要是指用户提供显示数据的后台
Java
代码的纯净度,是否免除了
HTML
,或者
Template
操作的污染。
Servlet

HTML
污染现象就非常严重。代码里面夹杂了大量的
HTML Text
。分数自然是
0

JSP, Freemarker, Velocity
都能够获得
10
分。用户后台代码十分纯净,不需要引入具体框架的代码。任何一份
Action Code
,完全不用知道自己使用的是什么
Template
,这三种
Scripted Template
都能够随意替换。能够获得
10
分。
pojo
Taglib
根据各种具体情况,能够最高获得
8
分。
Fastm, DOMPlus
需要根据一定的约定,产生
POJO
数据。用户
Action Code
同样不需要引入具体的框架代码,产生的这些数据同样可以很容易地被其他
Template
,比如
JSP, Freemarker, Velocity
使用,能够某种程度上替换
Template
。能够获得
6
分。
Tapestry
需要在每份用户
Action Code
里面引入
Template
框架的
Package
。只能获得
4
分。
Wicket
不仅需要在每份用户
Action Code
里面引入框架的
Package
,还需要引入框架特殊的
View Data Model
数据类型,并且提供特殊类型的数据。只能获得
2
分。
XMLC, Rife, JDynamiTe
不仅需要在每份用户
Action Code
里面引入框架的
Package
,而且需要大量的
Template
操作。只能获得
0
分。
 
(这项特性的比较,对于
Tapestry

Wicket
来说是不公平的。因为它们的框架就包括了
Template
本身。
Action
里面引入框架
Package
是很正常的。而且这些框架同样可以外接其余的
Template
,只是原来的编程模型,需要做一些更改。这里只是对于单项比较就事论事。)
(7) Infrastructure Code Purity
基架代码纯净度
这里是指框架的内部实现代码里面是否夹杂了
HTML Text
污染。这也意味着如果用户需要扩展页面
UI
组件,是否也需要在代码里面夹杂
HTML Text

HTML Taglib, Wicket, Tapestry
的框架实现代码里面包含了很多
HTML Text
输出语句。用户需要自定义扩展页面
UI
组件,也需要在代码里面夹杂
HTML Text
。所以,得分只能是
0

JSP, Freemarker, Velocity, XMLC, XSL, Rife, JDynamiTe, Fastm, DOMPlus
得分都是
10

(8)
动态
Include
即运行的时候,动态选择
Include
另外的
Template
文件。
JSP
文件里面的

@ include
属于静态
Copy And Paste
技术。
Jsp:include
命令是动态
Include
,相当于
request.getRequestDispatcher(…).include(request, response);
 
Velocity, Freemarker

#Parse
指令应该也是动态解释执行的。也可以算是动态
Include

至于
XMLC, Rife, JDynamiTe
这类技术能够随意操作
Template Node
,动态
Include
也是小菜一碟。
Fastm, DOMPLus
同样提供了操作
Template Node
的能力,而且为了避免这类
Template Manipulation
代码污染,还提供了类似于
XSL

Node Interceptor
的机制实现动态
Include

XSL Apply Imports Call Template
能够动态引入并使用其他的
XSL

 
所以,
JSP, Freemarker, XMLC, Rife, JDynamiTe, Fastm, DOMPlus, XSL
的动态
Include
方面的分数都是
10

其余的,
Taglib, Wicket, Tapestry
得分为
0

(9)Recursive Display of Tree Data
树型数据的递归显示
递归显示一个任意深度的树型数据,这是一个动态
Include
基础上的更高级的需求。可以说,不支持动态
Include
,就不支持递归显示。
递归,
XSL
无疑是天生赢家。
XSL

Pattern Match
语法可以说就是为递归编写的。
其余的语法都是
Imperative Programming
。递归的前提是必须能够定义一个方法,自己直接或者转弯抹角的能够调用到自己。
对于
JSP, Velocity, Freemarker
这类没头没尾的
Script
来说,属于强人所难。
Tapestry, Taglib, Wicket
比较牛,专门提供了
Tree Model

XMLC, Rife, JDynamiTe
这些
Template Manipulator
高兴了,可以在
Java
代码里面任意根据数据任意操作
Template Node

Fastm, DOMPlus
不仅可以在
Java
代码里面任意操作,而且提供了类似于
XSL Pattern Match

Node Interceptor
功能,不需要写
Template Node
操作代码,就可以实现递归。而且可以实现
Data Iterator + Template Iterator
的匹配序列。
 
递归方面,得分如下。
XSL, XMLC, Rife, JDynamiTe, Fastm, DOMPlus
得分
10

Tapestry, Taglib, Wicket
能够显示特定的
Tree Model
。得分
4

其余的,得分
0
。只能通过
Java
代码里面夹杂一堆的
HTML Text
,然后整体输出给
Scripted Template
来实现。
(10) Space Efficiency
空间效率
基于
Template Manipulation
的技术都有空间效率问题。用户同时访问同一个
Page
的时候,内存中存在多个副本。
XMLC
的问题可能最重。因为
XML DOM
结构很重。
JDynamicTe, Rife
直接在一个
Template Node
上操作,如果有多个用户同时访问同一个
Page
。那么同一份
Template Node
就会在内存中
Duplicate
多份。
 
空间效率方面得分情况
XMLC
得分
0

JDynamicTe, Rife
得分
3
。如果静态文本节点作了优化,分数可能更高。
Taglib
由于编译的结果非常臃肿,
Tag
之间的信息交流非常困难。分数为
6

DOMPlus
一份
DOM
产生多份
SAX Event
,没有严重的多副本问题,但是
DOM
结构本身比较大,所以得分为
6

其余的技术,内存里的静态文本都只保存一份,都没有严重的空间效率问题,得分都是
10

(11) Mapping Explicitness
映射关系明显度
什么数据应该显示在什么位置,一目了然。这种特性。
JSP, Velocity, Freemarker
直接在
Template
里面把数据取出来显示,一目了然,清清楚楚,得分都是
10

Wicket
的强制
View Model
类型这里帮了大忙,无时无刻不提醒用户
Model

View (Template)
之间的映射关系。得分
8

XMLC
直接操作
HTML Node By ID, or By Generated Method,
得分为
7

比起,
JSP
等来说,
Taglib
的映射关系就隔了一层。尤其是当
Tag
之间存在层次关系的时候,比如,
Form Tag
下面的
Input Tag

Select Tag
下面的
Option Tag

Taglib
的分数只有
6

XSL

XPath Pattern Match
也是要稍微转个弯,类似于
AOP Interceptor
的思路。得分为
5

Tapestry
的配置如此复杂,得分只有
4

Rife, JDynamicTe
直接操作
Template Node
,而且是自定义层次的
Template Node
,用户编写
Action Code
的时候,必须随时查看
Template
里面的那些自定义标签之间的层次关系,并完全理解,了然于胸,才可能编写正确的代码。这方面的成本大大提高。分数只有
3

Fastm, DOMPlus
的问题类似,也是自定义层次的
Template Node
,需要随时查看
Template
里面的那些自定义标签(或者
DOM Attribute
)之间的层次关系。分数只有
3

 
(12) Display Logic Reusability
显示逻辑重用度
嵌在
Template
里面的
Server Side Script
代码,不具有任何可重用性。除了整个
Include
,你无法在另外的地方调用
Template
里面的某一段代码。
JSP, Velocity, Freemarker, Logic Taglib, Tapestry Logic Tag

XSL
的逻辑可重用度分数都是
0
。当页面设计人员更改了具体页面布局元素(
HTML Tag
)的时候,原来的
Template
里面的
Script
全部作废,需要重新填充到新的
HTML
里面。
Template Manipulation

Model Match
技术的显示逻辑都存在后台的
Java
代码里面,自然是可以重用的。方法调用,类继承,包含,怎么都行。
 
Wicket

View Model
都是绑定到具体的
HTML UI Tag
上,比如,
List, Table
等。当这些
Tag
变化较大的时候,原有的代码都需要改变。某些
HTML Display Taglib
也是如此。重用度分数为
4

当结构层次没有变化,只是具体的
HTML Tag
变化的时候,
XMLC
的原有
DOM
处理代码几乎不需要变动。在处理循环的时候,代码需要
Create Specific HTML DOM Node
,然后添加到某个
DOM Node
上面。而且代码可能大量使用自动产生的代码的方法。这影响了它的得分,分数为
4

当结构层次没有变化,只是具体的
HTML
布局元素发生了变化,那么,
Rife, JDynamiTe,
的代码都不需要变化。但是,它们的代码侵入性非常强,比
XMLC
还要强(如果
XMLC
采用标准的
HTML DOM
操作方法)。权衡考虑,
Rife, JDynamiTe
的重用度分数是
5

当结构层次没有变化,只是具体的
HTML
布局元素发生了变化,
Fastm, DOMPlus
的代码也不需要变化。而且,
Fastm, DOMPlus
没有代码侵入性,产生的
Data Model
就是
POJO
,可以用在
JSP, Velocity, Freemarker

Taglib
里面。所以,重用度分数为
8

 


相关文章推荐

城市山洪灾害多目标评估的技术方法

在山洪灾害评估方面的长期摸索和实践中, 逐渐形成了较系统的灾情评估方法。在灾前风险评估方面, 提出的评估方法主要有资料统计分析法、实验模拟分析法、数学模型法、遥感和GIS法。资料统计分析法是根据历史资...

架构评估技术详解

在软硬件系统总体架构设计完成之后,为保证架构设计的合理性、完整性和针对性,从根本上保证系统质量,降低成本及投资风险,需要对总体架构进行评估。 1、架构评估内容 (1)对软件的架构评估 对软件...
  • Mac_cm
  • Mac_cm
  • 2011年10月13日 17:39
  • 658

区块链技术体系选型评估

目前世界上有影响力的六大分布式账本技术体系:比特币(Bitcoin)、瑞波币(Ripple)、比特股(Bitshares)、以太坊(Ethereum)、超级账本(HyperLedger)和(Corda...

评估cache中的数据预期技术

1.设计数据密集型程序,评估CPU数据预取效果: 建立一个长度为1024*1024*64的一维数组,不采用预取技术的方法是,以16为步长(尽量保持数据不在一个cache行)取数据,并作运算,计算该过...

如何在使用新技术前评估其浏览器兼容性

这里向大家推荐两个网站:caniuse.com以及html5test.com,大家在使用新技术前,可以在这两个网站上看看浏览器的支持情况,看看自己能不能接受,同时也考虑一下能不能优雅降级。canius...

一个技术总监的个人综合评估,希望对大家能有所帮助(转)

前几天某公司董事长找到我,希望我成为该公司的技术总监,我不知道他们从哪里得到我的简历,在之后的电话沟通中,我明确的告知对方,简历并不能表示什么,它与实际情况是有很大的差距的。 想想也是,我面试过...

2012年全国高校学科评估结果:计算机科学与技术(转载)

2012年全国高校学科评估结果:计算机科学与技术(转载) 本一级学科中,全国具有“博士一级”授权的高校共60所,本次有50所参评;还有部分具有“博士二级”授权和硕士授权的...

Web应用程序风险评估工具介绍 Penetration Testing with the Joomla Security Scanner

①Joomla security scanner Joomla security scanner可以检测Joomla整站程序搭建的网站是否存在文件包含、sql注入、命令执行等漏洞。 这将帮助web开发...

web脆弱性评估&漏洞利用

这篇文章是有感于Web Analysis, Vulnerability Assessment and Exploitation using Backtrack5(http://resources.in...
  • god_7z1
  • god_7z1
  • 2012年02月24日 14:25
  • 675
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web显示层技术评估
举报原因:
原因补充:

(最多只允许输入30个字)