[Tapestry]Struts终结者?对比组件框架技术tapestry(转)

转自:http://blogger.org.cn/blog/more.asp?name=janetvsfei&id=8353
前言]:从2000年开始的MVC模式框架Struts看来将要被基于组件的事件驱动模型类框架替代,JSF和Tapestry都是新一代可能成为Struts的终结者。

  JSF和Tapestry都是基于页面组件技术的开发框架,但jsf基于jsp,仍然是jsp架构,开发维护起来非常麻烦。tapestry则不同,是基于servlet的一种完全页面组件化的开发框架,而且现在已经非常成熟,目前已经推出t4.0-beta2。

  页面开发走向组建化是一种越来越明显的趋势,这方面tapestry可以说是引导了这个方向,也许是sun太厉害,jsf一出生就得到大家的关注,不过顺此东风,tapestry的用户社区比以前更加繁荣了:

  http://news.gmane.org/gmane.comp.java.tapestry.user

  tapestry有很多范例精彩,参看它的官方网站:

  http://jakarta.apache.org/tapestry/

  若想致力于web页面的开发,个人觉得jsp/serlvet是首要精通的,至于选择框架,则是一件费精力的事情。框架的目的是为了简化开发流程,提高生产效率,典型的框架如turbine、struts、webwork、jsf、tapestry等。如何选择框架是一个经久不衰的讨论,没有多年的实践经验是难以作出实际评价和最终抉择的。愚以为turbine过于厚重,无论是开发速度还是运行速度都令人难以接受,2.4M1到现在快一年还是M!,运行起来真是满如蜗牛,打开一个页面要等浏览器的地球要转上半圈,这也许要归功于velocity解析和没有页面缓存的功劳了。还有就是扩展性、可维护性等,实际上都很差,象它的核心类Turbine,居然定义为final!实际开发起来还不如我自己实现的velocity+servlet+filter框架效率高,速度快。
struts,webwork实际都是jsp的MVC包装,无法摆脱jsp页面难以维护的烦恼,也许开发起来快,但维护呢?还有就是美工人员,他们都得懂jsp。实际的mvc分工在页面这块还是打了折扣。jsf,在一定程度上借鉴了tapestry的组件思想,但大项目应用中狂多的标签封装和定义把你搞疯也得把机器搞疯,估算有两大弊端:运行速度相对慢和页面维护相对复杂。

  最后是tapestry,唯一的难度是理解它的组件开发方法,理解的转变就好比从过程开发到OO开发一样,但对初学者无所谓,一张白纸总是容易上画的。

  选择tapestry有如下几大优点:

  1、最彻底的MVC开发框架,页面代码全部由HTML标准标签组成,页面美工人员无须了解特别的标签定义。

  2、可重用组件开发节省开发资源,一句话:越开发越轻松

  3、优秀的页面流转开发。传统方式都是基于URL实现激活页面流转,而tapstry除了此方式,你还可象开发普通java类一样实现page页面流,更重要的是,还可由此实现页面类的复用。

  4、丰富的组件资源。除了官方维护的资源外,还可找到一大堆的tapestry组件库。

  5、超强的扩展性。tapestry是一个真正的开放性架构,说白了,你觉得哪个服务不爽,你就可写个替代它。

  6、生命力超强,不断的自我更新、发展。tapestry4.0与3.0相比简直就是另一个飞跃,如支持jdk1.5的Annotations,仅这点开源产品中目前还只看到一个hibernate;支持portlet JSR-168,又一个顺应潮流的web开发支持。规划中的4.1将支持页面静态化,这不正是众多开发人员的另个期待吗?
7、tapestry的开发人员稳定。不是一个两个人在那里单打独斗,而是有一群人在开发和支持tapestry的进程。

  8、tapestry技术成熟吗?基于tapestry的软件和大网站已经很多了,国外的:软件如SeaView内容管理系统、WidenTM Digital Asset Management System,网站大的如:
  http://www.nhl.com/
  http://www.theserverside.com/
  https://merchant.shopping.com/enroll/app
  http://www.identitytheft911.com/home.htm
  http://admissions.chicagogsb.edu/admissions/app

  国内的:软件如http://www.onetsoft.com
  网站如:http://love.9618.com.cn/dating/app
  http://dbi.lib.ntu.edu.tw/libraryList/
  http://www.cdcin.com/
  http://www.xtcin.com/
  http://www.xnjs.com/

  tapestry的优点和带给你的便利不是两句话可讲清楚的,还需要自己去多多体会。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值