Code Qualities


Principles

     SOLID principles

            Single Responsibility Principle (SRP)

            Open-Closed Principle (OCP)

            Liskov Substitution Principle (LSP)

            Interface Segregation Principle (ISP)

            Dependency Inversion Principle (DIP)

    DRY (Don’t repeat yourself)

    DIE (Duplication Is Evil)

    YAGNI (You aren't gonna need it)

    KISS (Keep it simple and stupid)

    Encapsulate What Changes

    Favor Composition over Inheritance

    Delegation Principles

    Easy To Change

            The Code Must Be Readable

            The Code Must Be Scalable

    The Code Must Be Testable

    The Code Does What Is Asked For

    The Code Fails Gracefully

    The Code Is Easy to Extend


Benefits of Code Quality

            Product Confidence & Reputation

            Diminishes Technical Debt

            Promotes Reuse

            Increases Product Longevity


Code metrics

            Maintainability Index

            Cyclomatic Complexity

            Depth of Inheritance

            Class Coupling

            Lines of Source code

            Lines of Executable code

Attributes

        Correctness

        Reliability

        Adequacy

        Learnability

        Robustness

        Maintainability

        Readability

        Extensibility

        Testability

        Efficiency

        Portability


Comments