Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
This talk illustrates the development techniques, Ruby patterns and best practices we adopt at DNSimple to develop new features and ensure long-term maintainability of our codebase. It also features how we used Lotus to develop the new API as a standalone Rack app mounted under the Rails router. Two years ago we started a major redesign of our REST API with the goal to decouple it from our main Rails application and expose all the main features via API. It was not a trivial task, but still feasible due to the guidelines we adopted in the last 6 years to structure our Rails application.
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 this talk, Simone Carletti presents the development techniques and methodologies utilized at DNSimple to maintain and enhance their Rails platform, with a focus on incorporating the Hanami framework (formerly known as Lotus) into their new API development. The discussion outlines a journey that began two years prior, aimed at decoupling their REST API from the main Rails application. Key Points: - **Introduction to DNSimple**: Carletti sets the stage by explaining DNSimple's business model and their longstanding API service, which has been integral since 2010. - **Development Approach**: Emphasizes maintaining a sustainable codebase through the wrapping of dependencies in custom APIs to manage changes without extensive refactoring—a practice that enhances maintainability and simplifies testing. - **Model Management**: Carletti elaborates on their approach to Active Record, advocating for a separation of concerns that restricts direct database calls within models, instead utilizing custom APIs for interactions. - **MVC Plus Architecture**: Introduces a modified architecture comprising four layers: controllers, models, commands, and services, which clarifies roles and responsibilities, particularly isolating business logic from HTTP requests. - **Hanami Framework**: Carletti highlights Hanami's modularity, allowing selective component utilization that fits their needs. The advantages of using Hanami include enhanced organization of the API and the ability to manage interactions effectively. - **Encouragement of Experimentation**: Urges developers to periodically experiment with different frameworks and approaches while engaging with broader programming communities to gain fresh insights. Concluding Remarks: The presentation emphasizes the importance of continuous learning, exploring new technologies, and finding ways to structure applications in more maintainable manners, enabling future experimentation and adaptability.
Suggest modifications
Cancel