Contents tagged with principle

  • YAGNI

    YAGNI, or "You Ain't Gonna Need It" (or "You Aren't Gonna Need It"), emerged as one of the key principles of Extreme Programming.  Put another way, the principle states:

    "Always implement things … Read more

  • Keep It Simple

    The KISS principle, or Keep It Simple, Stupid, spans many trades, industries, and professions.  The more complex something is, the more ways there are for it to fail, and the more difficult it is … Read more

  • Hollywood Principle

    The Hollywood Principle states, "Don't Call Us, We'll Call You."  It's closely related to the Dependency Inversion Principle, and illustrates a different way of writing software from the more … Read more

  • Explicit Dependencies Principle

    The Explicit Dependencies Principle states:

    Methods and classes should explicitly require (typically through method parameters or constructor parameters) any collaborating objects they need in order … Read more

  • Separation of Concerns

    A key principle of software development and architecture is the notion of separation of concerns.  At a low level, this principle is closely related to the Single Responsibility Principle of … Read more

  • Once and Only Once

    The Once and Only Once principle can be thought of as a subset of the Don't Repeat Yourself principle, and is one of the most fundamental principles of software development.  Once and Only Once … Read more

  • SOLID

    The SOLID principles of Object Oriented Design include these five principles:

    SRP - Single Responsibility Principle

    OCP - Open/Closed Principle

    LSP - Liskov Substitution Principle

    ISP - Interface … Read more

  • Don't Repeat Yourself

    The Don't Repeat Yourself (DRY) principle states that duplication in logic should be eliminated via abstraction; duplication in process should be eliminated via automation.

    Duplication is Waste … Read more

  • Dependency Inversion Principle

    The Dependency Inversion Principle (DIP) states that abstractions should not depend on details.  Details should depend upon abstractions.

    See Also

    Explicit Dependencies Principle … Read more

  • Interface Segregation Principle

    The Interface Segregation Principle (ISP) states that clients should not be forced to depend on methods that they do not use.  Interfaces belong to clients, not to libraries or hierarchies. Read more