Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Up Next: Igor Morozov - Ducks and monads: wonders of Ruby types https://www.youtube.com/watch?v=v-H9nK8hqfE ###################### ### \o/ EuRuKo 2018 \o/ ### ###################### ### Day 1 ### Yukihiro Matsumoto - Keynote https://www.youtube.com/watch?v=cs0s5lZAUwc Chris Salzberg - Metaprogramming for generalists https://www.youtube.com/watch?v=1fIlcnrJHxs Joannah Nanjekye - Ruby in containers https://www.youtube.com/watch?v=qPNkOPvjecs Damir Zekić - Tool belt of a seasoned bug hunter https://www.youtube.com/watch?v=ObB0dzX_rBs Igor Morozov - Ducks and monads: wonders of Ruby types https://www.youtube.com/watch?v=v-H9nK8hqfE Brad Urani - Rails anti-patterns: how not to design your database https://www.youtube.com/watch?v=zo3iRBPzscU Coraline Ada Ehmke - The broken promise of Open Source https://www.youtube.com/watch?v=5ByUPh_uPqQ Louisa Barrett - Ruby not red: color theory for the rest of us https://www.youtube.com/watch?v=OgO1EIFDgPU ### Day 2 ### Nadia Odunayo - The case of the missing method — a Ruby mystery story https://www.youtube.com/watch?v=OlOA0aGxud0 Pitch the next EuRuKo's location https://www.youtube.com/watch?v=YXe9OoQW8lc Ana María Martínez Gómez - Let’s refactor some Ruby code https://www.youtube.com/watch?v=jUc8InwoA-E Pan Thomakos - Debugging adventures in Rack-land https://www.youtube.com/watch?v=5o4krwjJbOI Lightning talks https://www.youtube.com/watch?v=zSeaNPjwnnA Kerstin Puschke - Scaling a monolith isn't scaling microservices https://www.youtube.com/watch?v=tA8gGd_Rl7E Amr Abdelwahab - An empathy exercise: contextualising the question of privilege https://www.youtube.com/watch?v=6CqmGYvFwAQ Wrap up & announcing the next EuRuKo's location https://www.youtube.com/watch?v=wMggsShGTzk
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 'Ducks and monads: wonders of Ruby types' by Igor Morozov, presented at EuRuKo 2018, the speaker explores the importance and implications of types in Ruby, a dynamically typed language. Morozov begins by expressing his self-doubt as a software engineer, emphasizing how mistakes and errors in code can lead to significant issues. He outlines four primary reasons for his lack of trust in his coding abilities: - **Undefined behavior:** Encountering errors like 'undefined is not a function' due to expectations of variable assignments that aren't met. - **N plus one errors:** Realizing this error type after working extensively with Rails, where missing data leads to inefficiencies. - **Complex domains:** Mistakes arising from intricate application designs. - **Syntactic errors:** Simple typos like missed brackets or quotation marks that can derail coding efforts. Morozov emphasizes that while Ruby’s dynamic nature offers flexibility, it necessitates rigorous attention to data integrity. He cites a Rollbar report that highlights that a significant percentage of common errors are type-related, underscoring the importance of maintaining accurate type handling. He discusses the misleading practices introduced by some features in Active Support which can treat different data types as equivalent, potentially leading to errors. To combat these pitfalls, Morozov advocates for leveraging libraries like **dry-types** to enforce type safety, allowing developers to define data structures more clearly. A significant portion of the talk delves into **monads**, specifically the Result monad (also known as Either), which is a structured way of handling success and failure in applications. He explains how monads can simplify error handling and promote cleaner code by allowing methods to chain together without cluttering the application with error-checking boilerplate. Morozov concludes by emphasizing that using types effectively can lead to better application design and reduce errors, suggesting that every Ruby developer should explore the concepts of type safety and monads in their coding practices. The key takeaways from his presentation include: - Utilize appropriate libraries for type safety. - Reconsider reliance on features that can lead to ambiguity in data handling. - Employ monads to manage application errors effectively while maintaining readability in the code. The talk asserts that understanding and applying type principles is not just beneficial but essential for the development of reliable and maintainable applications.
Suggest modifications
Cancel