This seems not surprising: the author is not the creator of a classic textbook about programming languages. Just as Stan Lippmann is to C++, Joshua Bloch is to Java, and martin fowler is to UML, dave thomas is probably the best person in the world to explain Ruby to others-at least it is no problem to surpass Matsumoto. Perhaps it is precisely because I have also experienced the learning process of "understanding without understanding", so sometimes "bystanders" know better what learners need than "creators".
So this book is a classic textbook of Ruby. The first and second parts of this book introduce the basic grammar and common tools of Ruby in detail. The third part "Ruby Crystallization" further expounds some details and design concepts of Ruby language, among which Chapter 23 "Duck Typing" is just from Java or. NET platform, because of the understanding of types and contracts, classes and types, is one of the biggest differences between Ruby, a dynamic language, and static languages such as Java/C#. The fourth part provides a quick check manual for Ruby basic class library.
Dave thomas and andy hunter, two "practical programmers", are not worthy of the name: although this programming Ruby is not a competent reference manual, it is enough to help a beginner enter the Ruby world without going astray, and in rare cases, such as forgetting the usage of yield, it can also help experienced Ruby programmers. In my opinion, this is enough to establish its position as a classic textbook. Because there is a T-pick on the cover, this book is also nicknamed "pickaxe book"-it is a necessary tool for you to discover ruby treasures.
Agile Web development using Rails
David Heinemeier Hansson, the author of Rails, said a big truth: "I will never learn a language for the sake of learning it." Most people learn a new language, most of the time not to compare the advantages and disadvantages of this language, but because a tool under this language can help their work. This "killer application" in Ruby world, the tool that makes Ruby become the focus in just one year, is Rails.
This is the first book introducing Rails, written by DHH, the author of Rails, and the aforementioned dave thomas * * *, and its value is self-evident. Perhaps the two authors have too much "dry goods" to give their readers. They wrote the first edition of this book-unfortunately-with a thickness of 558 pages. First of all, this book shows a small online shopping website to let readers experience the feeling of agile development using Rails. Then, we will discuss in depth the various components of the Rails framework and extended topics such as security and deployment. Its comprehensive content and in-depth discussion are amazing. It seems that, unlike Matsumoto, DHH knows very well how to introduce his works-whether it is "simple" or "in-depth".
To the delight of readers in China, the first edition of this book has been translated by Lin Zhixun and published by Fu Zi Electronic Industry Press. Rails is still in the stage of rapid development. Rails has changed a lot since the first edition of this book was written, so this Chinese translation is out of date. But this book is not a reference manual after all, and the author mainly expounds the design concept and best practice of Rails. This translator can be a competent guide for readers who can't read English at the fastest speed.
There are two kinds of Rails developer assistants.
It is not difficult to imagine that many impatient programmers, like me, will plunge into the magnificent palace of Rails and experience the sense of accomplishment of developing web applications quickly after a rough understanding of Ruby grammar. However, due to their lack of in-depth understanding of Ruby language, they have to be confused from time to time: why can this class work when there is nothing? What does the code written in that place mean? However, learning Ruby comprehensively and systematically is really daunting. Fortunately, we have this Ruby for Rails. This book introduces some features of Ruby language-both ordinary and advanced, which are used in Rails. In short, this is a Ruby guide for Rails application developers. More interestingly, the book also devoted a chapter (chapter 17) to "how to explore the source code of Rails", which is really a model of "giving people a fish".
Another "assistant" is Chad Fowler's Rails Recipes, who is also the co-author of Programming Ruby. Like any cookbook, this book won't teach you how to use a kitchen knife and a frying spoon, and how to cut vegetables-you can learn these skills from many other places. This RailsRecipes book teaches readers how to complete a function you need in a hurry under the Rails environment. For example, "user login and authentication" has been done by every website and every developer more than once. This book gives readers a simple and reliable solution, and readers can complete this function in a few minutes by copying and modifying it. For recruits who have just come into contact with Rails (and Web 2.0) and still have a lot of problems to solve, this book can really help them solve some practical problems.
However, the limitations of this book are equally obvious: if the dishes you need are beyond the scope of this recipe, you will have no choice; Moreover, only the code to solve the problem is given, but there is no corresponding unit test, which makes readers accustomed to TDD a little uneasy. In my opinion, this book's focus on "giving people fish" is just a pair of "terrible symmetry" with Ruby for Rails, which also gives these two books a reason to be kept on the desks of Rails developers.
A simple ruby
As the founder of Ruby language, Matsumoto Sachi Hong can only write a "shell book", which is an intriguing thing in itself. O 'Reilly's "Shell Book" series has always been mixed: some people think it lacks depth, while others think it is a good helper for getting started quickly. But Matsumoto's biggest problem is that he created Ruby, but he didn't really realize the power of this language-later he often participated in Ruby on Rails discussion groups and learned some subtle Ruby usage. The result is also natural: Ruby In through performs well as a language reference, but it is vague about the beauty of practical applications, such as the application in DSL. In addition, the Ruby version it is targeting is a slightly outdated version of 1.6, which also makes the position of this book slightly awkward.
Two kinds of ruby books
Call them "magic books" because their themes are really biased. Read the book Enterprise Integration with Ruby first: Although scripting language is often called "glue", how many people will seriously think of using Ruby for enterprise application integration? But on closer inspection, this book is not worthy of the name, because it really only introduces the relatively low-level technologies such as how to access the database, how to operate XML, and how to communicate through SOCKET. There are other unusual contents written under an unusual topic. Although these contents are interesting, I still want to say to Ruby programmers who haven't read this book: You haven't made too many mistakes-although this book is not what you expected.
The last book to be introduced is even more controversial: some people praise it as "the only way to master Ruby", while others criticize it for being addicted to strange skills and lacking practical value. However, regardless of praise or criticism, more readers are challenging puzzles one by one-this book is the best in james edward Gray's Ruby Question and Answer. This book (the first volume has been published at present) lists 25 topics. Most readers can think of solutions to these problems, and often find a second elegant design through thinking and reconstruction. However, this book lists the third and fourth truly ingenious solutions for you-solutions that can only be obtained by making full use of Ruby skills. The ingenious final solutions to these problems often make people gape (or swear). However, these "strange tricks" are not completely useless. For example, many questions in the book use regular expressions in their answers. Knowing these answers is helpful for further learning the usage of regular expressions.