• Testing

    1 Open
    0 Closed
    1. Each Module has to ship with set of UnitTests.
    2. If Module depends on another Module, they create a System. Thus such system has to be tested with SystemTests.

    SystemTests of a particular Module usually really on Mocking.
    UnitTests usually really on intimate knowledge of a Module, aiming to test corner cases of particular implementation.

  • Interface Abstraction

    1 Open
    0 Closed

    API is a corner stone of SW development. Thus, each Module within any project has to provide and fulfill some sort of an interface.

    A good interface is a meeting point between an user (customer) and an implementation. Thus it serves two purposes:

    1. Provides easy to read contract for a customer
    2. Simplifies business logic implementation by elimination of uncertainty (what and how features shall be provided)