Published Feb 5, 2018

Clean Architecture - The Art of Drawing Lines

Delve into the intricacies of software architecture with Michael and Joe as they unravel the art of defining system boundaries, discuss the evolution of architecture decisions, and share insights on effective interface design and advanced database management techniques.
Episode Highlights
Coding Blocks logo

Popular Clips

Episode Highlights

  • UI Importance

    User interfaces (UIs) are crucial yet should remain separate from business logic. Joe Zack emphasizes that while UIs are important to users, they should be insulated from the system's core functions 1. This separation allows the system to function independently of the UI, ensuring flexibility and modularity 2.

    The UI could be completely useless because what matters is what happens when that character moves and encounters an enemy.

    --- Joe Zack

    Joe illustrates this with examples like Google, where the core business functionality remains intact regardless of the interface used 2.

       

    Modularity

    Interfaces should promote modularity and clear boundaries between system components. Joe discusses how deferring decisions about databases until necessary can simplify development and maintain flexibility 3. This approach allows for easy integration of new components without disrupting existing systems.

    The business rules care about that database interface. Database access cares about that database interface. The database interface doesn't care about either of those.

    --- Joe Zack

    He also clarifies that dependency injection isn't always required; sometimes, simple parameter passing can achieve the same modularity 4.

Related Episodes