Seriously Good Software
- Paperback: 328 pages
- Publisher: WOW! eBook; 1st edition (March 24, 2020)
- Language: English
- ISBN-10: 1617296295
- ISBN-13: 978-1617296291
Serious developers know that code can always be improved. With each iteration, you make optimizations – small and large – that can have a huge impact on your application’s speed, size, resilience, and maintainability. In Seriously Good Software: Code that works, survives, and wins, author, teacher, and Java expert Marco Faella teaches you techniques for writing better code. You’ll start with a simple application and follow it through seven careful refactorings, each designed to explore another dimension of quality.
Great code blends the skill of a programmer with the time-tested techniques and best practices embraced by the entire development community. Although each application has its own context and character, some dimensions of quality are always important. This book concentrates on eight pillars of seriously good software: speed, memory usage, reliability, readability, thread safety, generality, and elegance. The Java-based examples demonstrate techniques that apply to any OO language.
Seriously Good Software takes you on a journey through software development best practices as you develop a simple inefficient implementation into a robust, professional-quality application. The deceptively-simple problem – balancing water levels in multiple connected containers – presents some interesting complexities as you optimize the code for speed, efficiency, and durability. Author Marco Faella’s passion for teaching shines bright as you learn to assess performance and write thread-safe code that’s easily readable, testable, and maintainable. Along the way, you’ll gain a keen sense of the trade-offs inherent to every programming task, no matter how simple.
- Evaluating software qualities
- Distinguishing between qualities that are internal, external, functional, and non-functional
- Assessing tradeoffs and interactions between software qualities
- Fulfilling different quality objectives for a single unifying task
- Hands-on exercises and detailed solutions
- Exercises covering the inner workings of the Java API
Each chapter contains hands-on exercises with complete, clear solutions that relate the techniques to real-world applications. Occasional pop quizzes ensure you’ve got a firm grasp on the concepts as you go along. When you’re done with this book, evaluating software qualities, considering tradeoffs and operational constraints, and asking all the right questions will be a reflex!