Refactoring: Cheat-Sheet

Please visit my other Object-Oriented Programming articles. Reaping the most benefits from refactoring Use the following quick cheat-sheet when refactoring. Topic Task Remove unhelpful comments Remove comments which state the obvious or replace unfocussed blocks of code with clearly-named methods following the Singe Responsibility Principle (SRP).Remove zombie code – code commented-out to no longer be…

Refactoring: Boundaries

Please see my other Web Development articles. Ensuring Separation of Concerns When refactoring a web application, the following table represents a high-level overview of technologies/tools and the appropriate use of each, along with examples of how their boundaries for us may be violated. Keep in mind for each tool is intended boundary and look for…

Design Patterns: S.O.L.I.D. Dependency Inversion Principle

Avoiding Dependencies Between Layers As part of the S.O.L.I.D. design principles, the Dependency Inversion Principle (DIP) provides guidance for ensuring layers within the application avoid unnecessary dependencies from coupling. DIP ensures each layer’s modules remain independent of one another and should depend on abstractions instead of concrete details, increasing usability and flexibility to change. In…

Design Patterns: S.O.L.I.D. Interface Segregation Principle

Providing Focused Behaviors for Classes As part of the S.O.L.I.D. design principles, the Interface Segregation Principle (ISP) supports other S.O.L.I.D. principles in providing classes with focused behavior by ensuring interfaces inherited by classes remain lean and focused on specific behaviors. To illustrate ISP, I’ll use examples from the Single Responsibility Principle (SRP) article. I’ll begin…

Design Patterns: S.O.L.I.D. Overview

Please see my other Design Pattern articles. Ensuring software remains understandable, flexible, and maintainable In response to common design difficulties inherit within many software systems, a series of design patterns were integrated together to form the acronym, S.O.L.I.D., which representing a specific principle. In addition to producing programming code and architecture which is understandable, flexible,…

OOP: Class Design – Step 3 – Encapsulation

Please see my other Web Development articles. Leveraging Encapsulation to Protecting Data & Behavior Implementation With my class requirements defined in my Class Design – Step 1 – Requirements article, I’m now ready to define the details of my Employee class. As demonstrated in my Inheritance article, I designed an Employee class which serves as…