Professionals and students of the World Wide Web (WWW) industry will benefit greatly from this book. For beginners, the author demystifies many technical terms in Web development well beyond the scope of Ruby on Rails. For advanced software developers, he presents the beauty of the Ruby language and unveils the strength of the Rails framework. There is also a wealth of online material, video lessons, links, tips, and tricks to help readers go beyond the Rails tutorial.
The book is remarkably written, with a good balance between presenting the concepts behind Web development and interacting with the reader. The author takes great care with the pronunciation and origin of words, and even greater care introducing the basics of programming. Both are very important for a hands-on approach to learning, which the author masterfully accomplishes in this tutorial.
The tutorial starts with a broad overview of concepts in chapter 1, explaining three major points of software production: the development environment, version control, and deployment. Each topic is supplemented with notable up-to-date open-source tools. In chapter 2, the author constructs a complete sample demonstration application, using many pointers to topics discussed later in the book, which might confuse or discourage the reader. But to those readers who hold tight, the software architecture in the Rails framework becomes clear over the remainder of the book. I especially appreciate the way the author reassures the reader of the vast complexity of Ruby on Rails, admitting that he himself does not know everything that all the Rails classes can do.
The subsequent chapters present guidelines for learning Ruby on Rails with three foundational functions: test-driven development, implementation, and testing. In chapter 3, the author shows how the testing function can be automated. Chapter 4 is the only one dedicated to the Ruby language; it moves at a very fast pace, so readers mainly interested in Ruby are advised to seek other more specific technical books on the subject. Chapter 5 continues to explore the relationship between the Rails asset pipeline and the elements of cascading style sheets (CSS) and Hypertext Markup Language 5 (HTML5). It enters smoothly into style sheets and web design to the point where the mockup pages are actually visually bad compared to the final dynamic pages produced by the tutorial. The fundamental notions taught in chapters 4 and 5 pave the way for the last half of the book. Chapter 6 begins with directions on how to undo mistakes made during the tutorial, using the Rails sandbox console and the rollback command from Rake, a software task management tool related to Ruby. Security concerns are addressed in chapters 7 to 9, including user records and sign-up, sign-in, and sign-out pages. Particularly in chapter 9, the user is constantly reminded of possible attacks from malicious users and ways developers can prevent such attacks.
The book finishes with a section on a microblog functionality, wrapping up the wide context presented since the first chapter. Chapter 10 explains database modeling with associations between users and micropost tables. A more complex data model abstraction is given in chapter 11, neatly implementing the concept of users following other users. This concludes the tutorial.
In summary, the book provides substantial knowledge on Web development using Ruby on Rails, a significant framework to have in your developer’s toolbox. Almost every chapter ends with useful exercises, which, together with code listings and command snippets, provide professionals and students with the essentials of Rails for industry-level Web development.