Image from Amazon
Title: Java By Comparison: Become a Java Craftsman in 70 Examples
Author(s): Simon Harrer, Jörg Lenhard, Linus Dietz
Publisher: Pragmatic Bookshelf, 1 edition (April 1, 2018)
Category: Beginning Java
Write code that's clean, concise, and to the point: code that others will read with pleasure and reuse. Comparing your code to that of expert programmers is a great way to improve your coding skills. Get hands-on advice to level up your coding style through small and understandable examples that compare flawed code to an improved solution. Discover handy tips and tricks, as well as common bugs an experienced Java programmer needs to know. Make your way from a Java novice to a master craftsman.
This book is a useful companion for anyone learning to write clean Java code. The authors introduce you to the fundamentals of becoming a software craftsman, by comparing pieces of problematic code with an improved version, to help you to develop a sense for clean code. This unique before-and-after approach teaches you to create clean Java code.
Learn to keep your booleans in check, dodge formatting bugs, get rid of magic numbers, and use the right style of iteration. Write informative comments when needed, but avoid them when they are not. Improve the understandability of your code for others by following conventions and naming your objects accurately. Make your programs more robust with intelligent exception handling and learn to assert that everything works as expected using JUnit5 as your testing framework. Impress your peers with an elegant functional programming style and clear-cut object-oriented class design.
Writing excellent code isn't just about implementing the functionality. It's about the small important details that make your code more readable, maintainable, flexible, robust, and faster. Java by Comparison teaches you to spot these details and trains you to become a better programmer.
What You Need:
You need a Java 8 compiler, a text editor, and a fresh mind.That's it.
From the publisher
Where to get it?
It starts with simple yet some of the widely made mistakes when using booleans and basic constructs and demonstrate how to correct them. It also discusses some of the best practices of coding certain specific constructs and addresses performance concerns when using them. It’s good to see two separate chapters, one to talk about comments in the code(and how best to utilize them) and the other about the naming conventions and how to go about writing more readable code.
The book covers fairly good amount of exception handling separately. It also has a chapter on how to write tests and how to structure your test code with JUnit being used as the reference library. I liked how they cover some of the high level design aspects along with how you can design & structure your classes/methods to better understand the code.Book has a separate chapter on new functional/streaming aspects of Java, which tries to provide a basic understanding on some of the fundamental patterns & use cases. But they don’t go in to much details to cover more advanced use cases.At the end it gives you some taste in to the real world development aspects which is a very high level coverage on some of the tools frequently used for development as well as for production related activities.
The background for the book has been the experience the authors gained by teaching Java to students, so they are able to express some common mistakes/practices specially the novice programmers are getting in to.
It does not cover advanced concepts such as concurrency etc… which is not the intention of the book. I liked how they have added the code snippets in the chapters as they are clearly pointing out the lines of code which are the focus of the explanation that follows.
Overall it is a good one to have as a reference to some of the fundamental patterns/practices of Java programming.
I give this book 9 out of 10 horseshoes
Disclosure: I received a review copy of this book from the publisher for reviewing it on behalf of CodeRanch.