Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Rocky Mountain Ruby 2023 - Go Pro with POROs by Ifat Ribon Plain Old Ruby Objects (POROs) are having a moment. Maybe you’ve heard a whisper in the corner about the jack-of-all trades Service Object, or a glimmering echo of advocacy for non-database-backed domain models? Think you’re using them right? Afraid you’re using them wrong? Then this is the talk for you! We’re going to explore the wonderful world of “convention plus choose-your-own configuration” of Rails codebases and the shining role of POROs (with their ride or dies, the Module). Come hear about the diversity of design patterns out in the wild so you too can confidently tell your coworkers “let’s just use a PORO for that”.
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 talk titled "Go Pro with POROs" at the Rocky Mountain Ruby 2023 event, Ifat Ribon discusses the significance of Plain Old Ruby Objects (POROs) in modern Ruby/Rails development. Through this presentation, she aims to clarify various design patterns and encourage developers to consider clarity, encapsulation, and simplicity in their coding practices. Key Points Discussed: - **Importance of Naming**: Ifat emphasizes that naming conventions enhance communication and understanding among developers, thereby fostering creativity and effective problem solving. - **Encapsulation**: She highlights the need for defining boundaries in code and organizing business logic to follow SOLID principles, which leads to maintainable and understandable code. - **Clarity**: With many ways to write Ruby code, Ifat stresses the importance of writing code that is clear not only for others but also for one’s future self, facilitating easier maintenance and onboarding processes. - **Simplicity**: While clever coding can be tempting, keeping code simple helps reinforce clarity and makes collaboration easier over time. Design Patterns Explored: - **Database Wrappers**: Ribon discusses using wrappers for database interactions and insists on keeping Active Record models focused on database-related tasks by avoiding unrelated logic, which helps maintain clean architecture. - **Modules**: She introduces modules as versatile entities that enhance code organization by allowing shared logic to be easily named and reused across different models and controllers. - **Services**: Ifat defines services as POROs that encapsulate business logic and often generate a single public method aimed at achieving specific tasks, thereby improving code organization. - **API Wrappers**: These reusable classes simplify interactions with external APIs, ensuring clarity and manageability in handling requests and responses. - **Virtual Domain Models**: These are transient actors that help represent domain objects without requiring persistence, useful particularly in API scenarios. - **Request and Presentation Objects**: By employing these POROs, developers can effectively separate concerns, thereby clarifying data handling and presentation logic, which aids in easier testing and maintenance. Conclusions: - Ifat encourages developers to explore these design patterns, adapting and implementing them based on their projects’ needs. She underscores that embracing POROs and the outlined practices can enhance their coding discipline and overall project organization. The goal is to inspire developers to utilize these insights practically, leading to better project outcomes and collaborative environments.
Suggest modifications
Cancel