Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
This video was recorded on http://wrocloverb.com. You should follow us at https://twitter.com/wrocloverb. See you next year! Adam Hawkins with APPLICATION ARCHITECTURE: BOUNDARIES, OBJECT ROLES, & PATTERNS This talk is about something important in the community. The Ruby community is missing something fundamentally important. We don't know how to architect applications. We've grown accustomed to using frameworks for everything and we've lost our way. We no longer talk about making applications, we speak about applications built in frameworks. Example: Oh hey man, did you hear NewApp123 is built in Rails? I take offense to that. The application is not built in Rails, it's built in Ruby than Rails is used to put it online. This mentality is prevalent in the community. It's damaging and encourages technical debt. This talk is about changing everything.
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 on "Application Architecture: Boundaries, Object Roles, & Patterns," Adam Hawkins addresses the often overlooked, critical aspect of application design within the Ruby community. The primary theme revolves around the community’s reliance on frameworks like Rails, which may lead to neglecting solid architectural principles and increasing technical debt. Hawkins emphasizes that the development focus should shift from the frameworks used to the underlying architecture that guides application functionality. **Key Points Discussed:** - **Challenges in Ruby Application Development:** Hawkins shares his journey from repetitive PHP applications to Ruby, highlighting common issues developers face such as excessive dependencies on frameworks and poor architecture leading to unmanageable codebases. - **Importance of Architecture:** He argues that the Ruby community struggles with application architecture, often neglecting SOLID principles and proper boundaries in design, which increases technical debt. - **Focus on Use Cases:** Hawkins stresses that an application should be viewed as a collection of use cases rather than solely as a product of a particular framework. This perspective encourages a stronger emphasis on business logic. - **Boundaries and Layers:** He discusses creating boundaries between different layers of an application, including business logic and data layers, positing that strong boundaries allow for independent evolution of application components without the risk of entanglement. - **Implementation Details:** The talk introduces various design elements such as form objects, models, repositories, and validators, which help maintain separation of concerns and enhance the testability and clarity of applications. - **Delivery Mechanisms:** Hawkins mentions delivery mechanisms as essential components that facilitate user interaction with domain logic without being tightly coupled to specific implementations. - **Testing and Decoupling:** The separation encouraged through clear architectural boundaries significantly aids in testing, allowing developers to implement changes more confidently and effectively. - **Resources for Improvement:** He offers two resources for further learning: "Rails Refactoring" by Andre and a series on his blog that covers detailed examples and architectural guidance. **Conclusions and Takeaways:** Hawkins concludes that while frameworks like Rails provide convenience, they can also promote a detrimental dependency culture that stifles proper architectural thinking. He urges the community to reconsider how applications are structured, promoting a shift towards cleaner, maintainable, and modular designs that align with fundamental architectural principles.
Suggest modifications
Cancel