mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-23 21:20:42 +08:00
304 lines
16 KiB
Markdown
304 lines
16 KiB
Markdown
通过开源书籍学习 Ruby 编程
|
||
============================================================
|
||
|
||
![](https://i1.wp.com/www.ossblog.org/wp-content/uploads/2017/03/Ruby-Montage.png?w=565&ssl=1)
|
||
|
||
### 开源的 Ruby 书籍
|
||
|
||
Ruby 是由 Yukihiro “Matz” Matsumoto 开发的一门通用目的、脚本化、结构化、灵活且完全面向对象的编程语言。它具有一个完全动态类型系统,这意味着它的大多数类型检查是在运行的时候进行,而非编译的时候。因此程序员不必过分担心是整数类型还是字符串类型。Ruby 会自动进行内存管理,它具有许多和 Python、Perl、Lisp、Ada、Eiffel 和 Smalltalk 相同的特性。
|
||
|
||
Ruby on Rails 框架对于 Ruby 的流行起到了重要作用,它是一个全栈 Web 框架,目前已被用来创建许多受欢迎的应用,包括 Basecamp、GitHub、Shopify、Airbnb、Twitch、SoundCloud、Hulu、Zendesk、Square 和 Highise 。
|
||
|
||
Ruby 具有很高的可移植性性,在 Linux、Windows、Mac OS X、Cygwin、FreeBSD、NetBSD、OpenBSD、BSD/OS、Solaris、Tru64 UNIX、HP-UX 以及其他许多系统上均可运行。目前,Ruby 在 TIOBE 编程社区排名 12 。
|
||
|
||
这篇文章有 9 本很优秀的推荐书籍,有针对包括初学者、中级程序员和高级程序员的书籍。当然,所有的书籍都是在开源许可下发布的。
|
||
|
||
这篇文章是[ OSSBlog 的系列文章开源编程书籍][18]的一部分。
|
||
|
||
|
||
### 《[Ruby Best Practices][1]》
|
||
|
||
![Ruby Best Practices](https://i0.wp.com/www.ossblog.org/wp-content/uploads/2017/03/RubyBestPractices.jpg?resize=200%2C262&ssl=1)
|
||
|
||
作者: Gregory Brown (328 页)
|
||
|
||
《Ruby Best Practices》适合那些希望像有经验的 Ruby 专家一样使用 Ruby 的程序员。本书是由 Ruby 项目 Prawn 的开发者所撰写的,它阐述了如何使用 Ruby 设计美丽的 API 和特定领域语言,以及如何利用函数式编程想法和技术,从而简化代码,提高效率。
|
||
|
||
《Ruby Best Practices》 更多的内容是关于如何使用 Ruby 来解决问题,它阐述的是你应该使用的最佳解决方案。这本书不是针对 Ruby 初学者的,所以对于编程新手也不会有太多帮助。这本书的假想读者应该对 Ruby 的相应技术有一定理解,并且拥有一些使用 Ruby 来开发软件的经验。
|
||
|
||
这本书分为两部分,前八章组成本书的核心部分,后三章附录作为补充材料。
|
||
|
||
这本书提供了大量的信息:
|
||
|
||
* 通过测试驱动代码 - 涉及了大量的测试哲学和技术。使用 mocks 和 stubs
|
||
* 通过利用 Ruby 神秘的力量来设计漂亮的 API:灵活的参数处理和代码块
|
||
* 利用动态工具包向开发者展示如何构建灵活的界面,实现单对象行为,扩展和修改已有代码,以及程序化地构建类和模块
|
||
* 文本处理和文件管理集中于正则表达式,文件、临时文件标准库以及文本处理策略实战
|
||
* 函数式编程技术优化了模块代码组织、存储、无穷目录以及更高顺序程序。
|
||
* 理解代码如何出错以及为什么会出错,阐述如何处理日志记录
|
||
* 通过利用 Ruby 的多语言能力削弱文化屏障
|
||
* 熟练的项目维护
|
||
|
||
本书为开源书籍,在 CC NC-SA 许可证下发布。
|
||
|
||
[在此下载《Ruby Best Practices》][1]。
|
||
|
||
### 《[I Love Ruby][2]》
|
||
|
||
![I Love Ruby](https://i2.wp.com/www.ossblog.org/wp-content/uploads/2017/03/LoveRuby.png?resize=200%2C282&ssl=1)
|
||
|
||
作者: Karthikeyan A K (246 页)
|
||
|
||
《I Love Ruby》以比传统的介绍更高的深度阐述了基本概念和技术。该方法为编写有用、正确、易维护和高效的 Ruby 代码提供了一个坚实的基础。
|
||
|
||
章节内容涵盖:
|
||
|
||
* 变量
|
||
* 字符串
|
||
* 比较和逻辑
|
||
* 循环
|
||
* 数组
|
||
* 哈希和符号
|
||
* Ranges
|
||
* 函数
|
||
* 变量作用域
|
||
* 类 & 对象
|
||
* Rdoc
|
||
* 模块和 Mixins
|
||
* 日期和时间
|
||
* 文件
|
||
* Proc、匿名 和 块
|
||
* 多线程
|
||
* 异常处理
|
||
* 正则表达式
|
||
* Gems
|
||
* 元编程
|
||
|
||
在 GNU 自由文档许可证之下,你可以复制、发布和修改本书,1.3 或任何之后版本由自由软件基金会发布。
|
||
|
||
[点此下载《I Love Ruby》][2]。
|
||
|
||
|
||
### [Programming Ruby – The Pragmatic Programmer’s Guide][3]
|
||
|
||
![Programming Ruby - The Pragmatic Programmer's Guide](https://i1.wp.com/www.ossblog.org/wp-content/uploads/2017/03/ProgrammingRuby.jpeg?resize=200%2C248&ssl=1)
|
||
|
||
作者: David Thomas, Andrew Hunt (HTML)
|
||
|
||
《Programming Ruby – The Pragmatic Programmer’s Guide》是一本 Ruby 编程语言的教程和参考书。使用 Ruby,你将能够写出更好的代码,更加有效率,并且使编程变成更加享受的体验。
|
||
|
||
内容涵盖以下部分:
|
||
|
||
* 类、对象和变量
|
||
* 容器、块和迭代器
|
||
* 标准类型
|
||
* 更多方法
|
||
* 表达式
|
||
* 异常、捕获和抛出
|
||
* 模块
|
||
* 基本输入和输出
|
||
* 线程和进程
|
||
* 何时抓取问题
|
||
* Ruby 和它的世界、Web、Tk 和 微软 Windows
|
||
* 扩展 Ruby
|
||
* 映像、对象空间和分布式 Ruby
|
||
* 标准库
|
||
* 面向对象设计库
|
||
* 网络和 Web 库
|
||
* 嵌入式文件
|
||
* 交互式 Ruby shell
|
||
|
||
这本书的第一版在开放发布许可证 1.0 版或更新版的许可下发布。本书更新后的第二版涉及 Ruby 1.8 ,并且包括所有可用新库的描述,但是它不是在免费发行许可证下发布的。
|
||
|
||
[点此下载《Programming Ruby – The Pragmatic Programmer’s Guide》][3]。
|
||
|
||
### 《[Why’s (Poignant) Guide to Ruby][4]》
|
||
|
||
![Why’s (Poignant) Guide to Ruby](https://i1.wp.com/www.ossblog.org/wp-content/uploads/2017/03/WhysGuideRuby.jpg?resize=200%2C218&ssl=1)
|
||
|
||
作者:why the lucky stiff (176 页)
|
||
|
||
《Why’s (poignant) Guide to Ruby》是一本 Ruby 编程语言的介绍书籍。该书包含一些冷幽默,偶尔也会出现一些和主题无关的内容。本书包含的笑话在 Ruby 社区和卡通角色中都很出名。
|
||
|
||
本书的内容包括:
|
||
|
||
* 关于本书
|
||
* Kon’nichi wa, Ruby
|
||
* 一个快速(希望是无痛苦的)的 Ruby 浏览(伴随卡通角色):Ruby 核心概念的基本介绍
|
||
* 代码浮动小叶:评估和值,哈希和列表
|
||
* 组成规则的核心部分:case/when、while/until、变量作用域、块、方法、类定义、类属性、对象、模块、IRB 中的内省、dup、self 和 rbconfig 模块
|
||
* 中心:元编程、正则表达式
|
||
* 当你打算靠近胡须时:在已存在类中发送一个新方法
|
||
* 天堂演奏
|
||
|
||
本书在 CC-SA 许可证许可下可用。
|
||
|
||
[点此下载《Why’s (poignant) Guide to Ruby》][4]。
|
||
|
||
### 《[Ruby Hacking Guide][5]》
|
||
|
||
![Ruby Hacking Guide](https://i1.wp.com/www.ossblog.org/wp-content/uploads/2017/03/RubyHackingGuide.png?resize=200%2C250&ssl=1)
|
||
|
||
作者: Minero Aoki ,翻译自 Vincent Isambart 和 Clifford Escobar Caoille (HTML)
|
||
|
||
通过阅读本书可以达成下面的目标:
|
||
|
||
* 拥有关于 Ruby 结构的知识
|
||
* 掌握一般语言处理的知识
|
||
* 收获阅读源代码的技能
|
||
|
||
本书分为四个部分:
|
||
|
||
* 对象
|
||
* 动态分析
|
||
* 评估
|
||
* 外部评估
|
||
|
||
要想从本书中收获最多的东西,需要具备一定 C 语言的知识和基本的面向对象编程知识。本书在 CC-NC-SA 许可证许可下发布。
|
||
|
||
原书的官方支持网站为 [i.loveruby.net/ja/rhg/][10]
|
||
|
||
[点此下载《Ruby Hacking Guide》][5]
|
||
|
||
### 《[The Book Of Ruby][6]》
|
||
|
||
![The Book Of Ruby](https://i1.wp.com/www.ossblog.org/wp-content/uploads/2017/03/BookRuby.jpg?resize=200%2C270&ssl=1)
|
||
|
||
作者: How Collingbourne (425 页)
|
||
|
||
《The Book Of Ruby》是一本免费的 Ruby 编程高级教程。
|
||
|
||
《The Book Of Ruby》以 PDF 文件格式提供,并且每一个章节的所有例子都伴有可运行的源代码。同时,也有一个介绍来阐述如何在 Steel 或其他任何你喜欢的编辑器/IDE 中运行这些 Ruby 代码。它主要集中于 Ruby 语言的 1.8.x 版本。
|
||
|
||
本书被分成很小的块。每一个章节介绍一个主题,并且分成几个不同的子话题。每一个编程主题由一个或多个小的自包含、可运行的 Ruby 程序构成。
|
||
|
||
* 字符串、数字、类和对象 - 获取输入和输出、字符串和外部评估、数字和条件测试:if ... then、局部变量和全局变量、类和对象、实例变量、消息、方法、多态性、构造器和检属性和类变量 - 超类和子类,超类传参,访问器方法,’set‘ 访问器,属性读写器、超类的方法调用,以及类变量
|
||
* 类等级、属性和类变量 - 超类和子类,超类传参,访问器方法,’set‘ 访问器,属性读写器、超类的方法调用,以及类变量
|
||
* 字符串和 Ranges - 用户自定义字符串定界符、引号等更多
|
||
* 数组和哈希 - 展示如何创建一系列对象
|
||
* 循环和迭代器 - for 循环、代码块、while 循环、while 修改器以及 until 循环
|
||
* 条件语句 - If..Then..Else、And..Or..Not、If..Elsif、unless、if 和 unless 修改器、以及 case 语句
|
||
* 方法 - 类方法、类变量、类方法是用来干什么的、Ruby 构造器、单例方法、单例类、重载方法以及更多
|
||
* 传递参数和返回值 - 实例方法、类方法、单例方法、返回值、返回多重值、默认参数和多重参数、赋值和常量传递以及更多
|
||
* 异常处理 - 涉及 rescue、ensure、else、错误数量、retry 和 raise
|
||
* 块、Procs 和 匿名 - 阐述为什么它们对 Ruby 来说很特殊
|
||
* 符号 - 符号和字符串、符号和变量以及为什么应该使用符号
|
||
* 模块和 Mixins
|
||
* 文件和 IO - 打开和关闭文件、文件和目录、复制文件、目录询问、一个关于递归的讨论以及按大小排序
|
||
* YAML - 包括嵌套序列,保存 YAML 数据以及更多
|
||
* Marshal - 提供一个保存和加载数据的可选择方式
|
||
* 正则表达式 - 进行匹配、匹配群组以及更多
|
||
* 线程 - 向你展示如何同时运行多个任务
|
||
* 调试和测试 - 涉及交互式 Ruby shell(IRB.exe)、debugging 和 单元测试
|
||
* Ruby on Rails - 浏览一个创建博客的实践指南
|
||
* 动态编程 - 自修改程序、重运算魔法、特殊类型的运算、添加变量和方法以及更多
|
||
|
||
本书由 SapphireSteel Software 发布,SapphireSteel Software 是用于 Visual Studio 的 Ruby In Steel 集成开发环境的开发者。读者可以复制和发布本书的文本和代码(免费版)
|
||
|
||
[点此下载《The Book Of Ruby》][6]
|
||
|
||
|
||
### 《[The Little Book Of Ruby][7]》
|
||
|
||
![The Little Book of Ruby](https://i0.wp.com/www.ossblog.org/wp-content/uploads/2017/03/TheLittleBookRuby.png?resize=200%2C259&ssl=1)
|
||
|
||
作者: Huw Collingbourne (87 页)
|
||
|
||
《The Little Book of Ruby》是一本一步接一步的 Ruby 编程教程。它指导读者浏览 Ruby 的基础。另外,它分享了《The Book of Ruby》一书的内容,但是它旨在作为一个简化的教程来阐述 Ruby 的主要特性。
|
||
|
||
章节内容涵盖:
|
||
|
||
* 字符串和方法 - 包括外部评估。详细描述了 Ruby 方法的语法
|
||
* 类和对象 - 阐述如何创建一个新类型的对象
|
||
* 类等级 - 一个特殊类型的类,其为一些其他类的简化并且继承了其他一些类的特性
|
||
* 访问器、属性、类变量 - 访问器方法,属性读写器,属性创建变量,调用超类方法以及类变量探索
|
||
* 数组 - 学习如何创建一系列对象:数组包括多维数组
|
||
* 哈希 - 涉及创建哈希表,为哈希表建立索引以及哈希操作等
|
||
* 循环和迭代器 - for 循环、块、while 循环、while 修饰器以及 until 循环
|
||
* 条件语句 - If..Then..Else、And..Or..Not、If..Elsif、unless、if 和 unless 修饰器以及 case 语句
|
||
* 模块和 Mixins - 包括模块方法、模块作为名字空间模块实例方法、模块或 'mixins'、来自文件的模块和预定义模块
|
||
* 保存文件以及更多内容
|
||
|
||
本书可免费复制和发布,只需保留原始文本且注明版权信息。
|
||
|
||
[点此下载《The Little Book of Ruby》][7]
|
||
|
||
### 《[Kestrels, Quirky Birds, and Hopeless Egocentricity][8]》
|
||
|
||
![Kestrels, Quirky Birds, and Hopeless Egocentricity](https://i2.wp.com/www.ossblog.org/wp-content/uploads/2017/03/KestrelsQuirkyBirds.jpeg?resize=200%2C259&ssl=1)
|
||
|
||
作者: Reg “raganwald” Braithwaite (123 页)
|
||
|
||
《Kestrels, Quirky Birds, and Hopeless Egocentricity》是通过收集 “Raganwald” Braithwaite 的关于组合逻辑、Method Combinators 以及 Ruby 元编程的系列文章而形成的一本方便的电子书。
|
||
|
||
本书提供了通过使用 Ruby 编程语言来应用组合逻辑的一个基本介绍。组合逻辑是一种数学表示方法,它足够强大,从而用于解决集合论问题以及计算中的问题。
|
||
|
||
在这本书中,读者会会探讨到一些标准的 Combinators,并且对于每一个 Combinators,书中都用 Ruby 编程语言写程序探讨了它的一些结果。在组合逻辑上,Combinators 之间组合并相互改变,书中的 Ruby 例子注重组合和修改 Ruby 代码。通过像 K Combinator 和 .tap 方法这样的简单例子,本书阐述了元编程的理念和递归 Combinators 。
|
||
|
||
本书在 MIT 许可证许可下发布。
|
||
|
||
[点此下载《Kestrels, Quirky Birds, and Hopeless Egocentricity》][8]
|
||
|
||
### 《[Ruby Programming][9]》
|
||
|
||
![Ruby Programming](https://i1.wp.com/www.ossblog.org/wp-content/uploads/2017/03/RubyProgrammingWikibooks.png?resize=200%2C285&ssl=1)
|
||
|
||
作者: Wikibooks.org (261 页)
|
||
|
||
Ruby 是一种解释性、面向对象的编程语言。
|
||
|
||
本书被分为几个部分,从而方便按顺序阅读。
|
||
|
||
* 开始 - 向读者展示如何在其中一个操作系统环境中安装并开始使用 Ruby
|
||
* Ruby 基础 - 阐述 Ruby 语法的主要特性。它涵盖了字符串、编码、写方法、类和对象以及异常等内容
|
||
* Ruby 语义参考
|
||
* 内建类
|
||
* 可用模块,涵盖一些标准库
|
||
* 中级 Ruby 涉及一些稍微高级的话题
|
||
|
||
本书在 CC-SA 3.0 本地化许可证许可下发布。
|
||
|
||
[点此下载《Ruby Programming》][9]
|
||
|
||
* * *
|
||
|
||
无特定顺序,我将在结束前推荐一些没有在开源许可证下发布但可以免费下载的 Ruby 编程书籍。
|
||
|
||
* [Mr. Neighborly 的 Humble Little Ruby Book][11] – 一个易读易学的 Ruby 完全指南。
|
||
* [Introduction to Programming with Ruby][12] – 学习编程的基础知识,一切从零开始。
|
||
* [Object Oriented Programming with Ruby][13] – 学习编程的基础知识,一切从零开始。
|
||
* [Core Ruby Tools][14] – 对 Ruby 的四个核心工具 Gems、Ruby Version Managers、Bundler 和 Rake 进行了简短的概述。
|
||
* [Learn Ruby the Hard Way, 3rd Edition][15] – 一本适合初学者的入门书籍。
|
||
* [Learn to Program][16] – 来自 Chris Pine。
|
||
* [Ruby Essentials][17] – 一个准确且简单易学的 Ruby 学习指南。
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://www.ossblog.org/study-ruby-programming-with-open-source-books/
|
||
|
||
作者:[Steve Emms][a]
|
||
译者:[ucasFL](https://github.com/ucasFL)
|
||
校对:[wxy](https://github.com/wxy)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]:https://www.ossblog.org/author/steve/
|
||
[1]:https://github.com/practicingruby/rbp-book/tree/gh-pages/pdfs
|
||
[2]:https://mindaslab.github.io/I-Love-Ruby/
|
||
[3]:http://ruby-doc.com/docs/ProgrammingRuby/
|
||
[4]:http://poignant.guide/
|
||
[5]:http://ruby-hacking-guide.github.io/
|
||
[6]:http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html
|
||
[7]:http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html
|
||
[8]:https://leanpub.com/combinators
|
||
[9]:https://en.wikibooks.org/wiki/Ruby_Programming
|
||
[10]:http://i.loveruby.net/ja/rhg/
|
||
[11]:http://www.humblelittlerubybook.com/
|
||
[12]:https://launchschool.com/books/ruby
|
||
[13]:https://launchschool.com/books/oo_ruby
|
||
[14]:https://launchschool.com/books/core_ruby_tools
|
||
[15]:https://learnrubythehardway.org/book/
|
||
[16]:https://pine.fm/LearnToProgram
|
||
[17]:http://www.techotopia.com/index.php/Ruby_Essentials
|
||
[18]:https://www.ossblog.org/opensourcebooks/
|