As a set of object-oriented programming design principles, SOLID is pretty lacking.
Did you know that…
- the Single Responsibility Principle doesn't clearly define "responsibility" so most developers just keep de-coupling until the end of their sprint?
- the Open/Closed Principle says you can't change source code, so thus your only alternative is to use a mess of inheritance and abstract classes to make stuff flexible in advance?
- Barbara Liskov didn't have anything to do with the Liskov Substitution Principle and that the principle amounts to "inheritance is a thing"?
- the Interface Segregation Principle is essentially functional programming feature envy by Java developers?
- all that XML developers wrote in the 2000's was because of the Dependency Inversion Principle, and it turns out that just writing simple code is actually better?
Find out more problems with these principles, as well as new ways to get angry about agile nonsense like YAGNI
Table of Contents
- Stop Validating Your Experience and Start Questioning Authority (Read excerpt…)
- Literally Anyone Can Lead Thoughts
- The Five Rules of Good Design That I’m Certain You Haven’t Looked Closely At
- SOLID is Not Very Solid After All
- This is Not About Uncle Bob
- Single Responsibility Principle, or: Chasing Three Lines of Code Over 18 Files Just to Make One Change
- What Exactly is a Responsibility?
- Five Responsibilities in Five Lines of Code
- Change, For Lack of a Better Word, is Good
- The Second Stage Turbine Blade
- Each Line of Code, It’s Own Responsibility, Belongs Nestled Safely in its Own Class, Docker Container, or Microservice.
- Incoherent Ramblings
- Software Design Isn’t About Counting Up Things
- Open/Closed Principle or: The Test Of Have You Actually Read SOLID
- Inheritance
- The Origin Story You Never Knew You Didn’t Want
- Version Numbers are For Marketing, Right?
- Liskov Substitution Principle or: Don’t Use The One Thing Stroustrup Actually Didn’t Want in C++ Anyway (Read excerpt…)
- Papers We Love But Have Not Really Read
- Papers We Don’t Love But Had To Read As Research For This Book
- Interface Segregation Principle or: The Reason Functional Programmers Are So Damn Smug
- Hacking Around Bad Design
- Ever Do Functional Programming in Java?
- Java Loves Interfaces So Much That It Does, In Fact, Marry Them
- Dependency Inversion Principle, or: Why 2000’s-era Java Code Was Mostly Written in XML
- Objects are All About Re-use. Just ask CORBA…I mean EJB.
- I Will Make FizzBuzz Enterprise Edition Look Like Rails
.java
files are for Clean Coders Only
- Agile’s Infantilizing Sloganeering Diminishes Us All
- DRY - Don’t Repeat Yourself. Do Not Repeat Yourself. Stop. Repeating. Yourself.
- KISS - I’m not Stupid, and Neither Are You
- YAGNI - You Aren’t Gonna Need It (except when you are)
- The Simplest Thing That Could Possibly Work Would Be Actually Working Software
- No Big Design Up Front So Why Aren’t You Coding Right Now? Start Coding. Now. Just Type “v” “i” “m”…
- User Stories Paint a Picture of Fairy Tales and Form Validations
- Well, Now What Do We Do?
- Some Solid Advice
- Some Words of Warning
- Not Convinced?
- Colophon or, How To Make Your Own e-Book!
Just tell me this table of contents doesn't make you want to shell out $5.99 right now!
Oh, you want to spend more? Buy it print for $6.99!
What You Get
The book is about 70 pages long (in print or in PDF), so it's a quick read!
The ebook includes a PDF, an EPUB, a MOBI, and a Markdown/text file so you can read the book in whatever way you see fit for only $5.99!
OR
Get your own physical paper book, beautifully typeset. It's a fine addition to any bookcase or Little Free Library. It's only $6.99.
I'm afraid I can't make a bundle where you get both for a collective discount.