阅读更多
毫无疑问,ruby on rails这个号称开发速度10倍于Java的快速web开发框架是2005年2006年连续两年web应用开发领域最大的奇迹。自从2004年7月ruby on rails第一个版本发布以来,ruby on rails以令人惊讶的速度迅速征服了web应用开发领域,在2006年3月毫无悬念的获得了第16届Jolt大奖的web开发工具奖项;rails的作者DHH(David Heinemeier Hansson)也因此得到了巨大的荣誉,2006年8月荣获OSCON(全球开源大会)年度最佳黑客;而依靠ruby on rails起家,开发web2.0互联网应用的37signals公司则得到了Amazon创始人Jeff Bezos的投资,Bezos本人则对ruby on rails相当看好,计划推出基于ruby on rails的Hosting服务。

在2005年和2006年,整个ruby社区和rails社区也呈现出来爆炸性的发展趋势,并且诸多Java社区,敏捷社区的德高望众的人士例如Andrew Hunt,Bruce Tate,Martin Folwer纷纷投身ruby和rails社区,这恐怕不单单用开发速度快就能够解释的了。

《Agile Web Development with Rails》这本书的名字其实就已经很好的揭示了ruby on rails流行和获得社区认可的一个很重要原因,那就是“Agile”。随着互联网web2.0时代的来临,对于应用软件行业来说,也越来越需要能够灵活应变需求,能够快速开发,能够迅速提供用户反馈的软件发展趋势。例如我们可以观察到IBM的企业文化叫做“随需应变”,HP的企业文化叫做“动成长”,而BEA的企业文化叫做“流体思维”,角度虽然不同,但是无一不是揭示出来软件发展的趋势,即“Agile”,能够灵活应变的本领。而ruby on rails框架正是顺应了“Agile”的大势,才得以迅速走红的。

ruby on rails在国内一个可以参考的成功案例就是JavaEye2.0网站:
http://www.iteye.com
三个资深的Java程序员,在没有ruby on rails项目开发经验的情况下,仅仅使用了一个月时间,就完成了包括论坛,博客,招聘等多种功能融合一体的综合性技术网站的设计,开发,测试,迁移和部署上线运营,在使用其他web开发技术的情况下,这么快的开发速度是不可想象的。目前JavaEye2.0网站的服务器每天要处理超过15万ruby动态请求,独立访问IP也超过了1万。

如果要学习ruby on rails,《Agile Web Development with Rails》是不容错过的。这本书的作者Dave Thomas也是著名的敏捷宣言成员之一,在技术出版行业久负盛名,也正是由于Dave Thomas在2000年出版的《Programming ruby》一书,将默默无闻的ruby编程语言带入到了全球知名的高度。也正是这本经典教材《Agile Web Development with Rails》促进了ruby on rails的普及程度,本书也同时获得了第16届Jolt大奖的General Technical Book大奖,可谓实至名归。

《Agile Web Development with Rails》前面12章不是按部就班介绍rails框架,而是一上来就开始手把手教你快速开发一个Depot的迷你购物系统。然后才是rails框架每个部分的详细讲解和剖析,最后两章是web开发的安全性问题和应用部署调优,附录还有一些rails配置的介绍和ruby编程语言的快速入门。这种行文的结构非常符合初学者的学习习惯,先通过一个案例从整体上快速把握和了解一个技术的大致情况,然后才是每个部分深入学习,最后的web安全性和应用部署调优的章节特别值得大家仔细去阅读和学习,这部分内容往往是web开发人员比较薄弱的知识环节,附录的ruby编程语言快速入门可以让你扫平阅读本书的基础知识方面的障碍,因此从本书的目录结构来看,作者也是匠心独运。

《Agile Web Development with Rails》这本书的中文版《应用Rails进行敏捷Web开发》在2006年8月就已经上市,由林芷薰翻译。译者到是名不见经传,但是这本书的翻译相当到位,不得不赞一句译者投入的精力和翻译的质量。值得一提的是,中文版的翻译并不完全按照英文直接字面翻译,很多地方使用了非常中文口语化的意译,让人看起来感觉十分生动有趣,平添几分轻松感。如果想要ruby on rails快速入门,那么这本书无疑是首选推荐,对于我们JavaEye网站的三个开发人员来说,也是人手一册。如果你没有学习过ruby,那么建议你先快速看一遍附录ruby入门的章节,然后再大致浏览一遍这本书的主要内容,把Depot案例从头到尾做一遍,就可以用rails做项目了。在项目开发过程中遇到问题再回过头来查阅本书,查阅最新的rails API文档,或者通过Google搜索。若是没有这本书的帮助,我们的rails水平进步速度可能也没有这么快吧。

目前《Agile Web Development with Rails》的第二版作者还在撰写过程中,可以通过Amazon网站购买第二版beta版的英文电子书。第二版从我拿到的版本来看,增加了数据库Migration和RJS的章节,其他各个章节也进行了内容的扩充,但是第二版还并没有最后完成,一些内容还是空着的。所以第二版的英文版正式上市时间还很难说,至于相应的中文版,也要等到英文版推出之后了。

因此对于准备学习和掌握ruby on rails的开发人员来说,现在可以购买《应用Rails进行敏捷Web开发》来学习,如果有条件,可以参考第二版英文版的相应章节,了解一下哪些内容进行了扩充和增加。

最后,要想掌握一门编程技术,最重要的还是实践,《应用Rails进行敏捷Web开发》可以带领你入门,然后就要靠你自己的了。
8
2
评论 共 2 条 请登录后发表评论
2 楼 lliiqiang 2014-09-03 09:45
完全不同语言看着费劲,前面的东西用后面的东西不理解,只能分割着看,先留着,但是最好声明一下.
1 楼 dyllove98 2009-12-28 09:00
“号称开发速度10倍于Java的快速web” 这个好像是某位大言不惭的网友说的把,然后被ruby的最捧者当作"神语"一样的崇拜~~ruby on Rails的确很棒~但是没说的那么神

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • # IPTV_video #IPTV电视源 #直播源

    电视直播源

  • np.apply_along_axis函数用法

    这个函数的各个参数的含义请大家自行查阅了解,这里只记录一下参数axis的作用。 首先定义一个函数来打印数组的shape与内容,然后生成一个4x3的数组array: def print_a(array): print("shape: %s, array is \n%s"%(array.shape, array)) array=np.array([[2,3,4],[3,4,5],[6,7,8],[7,8,9]]) 对这个数组调用np.apply_along_axis函数,看该函数会对数组产生什么作用

  • python中apply函数

    函数原型 DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds) 1.该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。 2.这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据 结构传入给自己实...

  • 通过三个apply() 例子了解apply()

    一,更改this指向 代码: var name = 'window'; //默认规划到全局作用域 window 中,等于 window.name var obj = { name : 'obj' }; function getName() { return this.name; } console.log(...

  • IDEA 常用快捷键以及调试

    用了这么久的IDEA还没有正经总结过自己使用过的快捷键,以及正经调试过一次代码,今天不读源码,来总结一下这个检测工具的使用。

  • NumPy学习笔记(二)

    numpy索引;numpy切片;numpy数组迭代;np.apply_along_axis()聚合函数

  • IDEA中常用的调试快捷键

    快捷键可以帮助你更有效调试代码,逐步执行代码并检查变量值,以及快速定位和解决问题.不过,一些快捷键可能会因为IDE版本或者个人设置而有所不同,但以上是一般情况下的默认设置。在代码行号左侧双击,或者使用。在调试模式下,选中变量,然后。

  • 详解Oracle数据库中的rowid原理及优化方法

    在Oracle数据库中,ROWID(Row Identifier)是一个独特的伪列,它是一个二进制值,用于唯一标识数据库表中每一行的物理位置。

  • OceanBase 中的ROWID与Oracle的差异与如何迁移

    OceanBase兼容Oracle的rowid特性,但在其生成规则上却存在不同。迁移数据时应该如何操作呢? ​

  • IntelliJ IDEA 206 个快捷键大全,动图演示!搬砖杠杠的!

    IntelliJ IDEA相关快捷键的使用

  • Oracle中ROWID的使用

    在上述代码中,将table_name替换为实际表的名称,column1、column2等替换为实际的列名,value1、value2等替换为实际的值,'AAAAAAAABBBBBBBBRRRR’替换为实际的ROWID值。执行此更新语句后,将会更新具有匹配ROWID的行的数据。在上述代码中,将table_name替换为实际表的名称,以及’AAAAAAAABBBBBBBBRRRR’替换为实际的ROWID值。在Oracle数据库中,每一行都有一个唯一的ROWID,它是一个字符串,用于标识数据库中的特定行。

  • 【IDEA开发工具的常用设置和快捷键及Debug调试】

    本文主要是进行了一些常见设置和快捷键的汇总和一些简单的Debug调试方法,如果在本文查不到到时候直接百度即可,其它新版本几乎都相差不大的,设置的位置可能有些变化。

  • oracle中rowid的用法 (全面)

    oracle中rowid的用法 分类: Oracle Fundamental 2013-10-25 14:52 34人阅读 评论(0) 收藏 举报 ROWID数据块DUMPBASE64编码 ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。 ROWID可以分为物理rowid和逻辑rowid两种。普通的堆表中的ro

  • oracle中使用rowid删除重复数据

    在Oracle中,rowid就是唯一标志记录物理位置的一个id,每一条记录都对应一个rowid,且rowid是唯一的。如下图所示,表中除了rowid之外,有重复记录,就可以使用rowid来删除。同一条记录,保留rowid最大的值,其余的删掉。也可以使用not in 删除。

  • python中numpy.apply_along_axis()函数的用法

    1.函数原型 numpy.apply_along_axis(func, axis, arr, *args, **kwargs) 2.作用: 将arr数组的每一个元素经过func函数变换形成的一个新数组 3.参数介绍: 其中func,axis,arr是必选的 func是我们写的一个函数 axis表示函数func对arr是作用于行还是列 arr便是我们要进行操作的数组了 可选参数:*args, **k...

  • 金蝶专业版过账提示运行时错误5_金蝶KIS专业版常见故障及解决办法

    金蝶KIS专业版常见故障及解决办法金蝶KIS专业版常见故障有哪些你知道吗?你对金蝶KIS专业版常见故障了解吗?你知道如何解决金蝶KIS专业版常见故障吗?下面是yjbys小编为大家带来的关于金蝶KIS专业版常见故障的知识,欢迎阅读。一、操作中提示:“当前使用的功能与其他用户有冲突,目前无法使用。”答:在 开始--程序-- 金蝶KIS专业版--工具--系统工具--系统工具--网络控制工具--打开,登录...

  • IDEA快捷键大全

    IntelliJ IDEA快捷键大全、快捷键使用教程

  • 在linux服务器安装windows,在Windows操作系统中安装Linux系统

    很多人对我写下面的东西已不屑一看了,但我写这个帖子的原因是:很多在Windows下想安装Linux的人不知如何开始,如何下手安装。等进入到安装界面又出现了很问题。不得不中途放弃。好了,从我做起,开始新手上路!我想要从windows下转到linux应该要做以下几方面的事情:一、做好心理上的准备:windows是一个商业软件,它有很多的合作者,而且也占据了桌面的大部分市场,所以在它的下面有很多的软件可...

  • 如何将Linux系统换成windows系统

    很高兴你能高阅读到这篇文章,说明你对安装操作系统也有一定的了解,但是将linux换成windows总会出现这样或者那样的问题。不用慌,这篇文章足够可以解决你的问题! 制作u盘启动 首先用Rufus做U盘启动,镜像用https://msdn.itellyou.cn/上面的,下载工具好像迅雷这种都可以。但是u盘必须要用Rufus,镜像用itellyou的,干净和官方。其他的估计会出现问题。 文件格式 对于win10来说,文件系统必须是ntfs,你读到这篇文章,说明你是卡在u盘启动已经做好,但是安装的时候报错.

  • 西北工业大学cpSkill平台Python作业NOJ(81-90)

    仅供参考 前20传送门:https://blog.csdn.net/weixin_43520256/article/details/109137288 21-30传送门:https://blog.csdn.net/weixin_43520256/article/details/109137366 41-50传送门:https://blog.csdn.net/weixin_43520256/article/details/109137411 61-70传送门:https://blog.csdn.net/wei

Global site tag (gtag.js) - Google Analytics