In Video Editions the narrator reads the book while the content, figures, code listings, diagrams, and text appear on the screen. Like an audiobook that you can also watch as a video.
Write object-oriented code that’s manageable, maintainable, and future-proof.
Keeping your object-oriented designs simple demands a creative approach—and that’s exactly what you’ll find in Simple Object-Oriented Design. This book is full of patterns and principles for reducing complexity, each one proven in author Mauricio Aniche’s 20-year career in software development. You’ll learn how to tackle code’s natural growth in complexity, and adopt a “good enough” approach that means it’s easy to refactor when requirements change.
You’ll discover insightful principles for:
Making code readable and documented
Improving consistency and encapsulation
Managing dependencies
Designing abstractions
Handling infrastructure
Effective modularization
Learn what constitutes both good and bad object-oriented software design, discover how to make better trade-offs in design decisions, and when to embrace complexity over simpler data structures. With this book as your vital reference, you’ll be ready to write code that will last the test of time, without slowing feature delivery to a crawl.
About the Technology Even a simple object-oriented application can quickly become complex as it evolves. Each new class, method, or feature means more state and abstractions to manage, which in turn increases complexity, maintenance, and time spent detangling legacy code. It takes effort and skill to keep your codebase simple. This book shows you how.
About the Book Simple Object-Oriented Design: Create clean, maintainable applications presents practical design principles you can use to keep an object-oriented codebase simple as it grows and changes. Written as a collection of practical techniques you can apply in any OO language, it offers tips for concise code, managing dependencies and modules, and designing flexible abstractions. Illuminating figures, real-world examples, and insightful exercises make each principle stick.
What's Inside
Writing simple, understandable classes
Flexible abstractions to extend your designs
Reducing the impact of coupling
About the Reader Readers should be familiar with an object-oriented language like Java, C#, or Python.
About the Author Maurício Aniche is a software engineer with 20 years of experience. He’s also an Assistant Professor in Software Engineering at Delft University of Technology, and the author of Effective Software Testing.
Quotes Simple and effective. Highly recommended read! - Davide Spadini, Meta
It is refreshing to find a book that tackles software quality in a straightforward and pragmatic manner. A must-read for any developer in the trenches. - Hugo Marques, Netflix
Fantastic! Read and apply the incredibly important principles in this book. - Michael Hilton, Carnegie Mellon University
Everything you need to know to keep code simple and clean. It will fascinate you how easy solutions can be if you have the correct mindset. - Rafael Werner, ING
A balanced and pragmatic view based on evidence. I strongly recommend it! - Paulo Afonso Parreira Junior, University of Minas Gerais
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.
O’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
I wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
I’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
I'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.