This document provides an introduction to the Domain-Context-Interaction (DCI) software architectural pattern. It begins by introducing the presenter and their experience with Ruby. It then discusses how DCI is commonly brought up in discussions of Ruby development. The key aspects of DCI are explained - models represent entities, contexts enact use cases by mixing in roles, and roles define interactions. Code samples are shown to illustrate how DCI separates concerns compared to a more traditional MVC approach. Advantages of DCI like modularity, testability and reusability are listed. Finally, common criticisms of DCI are addressed and questions from the audience are invited.
Related topics: