Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Bursting at the Seams by David McDonald Our industry remains in its infancy but we've had many important contributions to how we all think and talk about design. In order to tighten the existing gap between where theory and practice meet, we need to continue to add to our shared vocabulary. With this aim, I want to underline one of the more accessible and oft-overlooked concepts from software's past: seams. Seams are easy to identify, and point to crucial incisions in our code. Learning to see code in terms of seams will improve your existing codebases, help you write better tests, and aid as you develop greenfield projects. #confreaks #rubyconf2019
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 "Bursting at the Seams" presented by David McDonald at RubyConf 2019, the concept of seams in software design is explored as a vital tool for improving code maintainability and testability. McDonald begins with a humorous reference to a memorable scene from the movie "Tommy Boy," setting the stage for discussing how seams can metaphorically represent crucial points in code that allow for easier modifications and testing. He emphasizes that many existing codebases are often rigid and difficult to change, which can hinder software development. The presentation outlines the following key points: - **Definition of Seams**: Seams are defined as points in the codebase that allow developers to change how the code behaves without altering the actual code, offering flexibility in testing and refactoring. - **Importance of Testability**: Drawing from Michael Feathers' work on legacy code, McDonald stresses that seams facilitate easier testing and promote healthier code evolution by breaking down dependencies. - **Examples of Seams in Code**: McDonald presents a practical example with a "make requests" method, identifying it as a complex method that requires changes when new features are introduced. By refactoring to utilize seams, the code becomes easier to work with. - **Refactoring Strategies**: The importance of identifying where seams can be created to isolate dependencies is highlighted. He discusses using dependency injection as a means to achieve this. - **Incremental Improvements**: As more requirements emerge (such as adding new user types), instead of modifying the original code, McDonald demonstrates how to leverage the seams created to smoothly integrate enhancements. - **Conclusion**: Ultimately, McDonald argues that recognizing and creating seams in code allows developers to manage change with less friction and lays the groundwork for future refactoring. He encourages developers to think of seams in their own work to enhance their software designs and coding practices. The main takeaway from the presentation is the power of seams as a conceptual tool in software engineering that promotes adaptability, testability, and cleaner, more maintainable code, which is essential for developers facing continual shifts in project requirements.
Suggest modifications
Cancel