Ruby自学该怎么看书?

来源:互联网 发布:netfits云墙 mac 编辑:程序博客网 时间:2024/04/30 19:15

比起 C, C++, Java 等语言,Ruby 相关书籍真是少得可怜。

但不影响 Ruby 成为一门受欢迎的开发语言,她有一个活跃的 Web 框架 Rails,Martin Fowler 都专门为她写了" Refactoring - Ruby Edition " 。

Ruby 非常适合学习编程的入门语言,因为她优美简洁的语法,她纯粹的 OO 特性,还有她强大的动态特性和 metagrogramming。

做 Ruby 的程序员还有一种福气,就是可以随着这个语言一起成长,看着 Ruby 由1.8,1.9, 2.0, 2.1 到现在的 2.2。

Rails 也由1发展到了4。快速的发布更新,不断的完善,自身的成长不也就是这样么?

我不是推销的,我只是一个 happy customer。

本文罗列那些年楼主自学 Ruby 看过的书,按照入门到中级到深入的顺序。

入门

1. The Well-Grounded Rubyist, Second Edition, 2014, David A. Black

the well grounded rubyist

入门书籍不在于多,就是有那么一本全面的介绍语言的基本语法,核心库,再多带那么些高级特性就够了。

这本是第二版,发行于2014年7月,针对的是 Ruby 2.1版。

它涵盖了语言的基本特性,包括了 Ruby object, class, module, control flow 等这些基础;

同时深入的介绍了 Ruby String, Symbol, Collection, Regular Expressions,还有 I/O;

最后一部分是 Ruby 动态特性的入门,介绍了 Ruby 下的 callable and runnable objects, 如 lambda, proc, Proc. 

作者是一个耐心的老师,用生动的比喻来解释 Ruby 下的概念,再用很多的例子来引导教学,你可以跟着书一起练习熟悉 Ruby。

书面这位优雅的女士,暗喻的是 Ruby 优雅的语法,而这本书也恰到好处的把她勾勒了出来。


2. Eloquent Ruby, 2011,Russ Olsen



如果你是 Java 或者 C# 的开发员转到 Ruby, 难免会把编写前两种语言的习惯带到 Ruby 来。这也就使得你的代码看起来不那么 Ruby。

这本书就是针对专治以上症结的。不单是从写法上,还从思考角度上,让你更好的利用 Ruby 的特性,从 Ruby 的角度编写程序。

它不单止于介绍 Ruby 的语言特性, 如 symbol, module, 还指出了使用它们的最佳实践。

同时它还是一本字典,其中解释了 DSL, Framework, Gem, Ruby Implementation 这些概念,为你通往下一个学习阶段做好准备。

如果第一本书是教你扎马步,那么这本书就是让你修炼轻功了。


3. The RSpec Book, 2011



Ruby 社区是很重视 测试的,无论是 TDD 还是 BDD。

RSpec 是 Ruby TDD 的一个测试框架,以其语言化的语法在社区里流行。

书从介绍 RSpec 的基本语法,特性开始,用实例来描述如何从 TDD 的角度做开发,如何做 Mock 和 Stub,如何让测试也做到 DRY ( Don't Repeat Yourself )。

这本书算是护体神功,帮助你消减 Bugs 的攻击。


4. Cucumber: 行为驱动测试, 2013


介绍了那么多,总于有一本中文翻译的了。。。。

我没有读过翻译版本,不知道如何。但是原著是很不错的。

与其把它看成是编程书籍,不如是思想书籍:如何通过测试来编写有效的代码?


中级

Ruby 不难入门, 接下来是大量反复的练习和实践,基于这些实践来反思。
Rails 框架很强大,能简化开发时间;但另外一面,太过于依赖框架,很容易忽视软件开发,OOP思想的原则。
懂得使用框架,不代表能写出优质,可拓展,拥抱变化的系统。
所以在这个阶段,楼主还会推荐一些软件设计和最实践的书籍。

5. Agile Web Development with Rails 4, 2013



经典书系列,随着 Rails 的版本发布不断的跟进修改。

亚马逊上的中文版本被批斗出翔了,又一本经典的烂翻译。

做编程的,英文是逃不掉的,好在 Rails 的中文社区也是很活跃,书籍慢慢的看,不单收获技术,英语能力也能提升。


6. Sinatra: up and running, 2011


Sinatra 是 Ruby 底下另一个很流行的 Web Framework。她比 Rails 更轻量,灵活可配置,上手快。

这本书很薄,才100多页,可是信息量很大。涵盖了 HTTP Request/Response, Session 这些  Web 开发中的基本概念,

还专门用一个章节来细致介绍了 Rack 和 Rack Middleware。最后是介绍如何用 Sinatra 来开发一个 Blog 系统。

短小精悍。如果再结合查看 Sinatra 的源码,会得到很大的提升。


7. Rails AntiPatterns: Best Practice Ruby on Rails Refactoring


如果要找 Rails 开发的最佳实践,那这本书一定要读。

书的结构很清晰,从 Model 层,到 Controller 到 Views, 然后是 DB, Testing 和 Deployment, 一一介绍开发中会碰到的 AntiPatterns,同时

给出详细的解决方案。

对于有过一定 Rails 开发经验的人,再来阅读这本书,能从别人的经验谈中优化自己的开发,学习更好的解决方案,收益会很大。


8. Practical Object-Oriented Design in Ruby: An Agile Primer,2012,Sandi Metz 


这本书也是有中文翻译的,据说质量翔。。。

Rails 框架的流行推动了 Ruby 的发展,太多的 Rails/Ruby Apps 被快速的开发出来,可却以牺牲

维护性和拓展性为代价。

系统紧耦合 ( Tightly Coupling), 破坏封装 ( Encapsulation Broken ),  违反 Law of Demeter,这些都会损害

系统的健康。归根结底是没有做到合理的 OOP 设计,而重度依赖了框架或者工具。

这本书让你重新认识 OOP 的编程思想,以及在 Ruby 下如何实现。

“As a self-taught programmer, this was an extremely helpful dive into some OOP concepts that I could definitely stand to become better acquainted with! And, I’m not alone: there’s a sign posted at work that reads, ‘WWSMD? – What Would Sandi Metz Do?’”

—Jonathan Mukai, Pivotal in NYC



 深入

楼主也是在深入学习 Ruby 的阶段。这个阶段更多是思考设计和架构。

9. Refactoring: Ruby Edition,2009, Jay Fields, Shane HarvieMartin FowlerKent Beck



楼主没有读过这本书,但是冲着 Martin Folwer 和 Kent Back 的大名来的。

在此摘抄官方的介绍:

This book will help you

这本书会帮助你:

•    Understand the core principles of refactoring and the reasons for doing it

     理解重构的核心原则以及为什么要这么做

•    Recognize “bad smells” in your Ruby code

     发现你 Ruby 代码中的 "bad smells"

•    Rework bad designs into well-designed code, one step at a time

     一步一个脚印的修复恶劣设计

•    Build tests to make sure your refactorings work properly

     测试驱动重构

•    Understand the challenges of refactoring and how they can be overcome

    认识重构会面临的挑战以及如何克服

•    Compose methods to package code properly

     运用 package 的思想来重构 methods

•    Move features between objects to place responsibilities where they fit best

     优化对象设计,封装职责

•    Organize data to make it easier to work with

     组织数据,让它更好的被调用

•    Simplify conditional expressions and make more effective use of polymorphism

     利用多态来简化选择逻辑

•    Create interfaces that are easier to understand and use

     设计简单易用的接口

•    Generalize more effectively 

     更有效的简化

•    Perform larger refactorings that transform entire software systems and may take months or years

     大型系统的重构     

•    Successfully refactor Ruby on Rails code

      成功的重构 ROR 代码


10. Design Patterns in Ruby, Russ Olsen2007


GoF's patterns 的 Ruby 诠释。

11. Metaprogramming Ruby 2: Program Like the Ruby Pros, 2014, Paolo Perrotta



学习元编程的不二选择,出到了第二版。

书中最后一章是介绍了 Rails 框架如何运用了元编程的思想,大大的满足好奇心。


12. Ruby Under a Microscope, 2013, Pat Shaughnessy


Ruby 到底是如何实现的,又如何运行你的代码,为什么说 Class 和 Module 是一样的,几乎所有东西 都是 Object?

Ruby 如何做 GC?这本书就回答了这些问题。

作者深入到 C code,但是不需要你有很强的 C 知识, 借用大量的图片和实践来描绘 Ruby 的内部工作。













0 0
原创粉丝点击