Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2019 - How to write pleasant code by Roman Kofman As we grow from beginner to intermediate developers, we tend to learn tools and Best Practices for writing good code. But. The more we learn, the more contradictions show up -- and the murkier it gets to find the right answers. Senior developers sometimes chime in with "it depends!". Which -- while being technically accurate, is also completely unhelpful. What does it depend on? How do we reconcile Best Practices when they conflict with each other? Who is "good" code actually good for? Is perfectly clean code even possible? We'll learn to find the answers to all of these questions by exploring the discipline of Design (think fancy chairs in museum); and stealing from it shamelessly. #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 "How to Write Pleasant Code" presented at RubyConf 2019, Roman Kofman explores how developers can improve their coding practices by focusing on human-centered design principles. He begins by acknowledging the nervousness of being a first-time speaker and sets the tone for a discussion centered around the interaction between human users and the tools they create, especially in coding. Key points covered include: - **The Nature of Tools**: Kofman argues that code should be viewed as a tool not just for functionality, but for usability and joy. He emphasizes that well-designed code leads to a better experience for anyone who interacts with it. - **Refactoring as Key to Usability**: He describes refactoring as a critical process for shaping code. By using patterns like DRY (Don't Repeat Yourself) and concepts such as SOLID, Kofman suggests developers can modularize their code to make it easier for others to work on in the future. - **The Balance of Design Principles**: For every principle like DRY, there are counter-principles such as YAGNI (You Aren't Gonna Need It), illustrating that coding approaches can vary widely depending on the scenario and requirements. - **Human-Centered Design**: The talk delves into human-centered design as a framework that emphasizes understanding the user—seeking to create solutions that are intuitive, considering the user's context, knowledge level, and environment. Kofman highlights the importance of observing users and exploring edge cases to ensure that the code remains accessible and helpful to all. - **Feedback Mechanisms**: The importance of providing adequate feedback for user actions is stressed, allowing users to learn and adapt as they work with the code. This feedback loop enhances user experience and confidence. - **Deciding Code Structure**: Kofman provides a personal anecdote about managing code changes, emphasizing that the decision on whether to combine elements of code—or separate them—should be influenced by their interactivity and the potential for unintended consequences. In conclusion, Kofman advocates for a perspective of writing code that prioritizes the happiness and effectiveness of users, suggesting that developers step back from focusing solely on code purity. Instead, they should consider whom the code is for and how it will impact them, leading toward creative solutions that foster collaboration and usability in coding environments. Overall, the takeaway is clear: tools, including code, should enhance user capability and experience, echoing a larger philosophy of design being deeply rooted in understanding human needs and behaviors.
Suggest modifications
Cancel