说到 Web 开发框架,你都会想到哪些?不同开发者使用的框架也大不相同,你可能会想到 PHP 的Yii、Java 的 Play 或者Python的 Django 等.....估计,大家也不会忘记 Ruby 的 Ruby on Rails,它曾经是最受欢迎的全栈Web开发框架,它快速、灵活,但是近年来,也有声音唱衰它,大概是因为一部分大型互联网公司投奔了其他框架...然而,它的经典性、设计的灵巧性从来就不容质疑,它在创业和小型公司的应用也没有被撼动。很多初学者经常咨询 RoR 的指导图书,今天我们请到了 Rails 小姐姐来给大家介绍一下她新出的“自传”——《Ruby on Rails 教程(第4版)》,这本也是 RoR 领域首屈一指的参考书。
大家好,我是 Ruby on Rails,你可以叫我 Rails。我出生于2004年。我的爸爸是 David Heinemeier Hansson,圈内人都叫他 DHH 。谁说搞技术的人都很呆板,那你可真是没见过什么市面。现在市面上搞技术的人可都酷的不得了。我老爸曾经在博客上发过一个“15分钟开发一个博客”的视频,不知道你看过没有,简直是酷毙了!来!给你看看我偷拍他的照片。他的爱好很广泛的,不只是创始人,还是作家、摄影师以及赛车手。所以啊,遗传了他的优秀基因,我从小就喜欢冒险,尤其喜欢坐火车。
其实我是使用 Ruby 姐姐开发出来的一个 Web 开发框架。就在我出生后不久,我就迅速成为动态 Web 应用开发领域功能最强大、最受欢迎的框架之一。好多大公司都抢着使用我。虽然 Ruby 姐姐出生在日本,但是她却在欧美有着很高的人气。所以,托她的福,很多大公司也都很喜欢我。
像什么Airbnb、Basecamp、Disney、GitHub、Hulu、Kickstarter、Shopify、Twitter和Yellow Pages啦!还有一些专门从事 Rails 应用开发的 Web 开发工作室,例如ENTP、thoughtbot、Pivotal Labs、Hashrocket 和 HappyFunCorp,它们也都很喜欢我。不过说实话,我也不是很 care 这些了,主要还是因为我自身本来就很优秀嘛!
那我要是给你个机会说出我的几个优点,你会想到哪些呢?好吧!大部分人最先想到的可能就是快。不可否认这确实是我的优点,传说用6个星期就能推出一个网站。其实不管能不能,这都说明了我真的可以加速开发的进程哦~ 因为我有一个代码库,还可以提供各种插件,在开发一个 Web 应用程序时要比用一个典型的 Java 框架至少快10倍的速度,高效就是我的代名词。
除此之外我还继承了 Ruby 姐姐的一个优点——元编程。我使用元编程技术方案编写程序,虽然这些任务并不轻松,但是还是蛮值得信赖的。我是一个可以自我记录的框架,当活动记录发现 Rails 版本的数据库架构中的列,还会自动附加到对象域使用元编程。
或许在我2005年发布时你没有注意,Rails 的主要目标是实现约定优于配置。比如,大多数 Web 开发框架如 .NET 或 Java,迫使写配置代码的页面,在遵循命名约定时,我是不需要太多配置的。
还有就是我的脚手架功能,这么快速、简单的工具谁不想试一下呢?它能帮助应用程序快速创建临时代码,不过如果你是初学者,鉴于脚手架生成的代码量多且复杂,可能会让你困惑。虽然这样能学会脚手架的用法,但你可能并不明白到底发生了什么。使用脚手架,你只是一个脚本生成器的使用者,无法提升对 Rails 的认识。所以,还是要先学好 Rails 的基本操作哦~
而且,Rails 是完全开源的。基于宽松的 MIT 许可证发布,可以免费下载和使用。我的成功很大程度上得益于优雅而紧凑的设计。我熟谙 Ruby 姐姐的可扩展性,开发了一套用于编写 Web 应用的领域特定语言(domain-specific language,DSL)。所以 Web 编程中很多常见的任务,例如生成 HTML、创建数据模型和URL路由,在我这里都很容易实现,最终得到的应用代码简洁而且可读性高。
我还能快速地跟进 Web 开发领域最新的技术和框架设计方式。例如,最早的时候我是使用 REST 架构风格组织 Web 应用的框架之一。当其他框架开发出成功的新技术后,我老爸还有他的团队毫不犹豫地将其吸纳进来。最典型的例子或许就是 Rails 和 Merb 两个项目的合并,自此我继承了 Merb 的模块化设计、稳定的 API,性能也得到了提升。
最后一点,Rails 社区特别热情,乐于助人。社区中有数以千计的开源贡献者,会举办与会者众多的开发者大会,而且还开发了大量的 gem(代码库,一个gem 解决一个特定的问题,例如分页和图像上传),此外还有很多内容丰富的博客,以及一些讨论组和IRC频道。Rails 程序员众多也使得处理应用错误变得简单了:在 Google 中搜索错误消息,几乎总能找到一篇相关的博客文章或一个相关的讨论组话题。
我发展前景,这是一个充满争议的问题。其实我经常能听到哪个编程语言好这种争论。每个人的发展领域是不一样的,我觉得这种问题真的是相对而言的。作为一个 Web 框架,我觉得对前端开发的小伙伴来说,我还是一个很不错的选择的。这两年,以 React、Vue、Angular 为首的前端圈子开始火热起来,这也让我和 Ruby 姐姐的呼声大大降低。有人说现在用我的公司越来越少了,我的声音也越来越小了,恕我不敢苟同。我有没有前途更多的是取决于使用我的人想在哪个领域发展还有整个的技术环境的发展。
我的优势还是有很多地方可以发挥的,比如,我有一个很强大的生态圈,Web 领域大大小小的事情我都能包揽,因为我有成熟的库(gem)和解决方案。重要的是我会为你节省很多时间,不会让你重复制造车轮。当然,我也是有着缺点的,比如,有些性能问题还需要完善,作为动态语言的我开发效率可能没有静态语言那么高。不管怎样,我也如各位编程者一样,走在尽善尽美的路上。
我的爸爸 DHH 也一直在推动着 Rails 前进,很多社区中的编程者也都在社区贡献着自己的代码,大家都为了我的发展略尽绵力。我喜欢创新也乐于接受新鲜事物,并与我自己结合起来,这点和 Ruby 姐姐还是蛮像的。所以,希望每一个使用我的小伙伴都能从我身上得到你想要的。篇幅有限,我没法把我的优势、劣势和用法都说清楚,不过有一个叫 Michael Hartl 的大牛替我写了本自传,就是这本《Ruby on Rails 教程(第4版)》了,我需要请你翻开它好好读一读,帮助你更好地了解我,你也会发现了解我是你这辈子做的最值的事。
作者:Michael Hartl
译者:安道
定价:129.00元
《Ruby on Rails教程(第4版)》是全面修订过的新版本,涵盖 Rails 5。向你详细介绍 Web 应用开发的方方面面,包括 Ruby、Rails、HTML和CSS、数据库、版本控制、测试以及部署的基础知识。作者通过多个示例应用,详细介绍 Rails 的强大功能,不仅能让读者快速了解 Rails 框架基础并精通 Rails 开发,还能掌握 Web 开发的通用原则。
原版作者是 Michael Hartl,把 Ruby on Rails Web 开发介绍给世人的先行者之一,也是教育网站 Learn Enough to Be Dangerous 的创始人。他之前曾经写作并开发了 RailsSpace,一本很过时的 Rails 教程;也曾使用 Ruby on Rails 开发过一个名为 Insoshi 的社交网络平台,这个平台曾经很流行,现在已经过气了。因为他对 Ruby 社区的贡献,于 2011 年被授予了 Ruby Hero 奖。他毕业于哈佛学院,并获得了加州理工学院的 物理学博士学位。他还是 Y-Combinator 创业者项目的毕业生。
中文版译者安道。他是一名翻译爱好者,一直在学习使用 Ruby。已经翻译多本 Rails 相关的书籍,例如《使用 RSpec 测试 Rails 程序》和《Rails 程序部署之道》等。
第1章 从零开始,完成一次部署 1
1.1 简介 3
1.2 搭建环境 6
1.3 第一个应用 9
1.4 使用Git做版本控制 23
1.5 部署 32
1.6 小结 35
第2章 玩具应用 37
2.1 规划应用 37
2.2 Users资源 41
2.3 Microposts资源 52
2.4 小结 63
第3章 基本静态的页面 65
3.1 创建演示应用 65
3.2 静态页面 69
3.3 开始测试 77
3.4 有点动态内容的页面 82
3.5 小结 94
3.6 高级测试技术 95
第4章 Rails背后的Ruby 102
4.1 导言 102
4.2 字符串和方法 105
4.3 其他数据结构 113
4.4 Ruby类 123
4.5 小结 131
第5章 完善布局 133
5.1 添加一些结构 133
5.2 Sass 和Asset Pipeline 150
5.3 布局中的链接 157
5.4 用户注册:第一步 166
5.5 小结 170
第6章 用户建模 172
6.1 User模型 172
6.2 验证用户数据 182
6.3 添加安全密码 198
6.4 小结 205
第7章 注册 207
7.1 显示用户的信息 207
7.2 注册表单 222
7.3 注册失败 228
7.4 注册成功 240
7.5 专业部署方案 248
7.6 小结 252
第8章 基本登录功能 253
8.1 会话 253
8.2 登录 265
8.3 退出 279
8.4 小结 281
第9章 高级登录功能 283
9.1 记住我 283
9.2 “记住我”复选框 300
9.3 测试“记住我”功能 305
9.4 小结 312
第10章 更新、显示和删除用户 314
10.1 更新用户 314
10.2 权限系统 326
10.3 列出所有用户 338
10.4 删除用户 351
10.5 小结 360
第11章 激活账户 362
11.1 Account Activations资源 363
11.2 账户激活邮件 368
11.3 激活账户 380
11.4 在生产环境中发送邮件 391
11.5 小结 394
第12章 重设密码 395
12.1 Password Resets资源 397
12.2 密码重设邮件 404
12.3 重设密码 410
12.4 在生产环境中发送邮件(再谈) 421
12.5 小结 423
12.6 证明超时比较算式 423
第13章 用户的微博 425
13.1 Micropost模型 425
13.2 显示微博 436
13.3 微博相关的操作 447
13.4 微博中的图像 468
13.5 小结 481
第14章 关注用户 484
14.1 Relationship模型 487
14.2 关注用户的Web界面 498
14.3 动态流 522
14.4 小结 530
爱恨告白(文末福利)
本期 Rails 想做一次大家茶余饭后的讨论对象。
爱我的小伙伴们,让我看到你!说说你是怎么和我相遇的或者你因为什么爱上我?在你的编程史上,有没有出现过我的身影,我又帮你做过什么呢?
恨我的小伙伴们,可否告诉我,我的哪些特点吓到你不敢来追我,话说我也不算高冷哈!求接近哦~ 大家畅所欲言,精选留言选出3位小伙伴,获得我的自传。爱恨告白截止日期2017年11月16日。
扫一扫,京东购