Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Communicating with Cops by Kyle d'Oliveira "As the number of developers grows within an organization, how do you keep others informed of best practices, or patterns that caused problems in the past? Is there a lot of tribal knowledge or documentation that developers need to memorize? That is a recipe for cognitive overload. Alternatively, we can use Rubocop to codify some best practices or common traps to avoid. This talk will dive into how Rubocop can be used to not only enforce styling but also keep problematic patterns out, while also providing the motivation and context for enforcing it." __________ Based in Vancouver, Canada, Kyle is a jack of all trades and a master of some; at least he thinks so. He works as a staff software developer to readily turn abstract ideas into working pieces of software. He has worked on every major Rails version, and remembers the days when everyone implemented their own authentication system. When not developing, he enjoys picking up really heavy objects so that they can be put back down again.
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 his talk titled **"Communicating with Cops"** at RailsConf 2020 CE, Kyle d'Oliveira discusses the use of **Rubocop** as a tool for standardizing coding practices and improving developer onboarding within software development teams. He emphasizes the importance of communication and education in coding practices, especially when onboarding new developers into a codebase. His main arguments include the need to alleviate cognitive overload from excessive comments on pull requests and the benefits of automating feedback through static analysis tools like Rubocop. Key points discussed in the presentation include: - **Challenges in Developer Onboarding**: Kyle outlines how his team at **Cleo** previously utilized a "pet project" to help new developers acclimate to their codebase. He noted that this often resulted in overwhelming feedback and comments during code reviews. - **Cognitive Overload**: The discussion highlights the issues of cognitive overload when numerous comments are provided on pull requests, hindering a new developer's ability to process useful information. - **Automated Education with Rubocop**: Kyle presents Rubocop as a solution to automatically catch common styling and behavior issues in code. This simplifies the job of code reviewers and allows them to focus on the actual functionality of code rather than stylistic elements. - **Custom Rule Development**: Kyle discusses the flexibility of Rubocop, mentioning that anyone can write their own set of rules (cops) to enforce specific coding standards relevant to their organization. He provides examples of customizing cops to catch problematic patterns and educate developers on best practices. - **Case Study**: He showcases a real example of a subtle bug caused by improper handling of global variables in tests, and how custom cops could automate the prevention of such issues by providing immediate feedback during coding. - **Community Benefits**: The talk also emphasizes the community aspect of Ruby and how shared tools and knowledge can significantly improve code quality and developer experience across teams. In conclusion, d'Oliveira advocates for incorporating **Rubocop** as a valuable educational tool that can enhance both the quality and consistency of codebases while easing the onboarding process for new developers. The message is clear: by automating the checking of common errors and educating developers at the moment of writing code, teams can sustain high code standards without excessive human intervention, reducing bugs and leveraging collective knowledge effectively.
Suggest modifications
Cancel