在线等,跪求帮忙下载一篇《J2EE developmentxcode frameworkss》外文文献

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
外文翻译--在分布式环境中自动动态的基础设施部署的J2EE应用.doc17页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:45 &&
你可能关注的文档:
··········
··········
Infrastructure for Automatic Dynamic Deployment
Of J2EE Application in Distributed Environments
Abstract: in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application components.
Key words: j2 D Dynamic D
1 Introduction
In recent years, we have seen a significant growth in component-based enterprise application development. These applications are typically deployed on company Intranets or on the Internet and are characterized by high transaction volume, large numbers of users and wide area access. Traditionally they are deployed in a central location, using server clustering with load balancing
horizontal partitioning
to sustain user load. However, horizontal partitioning has been shown very efficient only in reducing application-related overheads of user-perceived response times, without having much effect on network-induced latencies. Vertical partitioning
e.g., running web tier and business tier in separate VMs
has been used for fault isolation and load balancing but it is sometimes impractical due to significant run-time overheads
even if one would keep the tiers on a fast local-area network
related to heavy use of remote invocations. Recent work [14] in the context of J2EE component based applications has shown viability of vertical partitioning in wide-area networks without incurring the aforementioned overheads. The key conclusions from that study can be summarized as follows:
? Using properly designed applications, vertical distribution across wide-area networks improves user-perceived latencies.
? Wide-area vertical layering requires replication of application components and maintaining consistenc
正在加载中,请稍后...jsp外文文献_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
jsp外文文献
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢j2ee外文翻译--J2EE开发框架_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
j2ee外文翻译--J2EE开发框架
je​e​外​文​翻​译
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢使用Eclipse构建Maven的SpringMVC项目 - 黎明你好的技术博客 - ITeye技术网站
博客分类:
使用Eclipse构建Maven的SpringMVC项目
首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e。
用MyEclipse安装Maven插件,建出的Maven项目有些问题。一是,发布tomcat的时候resources总是不会被发布到tomcat下;二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class。要么真不在WEB-INF生成classes了但是发布tomcat的时候,class文件一个都不会给你发布过去,超级郁闷。但是使用Eclipse构建Maven项目后,使用MyEclipse打开就没问题了。
用maven的好处:我感觉最主要就是自动下载jar包和它所依赖的包,这样可以保证了多人开发时jar版本不同的问题。再就是文件结构清晰,java文件,资源文件,测试文件都分的很清楚。
将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven项目方法。
一、直接建立Maven项目方法
1、建立Maven项目
接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:
1.1 选择建立Maven Project
选择File -& New -& Other,在New窗口中选择 Maven -& Maven Project。点击newxt。
1.2 选择项目路径
Use default Workspace location默认工作空间。
1.3 选择项目类型
在Artifact Id中选择maven-archetype-webapp
1.4 输入Group ID和 Artifact ID,以及Package
Group ID一般写大项目名称。Artifact ID是子项目名称。
例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。
Package是默认给你建一个包,不写也可以。
1.5 刚建立好后的文件结构如下图
如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。
2、配置Maven项目
接下来就需要更改好多配置了。
2.1 添加Source文件夹
接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -& Source Folder,
建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。
2.2 更改class路径
右键项目,Java Build Path -& Source
下面应该有4个文件夹。src/main/java,src/main/resources,src/test/java ,src/test/resources。
双击每个文件夹的Output folder,选择路径。
src/main/java,src/main/resources,选择target/
src/test/java ,src/test/resources, 选择target/test-
选上Allow output folders for source folders.
在此处还要更改:
更改文件夹显示的顺序:点击Order and Export。
更改JDK版本:在Libraries双击JRE System Library,要1.6版本。
2.3 把项目变成Dynamic Web项目
2.3.1 右键项目,选择Project Facets,点击Convert to faceted from
2.3.2 配置Project Facets
更改Dynamic Web Module的Version为2.5。(3.0为Java7的)。
如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。
2.3.3 配置 Modify Faceted Project
点击Further configuration available…,弹出Modify Faceted Project窗口
此处是设置web.xml文件的路径,我们输入src/main/webapp。
Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。
2.4 设置部署程序集(Web Deployment Assembly)
上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图:
此处列表是,部署项目时,文件发布的路径。
1,我们删除test的两项,因为test是测试使用,并不需要部署。
2,设置将Maven的jar包发布到lib下。
Add -& Java Build Path Entries -& Maven Dependencies -& Finish
设置完成效果图
3、向maven项目中添加jar包
maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。
3.1 在pom.xml中添加所需要的jar包
使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来dependencies内容。
3.2设置jar包的scope
当添加进入一个jar包后,有一些属性需要设置,最重要的就是scope,它有以下几种取值:
compile,缺省值,适用于所有阶段,会随着项目一起发布。
provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。
通常SpringMVC项目所需要配置scope的jar包如下图:
有的时候发现servlet-api还是被打包到lib下面了,此时肯定会报错。就需要把maven插件中的WTP也安装一下。
Eclipse在线安装路径:http://m2eclipse.sonatype.org/sites/m2e-extras。选择for Eclipse WTP。
4、构建SpringMVC框架
4.1 编辑web.xml文件
需要添加log4j,字符过滤,Spring 的dispatcher等。
webx.xml代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&web-app xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" &
&!-- 区分项目名称,防止默认重名 --&
&context-param&
&param-name&webAppRootKey&/param-name&
&param-value&maven.example.root&/param-value&
&/context-param&
&!-- Spring的log4j监听器 --&
&listener&
&listener-class&org.springframework.web.util.Log4jConfigListener&/listener-class&
&/listener&
&!-- 字符集 过滤器
&filter-name&CharacterEncodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&CharacterEncodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&!-- Spring view分发器 --&
&servlet-name&dispatcher&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/dispatcher-servlet.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&dispatcher&/servlet-name&
&url-pattern&*.do&/url-pattern&
&/servlet-mapping&
&/web-app&
4.2 编写Spring配置文件dispatcher-servlet.xml
如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"&
&mvc:annotation-driven /&
&context:component-scan base-package="liming.maven.example" /&
&bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&property name="prefix" value="/WEB-INF/views/" /&
&property name="suffix" value=".jsp" /&
4.3 编写一个Controller层测试类
编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:
package liming.maven.example.
import org.springframework.stereotype.C
import org.springframework.ui.M
import org.springframework.web.bind.annotation.RequestM
@Controller
public class GeneralController {
@RequestMapping(value="index.do")
public void index_jsp(Model model){
model.addAttribute("liming", "黎明你好");
System.out.println("index.jsp");
4.4 编写index.jsp页面
首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。
在views下建index.jsp文件
我们使用jstl获取Controlleradd的数据。
Jsp页面代码如下:
&%@ page language="java" contentType="text/ charset=UTF-8" pageEncoding="UTF-8"%&
&%@ taglib prefix="c" uri="/jsp/jstl/core"%&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&
&title&Insert title here&/title&
&c:out value="${liming}"&&/c:out&
5,发布到tomcat
这个就没啥说的了。
Eclipse下Tomcat常用设置:/admin/blogs/825394
访问地址:http://localhost:8080/liming.maven.example/index.do
访问的结果来个截图:
二、建立Dynamic Web project转成Maven项目方法
7、第二种方法DynamicWeb项目转成Mavan
7.1 新建Dynamic Web Project
依次选择选择File -& New -& Other。在New窗口中选择Web下的Dynamic Web Project。点击next。
7.2 配置项目信息
7.2.1 输入项目信息
首先输入项目名称。
Target runtime 一般选择使用什么容器,tomcat之类的。可以先不选。
Dynamic web module version。就是版本号。选择2.5(3.0是Java7的)。
Configuration 是选择容易的配置。如果Target runtime选择了tomcat。这里对应也是选择tomcat。
7.2.2 配置source和output的folder
此窗口输入需要建立的Source folders。和默认output folder。
这个我们的Source folders等建立完项目后在添加。
output folder可以顺手改成target/classes。
7.2.3 配置web.xml文件的路径
7.3 转成maven项目
Dynamic web项目建立完后,首先将其转成maven项目。
右键此项目,选择maven -& Enable Dependency Management。弹出的窗口,直接finish就可以了。
7.4 其他配置
接下来的配置工作就和前面的基本一样了。
请参考上面。
2.1添加Source文件夹
2.2更改class路径。
2.3.3 配置 Modify Faceted Project
2.4 设置部署程序集(Web Deployment Assembly)
接着就是构建SpringMVC框架,发布到tomcat,测试。
下载次数: 2271
下载次数: 955
浏览 108308
可以使用,只不过提示找不到DispatcherServlet,多谢lz少依赖了一个spring-webmvc的包哈~
2.4 设置部署程序集(Web Deployment Assembly)我的eclipse左侧这一步没有Web Deployment Assembly选项怎么办啊??这个问题,我刚才找到一个答案:右击工程属性,找到Project Facets,选择Dynamic Web Module,2.5 点击apply。这样把这个maven工程转换成了web工程这样就有了,但同时会多出一个WebContent文件夹,不知道是否该删除。
你好,我用的IDE是Eclipse Java EE IDE for Web Developers.Version: Juno Service Release 1Build id: 0Tomcat是7.0.26步骤都差不多。但是启动之后我在tomcat里面没有发现相关的jar包被引进。请问还需要特别的操作配置吗?当然在本身项目中pom文件中配置的jar都已经下载好。谢谢!设置将Maven的jar包发布到lib下。不好意思。检查了是这一步没有弄好。Add -& Java Build Path Entries -& Maven Dependencies -& Finish
stephansun 写道有一个问题,j2ee项目通常我们会引入servlet-jsp.jar和jsp-api.jar,如果将这两个jar包加如maven,运行tomcat后,这两个jar包会进入WEB-INF/lib下,然后tomcat在解析jsp文件时会冲突。请问如何解决?
3.2 设置javax.servlet jsp-api和servlet-api的scope为provided
这个是因为tomcat里有了javax.servlet jsp-api和servlet-api.jar你在项目的lib下面提出这个两个包就可以了。
& 上一页 1
limingnihao
浏览: 718378 次
来自: 北京
我都调试了好几天了,根据你的部分方法,终于调试出来了!真是太 ...
参考博主的JK连接配置负载均衡成功
你好,我想问问这些架包,对于程序滴运行具体是什么作用?[siz ...
The Mongo object instance actua ...
[size=small][/size]撒旦撒posts - 198,&
comments - 1478,&
trackbacks - 6
Ruby on Rails 如此之热,忍不住也去看了看热闹,现在把一些相关的电子图书下载地址整理下,方便有兴趣的朋友。
&& 增加一卡通版的Ruby学习教程和一些不错的介绍(视频,音频,PDF或者Html格式的幻灯片,鉴于个人的听力能力,我还是比较喜欢最后幻灯片)。
- W(p)GtR is a cartoon book which teaches Ruby. This project houses the
Ruby, YAML and Textile code that the book is written in.
下载地址如下:
Posted on Saturday 12 August 2006
Here is a list of all the Ruby on Rails presentations that I have bookmarked.
- For me, this is the video that started it all.
- “On December 3, 2005, Ruby and Python developers from Chicago and
vicinity gathered at DePaul University to hear two of the leaders in
rapid Web-application development debate the merits of each other’s
frameworks.”
- “On December 3, 2005, Ruby and Python developers from Chicago and
vicinity gathered at DePaul University to hear two of the leaders in
rapid Web-application development debate the merits of each other’s
frameworks.”
- Dave Thomas, author of Agile Web Development with Rails and the pick axe book, challenges the Rails community.
- Discovering a world of Resources on rails.
PDF is available .
- Martin Fowler talks about good software design, simplicity, conversational software development, and postmodern programming.
- IMHO the best presentation to come out of RailsConf 2006! Paul Graham
is a great speaker/writer. In this presentation Paul Graham contradicts
the Old Testament and Yoda.
- a Q/A panel discussion with the rails core developers.
- An introductory presentation on Ruby on Rails by Stuart Eccles.
- Ruby on Rails Origin Drive Destination presentation given by David Heinemeier Hansson at Ruby Conf ‘04.
- “In this presentation, given at TheServerSide Java Symposium
Barcelona in June, Bruce Tate looks at how Java developers, framework
designers, and language designers can learn from the capabilities of
Ruby to improve Java.”
- Presentation material put together by Stuart Halloway and Justin Gehtland of Relevance LLC.
- Nice slides on Development with Ruby on Rails.
---以上为更新记录
Agile Web Development with Rails(DHH)
一个家伙Eiffel Qiu谈了谈Rails,感谢这个家伙(Eiffel Qiu)。
Rails4Days
cap-programming
Oreilly都出版了Ruby的书籍 Ruby in Nutshell
The Ruby way
以上来自/topic/4
《Agile Web Development With Rails》2nd edition
《Agile Web Development With Rails》
Rails圣经第1版
《Programming ruby》2nd edition
《Ruby on Rails》
RoR的简要介绍
《Ruby User's Guide》
Ruby创始人写的书籍
《yaml specification》
YAML标准详解
《oreilly.beyond.java.sep.2005》
Oreilly出的书
《Oreilly.Ruby.In.A.Nutshell》
Oreilly出的书
《the ruby way》
讲述有关ruby way的书籍
《ruby for rails》
假如你喜欢rails,但又没有ruby的基础,那么这将是你最好的选择
《Rails 4 days》
Rails快速入门
《AjaxFastLane》
Ajax快速入门
以上来自:http://www.judgeonline.net/downloads.html
既然要看ruby on rails 方面的书,那么就有必要看下这篇文章:
Ruby完全读书指南
随着Ruby和Rails的不断升温,可以预见很快就会有更多阐述某一细部的技术书籍出现,各种经验与模式也会结集出版。也许不久之后,就再也没人能像作者这样给出一份“Ruby完全读书指南”了。所以,能读到这样一篇文章,就当做是Ruby与你的缘分吧。
看到这样一个题目,大概很多读者会记起这样一张图片:左边堆着高高一摞关于Java的技术书籍,右边则是区区两本关于Ruby的。炮制这张图片
的用意显而易见,不过随着Ruby和Rails的急速窜红,Ruby图书也开始如同雨后春笋般纷纷问世——这也意味着学习者们需要花越来越多的时间和精力
来挑选适合自己的书了。
也许Ruby(以及Rails)正在像Java(以及J2EE)一样,不可逆转地变得越来越庞大,因此也需要越来越多的图书来阐释。不过至少现
在,我们还可以把所有关于Ruby的图书列举一遍——对于Java,这已经是一个不可能的任务。说句题外话,之所以我迫不及待地急着写这篇书评,正是因为
我相信它在不久之后也会成为一个不可能的任务。
Programming Ruby(2nd Edition)
&&& 这似乎已经不是怪事:关于一种编程语言的经典教材,作者不是这门语言的创造者。就像Stan Lippman之于C++、Joshua
Bloch之于Java、Martin Fowler之于UML一样,Dave
Thomas也许是这个世界上最善于向别人讲解Ruby语言的人——至少超过Matsumoto是毫无问题的。也许正是因为自己也经历了“不懂到懂”的学
习过程,有时候“旁观者”反倒比“创造者”更清楚学习者们需要什么。
所以这本书就是Ruby的经典教材。关于Ruby的基本语法和常用工具,书中第一部分和第二部分做了详细的介绍。第三部分“Ruby
Crystallized”更加阐述了Ruby语言的一些细节和设计理念,其中第23章“Duck
Typing”是刚从Java或者.NET平台走出来的读者不可错过的,因为对于类型与契约的理解、对于类与类型的理解,正是Ruby这种动态语言与
Java/C#等静态语言最大的区别之一。随后的第四部分提供了Ruby基础类库的速查手册。
Dave Thomas和Andy Hunt这两个“Pragmatic Programmer”并非浪得虚名:这本Programming
Ruby虽然不是一本称职的参考手册,却足够帮助一个初学者步入Ruby世界而不致误入歧途,并且能够在很少见的一些情况下——譬如说忘了yield的用
法——给有经验的Ruby程序员提供帮助。在我看来,这也就足够奠定它作为经典教材的地位了。由于封面上有一柄丁字镐,这本书也被昵称为“镐头书”——它
正是你发掘“红宝石”(Ruby)宝藏的必备工具。
Agile Web Development with Rails
Rails的作者David Heinemeier
Hansson说过一句大实话:“我从来不会为了学语言而学语言。”大多数人在大多数时候学习一种新的语言不是为了比较语言的优劣,而是因为这个语言底下
的某个工具能给他的工作带来帮助。Ruby世界里的这个“杀手应用”,让Ruby在短短一年时间里成为焦点的这个工具,就是Rails。
这是第一本介绍Rails的图书,又是由Rails的作者DHH和前面提到的Dave
Thomas共同撰写,其价值可谓不言而喻了。许是两位作者有太多的“干货”想要交给读者,这本书的第一版被他们——不幸地——写到了558页之厚。书中
首先展示了一个规模不大的在线购物网站,让读者亲身体验用Rails进行敏捷开发的感受;然后针对Rails框架的各个组件和安全、部署等延伸话题展开了
深入的讨论。其内容之全面、探讨之深入,令人叹为观止。看起来,和Matsumoto不同,DHH很清楚应该怎么介绍自己的作品——不管是“浅出”还是
“深入”。
值得中国读者高兴的是,这本书的第一版已经由林芷薰翻译,电子工业出版社付梓。Rails仍然处在高速发展的阶段,从本书第一版截稿至今,
Rails已经发生了相当大的变化,因此这本中译本甫一面世便已经有很多过时之处。但这本书毕竟不是参考手册,作者更多地是在其中阐述Rails的设计理
念和最佳实践。对于英文阅读无法达到最快速度的读者来说,这个译本未尝不可以是一个称职的向导。
Rails开发者助手两种
不难想象,有很多性急的程序员会——就像我一样——草草了解Ruby语法之后就一头扎进Rails的绚丽宫殿,体验快速开发web应用的成就
感,却不得不时时因为缺乏对Ruby语言的深入了解而感到迷惑:这个类里什么都没有,它为什么会工作?那个地方写的代码是什么意思?可是,要全面系统地学
习Ruby,又实在令人望而生畏。还好,我们有这本Ruby for
Rails。书中介绍了一些Ruby语言特性——既有普通的也有高级的,都是Rails中使用到的。简而言之,这就是一本专门为Rails应用开发者提供
的Ruby指南。更有趣的是,书中还用了一章(第17章)篇幅专门介绍“如何探索Rails源代码”,真可谓是“授人以渔”的典范了。
另一个“助手”则是Chad Fowler——他也是Programming Ruby的合著者——的Rails
Recipes。和任何一本“菜谱”(recipe)一样,这本书不会教你如何使用菜刀与炒勺、如何把蔬菜切片——你可以从别的很多地方学到这些技巧。这
本RailsRecipes教给读者的,是如何在
Rails环境下急就章地完成一个你需要的功能。譬如说“用户登录与身份验证”这件事,每个网站、每个开发者都曾经做过不止一次,这本书中就给了读者一个
简单而可靠的解决方案,读者只要抄抄改改,几分钟就可以完成这个功能。对于初接触Rails(以及Web
2.0)、面对很多问题尚且无从下手的新兵来说,这本书确实可以帮助他们解决一些实际问题。
不过这本书的局限也同样明显:如果你需要的菜色超出了这份菜谱的范围,它就只好爱莫能助了;而且,仅仅给出解决问题的代码,却没有对应的单元测
试,也让习惯了TDD的读者多少有些忐忑。在我看来,这本书对“授人以鱼”的专注恰好和前一本Ruby for
Rails构成了一对“可怕的对称”,也让这两本书有理由共存于Rails开发者的案头。
Ruby In A Nutshell,以及Ruby老书四种
作为Ruby语言的缔造者,Yukihiro
Matsumoto只能写一本“果壳书”,这本身就是一件耐人寻味的事情。O’Reilly的“果壳书”系列历来褒贬不一:有人认为它们缺乏深度,也有人
认为它们是快速入门的好帮手。但Matsumoto最大的问题在于:他创造了Ruby,却没有真正意识到这种语言到底有多大的威力——后来他经常在
Ruby on Rails讨论组活动,从中了解一些精妙的Ruby用法。其结果也很自然:这本Ruby In A
Nutshell作为语言参考中规中矩,但对于实际应用中的妙处——例如在DSL方面的应用——却语焉不详。再加上它所针对的Ruby版本是略显过时的
1.6版,也让这本书的地位略显尴尬。
和这本“略显尴尬”的Ruby In A
Nutshell比起来,另外的几本老书基本上已经失去了可读的价值:它们出版于2001或者2002年,既不针对最新的Ruby版本,又没赶上
Rails的热潮,作为语言参考也缺乏Matsumoto那样的权威性,所以这几本书也就被归入“不值一读”之列了。它们是:
Ruby Developer’s Guide,Syngress Publishing 2002
&&& The Ruby Way,Sams 2001
&&& Making Use of Ruby,Wiley 2002
Teach Yourself Ruby in 21 Days,Sams 2002
Ruby 奇书两种
称它们为“奇书”,因为它们的主题实在偏颇。先看这本Enterprise Integration with
Ruby:虽说脚本语言常常被称为“胶水”,有多少人会当真想到用Ruby去做企业应用集成?不过细看之下,这本书多少有些名不副实之嫌,因为它真正介绍
的无非只是如何访问数据库、如何操作XML、如何通过SOCKET通信之类比较底层的技术而已。在一个生僻的题目之下写着另一些生僻的内容,尽管这些内容
算得上有趣,但我还是要对那些没有读过这本书的Ruby程序员说:你没有错过太多——尽管这本书与你想象的并不一样。
最后要介绍的这本书更是备受争议:有人盛赞它是“精通Ruby的必经之路”,也有人批评它沉溺于奇技淫巧缺乏实用价值。但无论褒贬,更多的读者
正在逐一挑战其中的谜题——这本书就是James Edward Gray所著的Best of Ruby
Quiz。这本书(目前出版的是第一卷)列举了25道题目,读者大多可以想出一种办法来解决这些问题,往往还能
通过思考和重构找到第二种优雅的设计,但这本书却给你列出了第三种、第四种真正精巧的解决方案——充分利用Ruby技巧才能得出的解决方案。这些题目的最
终解法之巧妙,常常令人拍案叫绝(或是破口大骂)。不过这些“奇技淫巧”也并非全无用处,例如书中很多题目在解答时都用到了正则表达式,理解这些解答对于
深入学习正则表达式的用法是很有帮助的。
草率而又艰难地,我们粗粗浏览了2006年6月之前出版的所有Ruby图书。迄今为止,所有这些Ruby图书都是针对整个Ruby语言、或是针
对Rails框架的,只是关注角度各有区别。随着Ruby和Rails的不断升温,可以预见很快就会有更多阐述某一细部的技术书籍出现,各种经验与模式也
会结集出版。也许不久之后,就再也没人能像这样给出一份“Ruby完全读书指南”了。所以,能读到这样一篇文章,就当做是Ruby与你的缘分吧。
转载自:/?p=12
阅读(...) 评论()

我要回帖

更多关于 frameworks 的文章

 

随机推荐