Ajax从2005年进入大众眼里以来,相关书籍就层出不穷,从入门级的《Ajax基础教程》到经典权威的《Ajax实战》,再到总结归纳式的《Ajax设计模式》,无疑展现了这一技术的茁壮成长;不仅如此,组成Ajax这瓶鸡尾酒的各个元素(javascript、css、html)开始被广泛关注,尤其是那些之前一直致力于后台的程序开发人员,也越来越重视前端技术的深入学习,掀起了一轮新的浪潮。作为一名普通的程序员,我自己也未能例外,这不,最近又看完一本新书——《Ajax企业级开发》,好东西不能独享,特发书评一篇,供大家学习参考。
这是一本很薄的书,拿到手里,第一印象实话说不怎么好,诺大个题目,就这么点厚度,是有些让人怀疑作者能不能阐述清楚。但是当我仔细读完前两章后,疑问完全被打消了——从Ajax兴起的必然性分析,到实现它需要掌握的基础知识都有讲解,篇幅虽小,但也照顾了读者全面了解Ajax所必须的构建块:基于原型javascript面向对象特性、DOM事件、CSS这些知识点都有言简意赅的介绍。虽然此书声称面向的读者是中高级的web开发人员,但就我个人的阅读体验而言,初学者看看这部分基础内容也是很有帮助的,因为很少有一本书能用这么少的篇幅来讲这么多的东西。接下来的内容就更有货了,优点缺点都不少,且听我慢慢道来:)
一、优点:
整本书读下来,最有收获的是中间的第三章到第七章,这些章节包含了Ajax日常开发中常见的问题,以及作者针对这些问题思考后的观点阐述。其中对客户端MVC模型——视图——控制器模式,以及观察者模式的论述,在我看过的所有相关书籍中,它是解释最简洁易懂的,相比《Ajax实战》里同主题的章节来说,更能让人接受,文字不多,配合几张图就搞定了这个概念的阐述,或许这就是本书身材“苗条”的最主要原因吧。不过这里面也有一些观点我个人不怎么认同,比如,作者强调利用Java这类传统语言的建模方式来编写代码,强制模拟抽象类和接口,这些工作在我看来是画蛇添足,毕竟js里面没有提供这些设施,作为多范式的动态语言来说,这样做并不能带来什么好处,相反我更喜欢duck type这样的契约方式,会飞,会叫,就当它是鸭子了。另外,对于跨浏览器脚本编程这个主题,书中也有提及,比如事件处理、预防内存泄漏等等,现在已经有很多现成的框架做了相关的工作,不用自己去写适配代码了,当然这不是说作者写这些内容多余了,相反他们没有错,介绍其原理能让读者看清框架的本质。
另外,书中对Ajax组件的观点也很有意思,他提出了几种分类方式:命令式组件,以及声明式组件,还有行为式组件,非常新颖。所谓命令式组件,就是依靠程序命令初始化而来,与代码顺序精密相关的组件,这也是实现web UI组件最传统的办法,作者似乎不怎么喜欢这种方式;声明式组件,比较注重MVC三个层次的分离,利用视图模板展现外观,交互逻辑由控制器代码支配,模型存储业务数据,这种方式对开发人员要求更高,在构建组件的时候需要更高层次的设计,以及更多的准备工作,比如,选择合适的模板语言,作者比较推崇这种方式;另外就是行为式组件,提倡根据合适的html代码结构,配合css类或者其他的钩子,来在现有的基础组件上增加行为,这种方式很类似web标准中所提倡的“渐进增强”,相比前面两种方法,我个人比较认可这种方式,因为作为一名web标准的爱好者和推广者,长期积累下来的经验告诉我,只有做到平稳退化和渐进增强,才能最大范围的让用户体验得到提升,说到这个,也总结出了本书的一个小遗憾:作者对在javascript缺失的情况下,系统该如何应变这个主题没有相应的解决方案:(不过话说回来,在“企业级开发”这个范围内,舍弃这种考虑也情有可原,我们不应该对作者太刁难了。
值得一提的是,这本书和市面上已有的Ajax书籍专门讲解实现技术不同,还从另一个层面来阐述Ajax开发:从事先的架构设计、原型绘制,到测试驱动开发、产权保护以及风险和最佳实践,都有介绍,让读者亲历了一遍完整的开发工作流,这种组织方式是很少见的,很和我胃口。其中对线框图的介绍,对Ajax架构的考究,以及对跨站脚本攻击的阐述尤为让人印象深刻,跟着作者一道走下来,相信很多读者会和我一样,大呼过瘾:)
再来说说大家都比较关心的中文翻译质量,一路读下来,给我的感觉还是很顺畅的,虽然有少许句子还存在太长没断句的小毛病,但整体不会影响阅读和理解,算上乘之作,不过印刷错误还是不少,稍后我会给出自己发现的勘误。
二、缺点:
讲了这么多优点,下面让我们来看看这本书有哪些不足之处,其中有一部分我在上面已经提到过了,比如对传统编程语言习惯的过于模仿,以及对“可用性、可访问性”的有意回避,这两点还不算是“毛病”,毕竟情有可原,作者写书的角度不同嘛。相比起下面这个问题来说,可真算小巫见大巫了,本书最不能让我忍受的是,几个核心章节的实例代码中,存在严重的低级错误,而且,作者网站上给出的源码包也一样,根本不能运行,从这点可以看出作者是何等马虎了,代码自己不做测试就想当然的发出来了,其网站上很多读者提到,源码包中有一个重要的js文件缺失,这个文件对实现声明式组件至关重要,负责了从模板到展现的核心工作,希望他能补上,但是从留言的时间来看,距今已经一年了都没得到答复,这种不负责任的态度实不可取呀!本文后面我会提出一些中文版的勘误,但不全都是译者的错,有些是有些是原作的本身的问题。针对这些个不爽的毛病,我建议读者在看这本书的时候,多吸收其理论思想,少研究他的那些代码,根本就没法儿用,囧(我正计划义务给改写重新实现一遍那些示例)。
三、勘误(为节省篇幅,这里就不列出了,我已经汇总提交给出版社,大家可以到图灵网站上下载):http://www.turingbook.com
总的来说,《Ajax企业级开发》是一本不错的Ajax进阶级图书,作者在其中阐述的思想理论独到新颖,有很多自己的看法值得借鉴;但是,代码实现错误比较多,需要读者自行动手修改。最后要说的是,评价一本书好不好,其他人怎么看怎么说都是次要的,关键还是要靠你自己来判别,别被我误导了。那还等什么呢,拿起这本书一边学,一边验证吧:)
分享到:
相关推荐
本书首先解释了AJAX 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的AJAX 技术和组件。你将看到把数据表、Web 窗体、图表、搜索和过滤连接在一起用于构建AJAX应用程序的框架开发的整个...
本书首先解释了ajax 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的ajax 技术和组件。你将看到把数据表、web 窗体、图表、搜索和过滤连接在一起用于构建ajax 应用程序的框架开发的整个...
《AJAX企业级开发》是一本深入探讨AJAX技术在大型项目中应用的专业书籍。它不仅揭示了AJAX为何在大规模开发中具有广泛前景,还全面解析了当前关键的AJAX技术和组件。这本书旨在帮助读者理解和掌握如何利用AJAX来构建...
J2EE企业级开发考试大纲详细涵盖了J2EE开发中的关键技术和知识点,旨在测试学生对这一领域的理解和应用能力。以下是大纲中涉及的主要内容: 1. **Struts框架技术**:Struts是Java Web开发中常用的MVC框架。考生需要...
JavaEE企业级开发是构建大型、复杂应用程序的关键技术,它为开发者提供了丰富的工具和框架,以简化企业级软件的开发过程。JavaEE平台基于Java Standard Edition(JavaSE),但增加了服务器端组件、分布式计算以及...
Java企业级应用开发是构建大型、可扩展且高效软件系统的基石,主要集中在Java Web开发技术上。本课程涵盖了从环境搭建到实现复杂业务逻辑的全过程,旨在培养开发者在实际项目中的综合技能。 首先,第1章“Java企业...
***企业级架构开发技术与案例教程的知识点主要包括以下内容: ***基础概述 ***不是一个编程语言,而是一个Web开发模型,它支持以可视化的方式创建企业级网站。它是.NET框架的一部分,能够利用.NET框架中的类进行...
这本书的源代码提供了深入学习和实践的机会,涵盖了企业级开发中的关键技术和最佳实践。以下是对该主题的一些核心知识点的详细说明: 1. **ASP.NET架构**:ASP.NET 3.5基于.NET Framework 3.5,它提供了多种Web应用...
本篇论文探讨了如何利用Struts2框架、Ajax技术和JDBC协议来构建一种企业级Java Web开发架构,并根据MVC(Model-View-Controller)设计模式,实现了表示层、控制层、业务逻辑层和持久化层。通过实际案例的应用,证明...
《精通ASP.NET 2.0企业级项目开发》是一本深度解析ASP.NET 2.0技术在实际项目中的应用的专业书籍。ASP.NET是微软推出的Web应用程序框架,它基于.NET Framework,为开发者提供了构建动态网站、Web应用和服务的强大...
企业级工位-企业级工位系统-企业级工位系统源码-企业级工位管理系统-企业级工位管理系统java代码-企业级工位系统设计与实现-基于springboot的企业级工位系统-基于Web的企业级工位系统设计与实现-企业级工位网站-企业...
"dwz4j SpringMVC MyBatis企业级快速开发框架"是一个集成的开发环境,旨在简化Java开发者在企业级项目中的工作流程,特别是对于快速实现业务逻辑的增删改查(CRUD)以及后台管理功能。这个框架结合了三个核心组件:...
企业级工位-企业级工位系统-企业级工位系统源码-企业级工位管理系统-企业级工位管理系统java代码-企业级工位系统设计与实现-基于springboot的企业级工位系统-基于Web的企业级工位系统设计与实现-企业级工位网站-企业...