Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RailsConf 2017: Built to last: A domain-driven approach to beautiful systems by Andrew Hao Help! Despite following refactoring patterns by the book, your aging codebase is messier than ever. If only you had a key architectural insight to cut through the noise. Today, we'll move beyond prescriptive recipes and learn how to run a Context Mapping exercise. This strategic design tool helps you discover domain-specific system boundaries, leading to highly-cohesive and loosely-coupled outcomes. With code samples from real production code, we'll look at a domain-oriented approach to organizing code in a Rails codebase, applying incremental refactoring steps to build stable, lasting systems!
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In his talk at RailsConf 2017 titled "Built to last: A domain-driven approach to beautiful systems," Andrew Hao discusses strategies to enhance the longevity and maintainability of software systems, specifically within a Rails codebase. He emphasizes moving beyond traditional refactoring patterns to a domain-driven design approach, which helps in identifying boundaries specific to business domains. Key points covered include: - **Understanding Beautiful Systems**: Beautiful systems are those that are built to last, with precise boundaries that are highly cohesive and loosely coupled. - **Context Mapping Exercise**: This strategic design tool helps visualize and articulate domain boundaries, allowing for modular system development. - **Ubiquitous Language**: Establishing a shared vocabulary within teams promotes clear communication and design precision, aiding the development process. - **Identifying Domains**: The talk highlights the importance of distinguishing core domains from supporting domains, using examples related to the fictional DeLorean time travel app. - **Refactoring Patterns**: Incremental refactoring through organized namespaces and service objects minimizes dependencies and enhances system interactivity. - **Bounded Contexts**: These contexts allow teams to work independently, each focusing on their specific area of the business, thereby reducing confusion over similar terms across different domains. - **Event-Driven Architectures**: Hao introduces the concept of decoupling systems by using event-driven strategies, which facilitate communication between different domains without tight coupling. - **Complexity vs. Clarity**: The presentation stresses that in some cases, the sophisticated nature of a system may require added complexity for clarity, contradicting the usual quest for simplicity. By applying these concepts, developers can create more manageable, scalable, and resilient systems that evolve alongside business needs. The key takeaway is to cultivate a deep understanding of the business's domain-specific language and architecture to build systems that can withstand change over time.
Suggest modifications
Cancel