Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
How do you find the most unmaintainable code in your codebase? What will you prioritize in your next technical debt spike, and why? In this talk you will learn how you can use RubyCritic, SimpleCov, Flog, Reek, and Skunk to slay dragons in your next refactoring adventure! Find out how the relationship between churn, complexity, and code coverage can give you a common language to talk about code quality and increase trust in your code.
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 "Here Be Dragons: The Hidden Gems of Tech Debt", Ernesto Tagwerker shares insights into identifying and managing technical debt within codebases. With an emphasis on practical tools, Tagwerker introduces a range of strategies to locate and address the most unmaintainable sections of code, creatively dubbed 'dragons'. ### Key Points: - **Understanding 'Here Be Dragons'**: The term is inspired by historical cartography, representing unexplored or dangerous areas. Tagwerker uses this metaphor to discuss areas of technical debt in codebases, one should always be cautious of. - **Identifying Technical Debt**: The talk categorizes four types of dragons to help locate technical debt: - **Complexity Dragon**: Refers to the most complex files within a codebase. Tools like Flog can help generate complexity scores, pinpointing the most convoluted parts of the code. - **Smelly Dragon**: This dragon represents code smells, which are indicators of poorly structured code. The tool Reek can identify common code smells, helping developers avoid potential pitfalls. - **Shape-Shifting Dragon**: Symbolizes files that change frequently due to evolving requirements. By examining churn counts through Git or the Churn gem, developers can evaluate the stability of these files. - **Untested Dragon**: Represents areas of code that have not been adequately tested. SimpleCov can assess code coverage and indicate which sections lack sufficient testing. - **Combining Insights with RubyCritic**: Tagwerker promotes RubyCritic as an essential tool for creating comprehensive reports on code quality, combining insights from complexity, code smells, and coverage into a single GPA score. This helps prioritize which areas of the codebase need urgent attention. ### Conclusion: Tagwerker encourages developers to make data-driven decisions regarding technical debt. By utilizing the discussed tools, teams can strategically prioritize refactoring and enhance code quality over time. The takeaway is to define what constitutes a 'dragon' within your projects and to utilize the right toolkit to combat these issues, ensuring a gradual improvement in code sustainability.
Suggest modifications
Cancel