Elevate your Ruby skills to an advanced level by deepening your understanding of the design principles, best practices, and trade-offs involved in implementation approaches to future-proof your Ruby applications Anyone striving to become an expert Ruby programmer needs to be able to write maintainable applications. Polished Ruby Programming will help you get better at designing scalable and robust Ruby programs, so that no matter how big the codebase grows, maintaining it will be a breeze. This book takes you on a journey through implementation approaches for many common programming situations, the trade-offs inherent in each approach, and why you may choose to use different approaches in different situations. You'll start by refreshing Ruby fundamentals, such as correctly using core classes, class and method design, variable usage, error handling, and code formatting. Then you'll move on to higher-level programming principles, such as library design, use of metaprogramming and domain-specific languages, and refactoring. Finally, you'll learn principles specific to web application development, such as how to choose a database and web framework, and how to use advanced security features. By the end of this Ruby programming book, you'll be a well rounded web developer with a deep understanding of Ruby. While most code examples and principles discussed in the book apply to all Ruby versions, some examples and principles are specific to Ruby 3.0, the latest release at the time of publication. This book is for Ruby programmers who are comfortable in coding with Ruby but want to advance their skills by mastering the deeper principles and best practices behind writing maintainable, scalable, optimized, and well-structured Ruby code. This book won't teach you the basics of Ruby – you'll need intermediate knowledge and practical experience before you can dive in.
I got a contact from Packtpub about this book. The deal was to receive the book for free in exchange for an honest review. Here I am, just finished the book and will write about it.
The book is quite good, there's a lot of good information there, and I would totally recommend to someone investing in Ruby.
The author did some great contributions to the Ruby community (Ruby Committer, Lead developer of Sequel, Roda, and Rodauth. OpenBSD ruby ports maintainer.), is doing software and community work for many years now (I can quickly check his open source work since 2008), and has some strong opinions about famous Ruby libraries.
For most of the book, I was totally into the narrative and how the author was organizing information. When things started to go more into the web, I started to feel something different. It felt like the author was selling one library or the other, because they were _much better_ than others. Turns out, it's the libraries he created himself 🙄. After that, I had the same feeling, until I finished the book.
The book still deserves a 4 star review. The content until the web part is indeed great. Jeremy was able to write down some interesting pieces of advice on how to use Ruby in some particular scenarios where performance is needed. I especially liked the chapter 6, about code formatting. The final part of the book is also OK, but you have to read it with a grain of salt as it feels like a mother talking about how pretty is her son/daughter. 😅
Jeremy Evans is in no double a great developer. He does provide a lot of insights on the way to write good software. In terms of the content it is really great. And he is doing a lot of very interesting analysis on those popular web frameworks and the way to implement that. In terms of content, I will give 5.5 stars.
However, I really want to complain the editing of ebook version. It was edited poorly. Since there are no syntax highlight for code, following the code is definitely not easy. Not to mention the formatting of the book. The content is so dense to read. Please find a better publisher like Pragmatic or Manning.. And it spends me really double of time to read the book.
Very nice for intermediate Ruby Developers. Not too hard but still pushing some concepts to a useful and practical level — I could apply many of the recommendations immediately in my project! :)