DevIQ Docs
CTRL K
    • Documentation
      • Design Patterns
        • Mediator Pattern
        • Observer Pattern
        • Adapter Design Pattern
        • Repository Pattern
        • Strategy Design Pattern
        • Proxy Pattern
        • Builder Design Pattern
        • Design Patterns
        • Factory Method Pattern
        • Object Mother Pattern
        • Chain of Responsibility Pattern
        • Decorator Design Pattern
        • Rules Engine Pattern
        • Abstract Factory Design Pattern
        • Memento Pattern
        • CQRS - Command Query Responsibility Segregation
        • Facade Pattern
        • Strangler Fig Design Pattern
        • REPR Design Pattern
        • State Design Pattern
        • Guard Clause
        • Specification Pattern
        • Singleton
        • Null Object Pattern
        • Domain Events Pattern
      • Principles
        • Separation of Concerns
        • Don't Repeat Yourself
        • Hollywood Principle
        • Keep It Simple
        • Once and Only Once
        • YAGNI
        • Boy Scout Rule
        • Encapsulation
        • Explicit Dependencies Principle
        • Dependency Inversion Principle
        • Interface Segregation Principle
        • Liskov Substitution Principle
        • Open-Closed Principle
        • Principles
          • Principles
          • Learn More
        • Single Responsibility Principle
        • SOLID
        • Inversion of Control
        • Principle of Least Astonishment: A Software Design Guideline
        • Principle of Architectural Agility
        • Tolerance for Imperfection in Software Architecture
        • Fail Fast
        • Stable Dependencies
        • Persistence Ignorance
        • Tell, Don't Ask
      • Practices
        • Single Point of Enforcement
        • YOLO Software Architecture
        • Code Readability
        • Collective Code Ownership
        • Dependency Injection
        • Dogfooding
        • Know Where You Are Going
        • Naming Things
        • Pair Programming
        • Read the Manual
        • Shipping Is A Feature
        • Simple Design
        • Whole Team
        • Whole Team Activity
        • The 50/72 Rule of Git
        • Parse, Don't Validate
        • Practices from Code That Fits in Your Head
        • Red, Green, Refactor
        • Refactoring
        • Test Driven Development
        • Vertical Slices
        • Observability
        • Common Architectural Vision
        • Continuous Integration
        • Defensive Programming
        • Authentication
        • Authorization
        • Behavior Driven Development
        • Timeboxing: A Time Management Technique for Improved Productivity
        • Practices
        • Rubber Duck Debugging
        • Descriptive Error Messages
        • Update the Plan
        • Pain Driven Development
      • Antipatterns
        • Big Ball of Mud
        • Witches' Brew Architecture: A Software Antipattern
        • Assumption Driven Programming
        • Calendar Coder
        • Copy Paste Programming
        • Death by Planning
        • Death March
        • Duct Tape Coder
        • Fast Beats Right
        • Feature Creep
        • Found on Internet
        • Frankencode
        • Golden Hammer
        • Iceberg Class
        • Mushroom Management
        • Not Invented Here
        • One Thing To Rule Them All
        • Reinventing the Wheel
        • Shiny Toy
        • Smoke and Mirrors
        • Spaghetti Code
        • The Blob
        • Walking Through a Minefield
        • Waterfall
        • Code Smells
        • Flags Over Objects
        • Static Cling
        • Big Design Up Front (BDUF): A Software Development Antipattern
        • Frozen Caveman: A Software Development Antipattern
        • The Last 10% Trap: A Software Architecture Antipattern
        • Architecture by Implication: An Antipattern in Software Design
        • Analysis Paralysis
        • Service Locator Antipattern in Software Development
        • Lois Lane Planning
        • Antipatterns
        • Broken Windows
        • Exposing Collection Properties
        • Magic Strings
        • Copy Folder Versioning
      • Domain-Driven Design
        • Shared Kernel in DDD
        • Aggregate Pattern
        • Anti-Corruption Layer
        • Bounded Context
        • Domain Driven Design
        • Domain Model in DDD
        • Domain Storytelling
        • Domains in DDD
        • Entity
        • EventStorming
        • Strategic Design in DDD
        • Subdomains in DDD
        • Tactical Design in DDD
        • Ubiquitous Language
        • Value Object
        • Context Mapping
        • Anemic Model
      • Laws
        • Moore's Law
        • Wirth's Law
        • Kerckhoffs's Principle (or Law) in Software Engineering
        • Gall's Law for Software Developers
        • Hofstadter's Law
        • Goodhart's Law: When Measures Become Targets
        • Hebb's Law
        • Anderson's Law
        • The Law of Demeter
        • Linus's Law: Understanding the Wisdom of Collective Code Review
        • Understanding Amdahl's Law: Unlocking the Secrets of Parallel Computing
        • The Law of Diminishing Returns: An Economic Principle with Applications in Software Development
        • Amara's Law: A Quick Guide on Technology Predictions
        • Brooks's Law: Understanding Its Implications in Software Development
        • Conway's Law: Unraveling the Connection Between Software and Organizations
        • Postel's Law
        • Laws of Software Architecture
        • Cunningham's Law
        • Laws Overview
        • Murphy's Law
      • Testing
        • Automated Tests
        • Front-End Tests
        • Functional Tests
        • Integration Tests
        • The Testing Pyramid
        • Unit Tests
        • Testing - Overview
        • Arrange-Act-Assert
      • Architecture
        • Layered Architecture
        • Modular Monolith
        • N-Tier Architecture
        • Clean Architecture
        • Event-Driven Architecture
        • Architecture
        • Vertical Slice Architecture
      • Values
        • Communication
        • Courage
        • Feedback
        • Respect
        • Simplicity
        • Values
      • Terms
        • Technical Debt
        • Terms - Overview
        • Kinds of Models
        • Bus Factor
      • Tools
        • Version Control
        • Tools - Overview
        • Build Server
      • Code Smells
        • Code Smells - Overview
        • Primitive Obsession Code Smell
    • Design Patterns
      • Mediator Pattern
      • Observer Pattern
      • Adapter Design Pattern
      • Repository Pattern
      • Strategy Design Pattern
      • Proxy Pattern
      • Builder Design Pattern
      • Design Patterns
      • Factory Method Pattern
      • Object Mother Pattern
      • Chain of Responsibility Pattern
      • Decorator Design Pattern
      • Rules Engine Pattern
      • Abstract Factory Design Pattern
      • Memento Pattern
      • CQRS - Command Query Responsibility Segregation
      • Facade Pattern
      • Strangler Fig Design Pattern
      • REPR Design Pattern
      • State Design Pattern
      • Guard Clause
      • Specification Pattern
      • Singleton
      • Null Object Pattern
      • Domain Events Pattern
    • Principles
      • Separation of Concerns
      • Don't Repeat Yourself
      • Hollywood Principle
      • Keep It Simple
      • Once and Only Once
      • YAGNI
      • Boy Scout Rule
      • Encapsulation
      • Explicit Dependencies Principle
      • Dependency Inversion Principle
      • Interface Segregation Principle
      • Liskov Substitution Principle
      • Open-Closed Principle
      • Principles
      • Single Responsibility Principle
      • SOLID
      • Inversion of Control
      • Principle of Least Astonishment: A Software Design Guideline
      • Principle of Architectural Agility
      • Tolerance for Imperfection in Software Architecture
      • Fail Fast
      • Stable Dependencies
      • Persistence Ignorance
      • Tell, Don't Ask
    • Practices
      • Single Point of Enforcement
      • YOLO Software Architecture
      • Code Readability
      • Collective Code Ownership
      • Dependency Injection
      • Dogfooding
      • Know Where You Are Going
      • Naming Things
      • Pair Programming
      • Read the Manual
      • Shipping Is A Feature
      • Simple Design
      • Whole Team
      • Whole Team Activity
      • The 50/72 Rule of Git
      • Parse, Don't Validate
      • Practices from Code That Fits in Your Head
      • Red, Green, Refactor
      • Refactoring
      • Test Driven Development
      • Vertical Slices
      • Observability
      • Common Architectural Vision
      • Continuous Integration
      • Defensive Programming
      • Authentication
      • Authorization
      • Behavior Driven Development
      • Timeboxing: A Time Management Technique for Improved Productivity
      • Practices
      • Rubber Duck Debugging
      • Descriptive Error Messages
      • Update the Plan
      • Pain Driven Development
    • Antipatterns
      • Big Ball of Mud
      • Witches' Brew Architecture: A Software Antipattern
      • Assumption Driven Programming
      • Calendar Coder
      • Copy Paste Programming
      • Death by Planning
      • Death March
      • Duct Tape Coder
      • Fast Beats Right
      • Feature Creep
      • Found on Internet
      • Frankencode
      • Golden Hammer
      • Iceberg Class
      • Mushroom Management
      • Not Invented Here
      • One Thing To Rule Them All
      • Reinventing the Wheel
      • Shiny Toy
      • Smoke and Mirrors
      • Spaghetti Code
      • The Blob
      • Walking Through a Minefield
      • Waterfall
      • Code Smells
      • Flags Over Objects
      • Static Cling
      • Big Design Up Front (BDUF): A Software Development Antipattern
      • Frozen Caveman: A Software Development Antipattern
      • The Last 10% Trap: A Software Architecture Antipattern
      • Architecture by Implication: An Antipattern in Software Design
      • Analysis Paralysis
      • Service Locator Antipattern in Software Development
      • Lois Lane Planning
      • Antipatterns
      • Broken Windows
      • Exposing Collection Properties
      • Magic Strings
      • Copy Folder Versioning
    • Domain-Driven Design
      • Shared Kernel in DDD
      • Aggregate Pattern
      • Anti-Corruption Layer
      • Bounded Context
      • Domain Driven Design
      • Domain Model in DDD
      • Domain Storytelling
      • Domains in DDD
      • Entity
      • EventStorming
      • Strategic Design in DDD
      • Subdomains in DDD
      • Tactical Design in DDD
      • Ubiquitous Language
      • Value Object
      • Context Mapping
      • Anemic Model
    • Laws
      • Moore's Law
      • Wirth's Law
      • Kerckhoffs's Principle (or Law) in Software Engineering
      • Gall's Law for Software Developers
      • Hofstadter's Law
      • Goodhart's Law: When Measures Become Targets
      • Hebb's Law
      • Anderson's Law
      • The Law of Demeter
      • Linus's Law: Understanding the Wisdom of Collective Code Review
      • Understanding Amdahl's Law: Unlocking the Secrets of Parallel Computing
      • The Law of Diminishing Returns: An Economic Principle with Applications in Software Development
      • Amara's Law: A Quick Guide on Technology Predictions
      • Brooks's Law: Understanding Its Implications in Software Development
      • Conway's Law: Unraveling the Connection Between Software and Organizations
      • Postel's Law
      • Laws of Software Architecture
      • Cunningham's Law
      • Laws Overview
      • Murphy's Law
    • Testing
      • Automated Tests
      • Front-End Tests
      • Functional Tests
      • Integration Tests
      • The Testing Pyramid
      • Unit Tests
      • Testing - Overview
      • Arrange-Act-Assert
    • Architecture
      • Layered Architecture
      • Modular Monolith
      • N-Tier Architecture
      • Clean Architecture
      • Event-Driven Architecture
      • Architecture
      • Vertical Slice Architecture
    • Values
      • Communication
      • Courage
      • Feedback
      • Respect
      • Simplicity
      • Values
    • Terms
      • Technical Debt
      • Terms - Overview
      • Kinds of Models
      • Bus Factor
    • Tools
      • Version Control
      • Tools - Overview
      • Build Server
    • Code Smells
      • Code Smells - Overview
      • Primitive Obsession Code Smell
    • Light

    • Dark

    • System

    On this page

    • Principles
    • Learn More
    Documentation
    Principles
    Principles

    Principles

    Consistently following good principles is important to good code. This means applying coding principles whether or not a project is rapidly approaching an important deadline.

    Principles

    • Architectural Agility
    • Boy Scout Rule
    • Dependency Inversion
    • Don’t Repeat Yourself
    • Don’t Repeat Yourself
    • Encapsulation
    • Explicit Dependencies
    • Hollywood
    • Interface Segregation
    • Inversion of Control
    • Keep It Simple
    • Principle of Least Astonishment
    • Liskov Substitution
    • Once and Only Once
    • Open-Closed
    • Persistence Ignorance
    • Separation of Concerns
    • Single Responsibility
    • SOLID
    • Stable Dependencies
    • Tell, Don’t Ask
    • Tolerance for Imperfection
    • YAGNI

    Learn More

    • Email Course: SOLID Principles
    Open-Closed PrincipleSingle Responsibility Principle
    Powered by Hextra
    © 2025 Hextra Project.