The Boy Scout Principle The Modern Developer should always leave a Software Entity in better shape than it was in when they entered the Legacy Code environment Every developer has a professional responsibility to leave the Code Base they are working in better shape when they commit the code than...
Read more
Blog
Principle Design Series: IOCP
The Inversion Of Control Principle Manage All Your Toys in One Place The Inversion Of Principle is the companion principle to the Dependency Inversion Principle. The Dependency Inversion Principle creates an environment that supports management of the instantiation of assembly types at the highest level of module abstraction. By having access...
Read more
Principle Design Series: DIP
The Dependency Inversion Principle Would You Solder a Lamp Directly into the Electrical Wiring in a Wall? The Dependency Inversion Principle encourages Loose Coupling and High Cohesion designs. Loose Coupling removes hard dependencies through the use of Abstractions that can support change easily over time. High Cohesion is defined in software...
Read more
Principle Design Series: ISP
The Interface Substitution Principle Tailor Your Interfaces to the Client’s Specific Requirements The Interface Segregation Principle (ISP) in the Modern Developer’s Design Series supports the Single Responsibility Principle (SRP). The Interface Segregation Principle States: Clients of Interfaces Should Not Be Forced … To Implement Interface Contracts …… They Do Not Require Compliance with ISP creates...
Read more
Principle Design Series: LSP
The Liskov Substitution Principle If it looks like a Duck, Quacks like a Duck, But Needs Batteries, You Might Need a Better Abstraction! The Liskov Substitution Principle (LSP) in the Modern Developer’s Design Series supports the Modern Developers Behavior Versus State Principle (BVSP). Compliance with LSP guarantees Class Inheritance compliance with BVSP. The Liskov Substitution Principle States:...
Read more
The Three Laws of Software Project Motion
A Thought Experiment The Forces Affecting Successful Software Development Most aspects of Technology solutions, using modern practices such as Object Oriented Programming, are based on the real world. We have objects that are things designated as Nouns: a person, place or thing. We have Verbs that denote action behavior: GetPerson()....
Read more
Principle Design Series: OCP
The Open / Closed Principle Brain Surgery is Not Required when Putting on a Hat The Open / Closed Principle in the Modern Developer’s Design Series is a natural extension of the Single Responsibility Principle. The Single Responsibility Principle uses Open / Closed Principle for compliance. The Open / Closed Principle...
Read more
Principle Design Series: DRY
The Don’t Repeat Yourself Principle Repetition is the Root of All Software Evil The DRY Principle in the Modern Developer’s Design Series is a very important principle. The Don’t Repeat Yourself Principle States: Every piece of Code must have a Single, Unambiguous, Representation within a Software Entity … Cut and...
Read more
Principle Design Series: SRP
The Single Responsibility Principle Just because you can doesn’t mean you should The first of the Principle Design Series is the most important principle of them all. The Single Responsibility Principle States: A Software Entity Should Have One and Only One Reason to Change The underlying concept here is to ensure that...
Read more