Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
by Coraline Ehmke There are dozens of code metrics tools available to Rubyists, all eager to judge our codebases and tell us things that we probably already know. But when technical debt is piled high and feature friction really sets in, we need more than to know that our User class has a “D” grade. How can we use tools and tests to help us formulate a refactoring plan that amounts to more than just rearranging bricks in a crumbling building? Let’s explore some of the more interesting code analysis tools, take a look at our testing techniques, and find novel ways to combine them into a meaningful refactoring strategy. Help us caption & translate this video! http://amara.org/v/GVgp/
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 presentation titled "Data-Driven Refactoring," Coraline Ehmke discusses the importance of refactoring in software development, particularly in Ruby applications. Ehmke, a lead engineer at Instructure, emphasizes that with increasing technical debt and feature friction, developers must leverage data-driven approaches for refactoring. Key points from the talk include: - **Definition of Refactoring**: Ehmke broadens the definition of refactoring beyond just methods to include entire systems, emphasizing the need for a well-defined refactoring strategy. - **Reasons to Refactor**: Practical advantages for refactoring include improving performance, reducing bugs, easing the addition of new features, and enabling faster onboarding of new developers. - **The Role of Testing**: Ehmke underscores the importance of using tests as guardrails during refactoring efforts. She advocates for the creation of temporary tests to validate assumptions about code functionality and guide the refactoring process effectively. - **Testing Methodologies**: Techniques such as boundary testing and attribute testing are discussed. The use of approval tests (golden master testing) is introduced as a way to validate output consistency after changes are made. - **Metrics for Improvement**: Ehmke urges developers to track metrics that reflect their refactoring goals, such as test suite runtime and feature-to-bug-fix ratio. She highlights tools like Code Climate and Rake notes that help measure code quality over time. - **Practical Applications**: The talk shares insights from Instructure, where they developed a tool called Pandometer to aggregate various metrics for monitoring quality improvements on a commit-by-commit basis. In conclusion, Ehmke encourages developers to create refactoring strategies aligned with their specific goals using data-driven methods. She asserts that meaningful refactoring contributes not only to code quality but also to a positive work environment for developers, making code functional, beautiful, and maintainable. This comprehensive approach is essential for evolving codebases in a strategic manner.
Suggest modifications
Cancel