Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
By Chris Kelly The dreams of developers working on monolithic Rails applications are frequently filled with sugar plums and service-oriented architectures--but like any kind of software design, SOA can easily become a tangled mess. Many of the same principles that guide our software design can guide our architecture design. We apply SOLID principles to applications to keep them loosely coupled, we design interfaces so we can send logical messages to our domain objects. We hide our databases behind abstractions because how we access our data shouldn't matter to how we consume it. Rarely, though, do we see the same practices applied to our services and APIs, leaving us with tightly coupled and difficult to extend service-oriented architectures. If you are facing the monorail to SOA challenge, consider looking at your services as objects and your APIs as messages. Service-oriented applications are complex, and the best way to fend off complexity is though object-oriented design. Help us caption & translate this video! http://amara.org/v/FG9W/
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 the video "Object-Oriented Lessons for a Service-Oriented World" presented by Chris Kelly at RailsConf 2013, the speaker discusses how developers transitioning from monolithic Rails applications to service-oriented architectures (SOA) can benefit from applying object-oriented design principles to their software architectures. Kelly highlights the common challenges faced by developers when dealing with legacy applications that become unwieldy and difficult to scale. Key points discussed include: - **Evolution of Concepts**: The talk is positioned as a conversation, introducing emerging ideas rather than presenting concrete methods. - **From Monoliths to SOA**: Developers often encounter frustrations with monolithic applications and seek ways to transition into scalable architecture without falling into typical SOA traps. - **Abstraction and Component Communication**: Emphasis is placed on using software architecture principles to encapsulate functionality within components and define their interactions clearly, moving away from the complexities often associated with traditional SOA. - **Object-Oriented Design Principles**: Kelly showcases how principles like Single Responsibility, DRY (Don't Repeat Yourself), and Dependency Injection can enhance flexibility in application design. - **Message Passing and APIs**: He argues for a shift from tightly coupled applications to those that communicate via messages, with a focus on defining rich, meaningful APIs that align with object-oriented design principles. - **Importance of Caching**: The necessity of integrating a robust caching strategy from the start to manage network latency and improve response times is stressed. - **Hypermedia and API Design**: Kelly touches on the integration of hypermedia concepts within APIs to facilitate richer interactions and maintain flexibility as systems evolve. - **Backward Compatibility in API Evolutions**: The speaker discusses strategies for evolving APIs without disrupting existing clients, illustrating with New Relic's challenges in managing historical agents. In conclusion, the video encourages developers to rethink their approach to architecture by embracing object-oriented principles in the context of network-based application software to prevent complexity and improve system adaptability. This paradigm shift promotes the creation of flexible applications that can evolve over time, effectively addressing the needs of both developers and end-users.
Suggest modifications
Cancel