• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

争论:Ajax技术是否即将没落?

发布: 2008-1-29 14:53 | 作者: 不详 | 来源: http://java.chinaitlab.com | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网

 

 第四个问题是:是否深入学习Ajax就无法得到“这一代Web技术和体系的理解”?

  孟岩老师说:“我们今天所说的Web开发高手,有多少是把自己的身家性命押宝在对这一代Web技术和体系的理解上?”

   这句话有很大的误导性,似乎深入学习Ajax就无法得到“这一代Web技术和体系的理解”。至少根据我的个人经验,深入学习Ajax可以帮助我们更好的获得“这一代Web技术和体系的理解”。我今年组织翻译了《Ajax in Action》、《Ajax Practices and Best Practices》,还将要从台湾引进《Ajax Design Patterns》。这几本书使得我对于国外的Web开发高手的水平叹服不已,并且很大地加深了我对于“这一代Web技术和体系的理解”。

  孟岩老师还说:“且不说他们日常工作中大多数时间花在了界面开发之上,就算是很多人引以为傲的所谓‘大负载量Web站点架构’,也将随着RIA的兴起而发生一场巨大变革。大量页面状态将前移到客户端,Web服务端将以全新的观点重新组织资源,逐渐变成真正意义上的Web Services集合。旧的知识和经验迅速贬值,新的机会快速涌现,有的人沉下去,有的人飘起来,历史又要重来一遍了”

  我可以肯定孟岩老师并没有深入研究过Ajax应用的架构,因此才会误以为“大量页面状态将前移到客户端,Web服务端将以全新的观点重新组织资源,逐渐变 成真正意义上的Web Services集合。”,这与Ajax是完全矛盾的。与孟岩老师这种大开大合的革命性预测不同,我认为技术从来都不是以这种方式进步的。技术进步是一个自然的缓慢演化过程,面向对象逐渐取代面向过程、Java逐渐取代C++、Ruby逐渐取代Java,都有很大的传承关系在里面。将某种技术描述为横空出世的 “天生石猴孙悟空”,我认为是不严肃的,也是没有做深入研究的体现。我并不认为以前在传统Web开发技术方面所积累的知识就会很快贬值。只要自己与时俱进,不断补充新的营养,“大负载Web站点架构”的经验永远都是很宝贵的实践经验。

  Ajax技术,正是目前绝大多数传统的Web开发团队向RIA时代迁移的最自然的选择路径。

  第五个问题是:程序员做界面开发是否是不可能的?这是否就是Web应用开发效率的瓶颈所在?

  孟岩老师说:“因为今天Web开发中,设计人员基本只是解决页面布局与图片效果的设计,而大量动态界面效果还需要开发者来完成。Expression + Visual Studio的模型则将‘与用户交互的界面部分’与‘后台业务逻辑’完全分开。设计人员凭借类似Flash的方式,就可以开发出类似视频游戏那样的用户界面。”

   我是做Java开发的,如果我作为技术负责人,我的团队中将会有这些分工:

  1. 业务逻辑开发人员,使用Java和Spring等框架做开发。

  2. 界面逻辑开发人员,负责View的开发,精通FreeMarker、XHTML、CSS、JavaScript等技术。

  3.  美工,负责制作图片,对于页面的样式和配色提供指导,用Photoshop设计出页面样式,交给界面逻辑开发人员来制作。

   由界面逻辑开发人员来制作页面,制作的页面必须达到我的要求。例如,完全基于CSS的布局,在各种主流浏览器上都要正常显示等等。

   在我这里,业务逻辑开发人员和界面逻辑开发人员并不存在谁高谁低之分,薪水也是基本相同的水平。而孟岩认为在基于Web标准的开发过程中,程序员不应该做页面,这个看法是错误的。

图-3 XCS三个火枪手

  程序员是否做页面也并不是开发效率的瓶颈。如果某个程序员精通了上述这些技术,他完全可以迅速开发出美观的页面。特别是在注重页面中 XHTML/CSS/JavaScript各部分的重用的情况下,积累到一年之后,要开发的很多东西都是相似的。孟岩老师认为完全的分工可以达到最大的开发效率,这是一种幻想。为什么Web开发从 J2EE 非常清晰的分层又变成了在RoR中不是很清晰的分层?软件开发并不是流水线式生产。分工应该适当,分工太细,不同层次之间沟通的成本就会迅速上升。这又回到了《人月神话》中的命题:主要的成本在于沟通的成本。依靠细致的分工降低对开发人员素质的要求,实现流水线式生产,创造大批软件蓝领,这本身就是一个幻想。

  Ruby解决问题的思路与此是不同的,Ruby的思路是提高抽象的层次,使得一个开发人员有能力承担更多功能的开发。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网