This presentation was recorded at YOW! Australia 2024. #GOTOcon #YOW https://yowcon.com Kris Jenkins - Developer Advocate, Software Developer, Podcast Host, Conference Speaker & Geek @krisajenkins RESOURCES https://bsky.app/profile/krisajenkins.bsky.social https://www.linkedin.com/in/krisjenkins https://twitter.com/krisajenkins https://github.com/krisajenkins http://blog.jenkster.com ABSTRACT Side-effects are insidious beasts. They make code harder to test, harder to use, and harder to compose. And yet to most programmers, they're almost completely invisible. And that means they sneak into our codebases without meeting any resistance. So let's take a closer look at side-effects and learn how to fight back. By training yourself to spot them, you can start to eliminate one of the sneakiest causes of software complexity. You'll understand why some code is naturally easier to test, and why some APIs are inherently harder to work with. (And you'll be able to write more of the good kinds!) Then, as we zoom out, you'll see why side-effects are the unifying force behind some of the most exciting ideas in modern programming, from immutable data structures and functional programming, through the latest developments in Java and the roots of Rust all the way to the evolution of event systems and high-scale databases. There's an iceberg of complexity hiding in your systems' side-effects and by the end of this talk you'll be able to spot it and have a raft of ideas for tackling it, from devops to database design and beyond. [...] TIMECODES 00:00 Intro 01:27 Let's talk about side effects 06:03 APIs & contracts 08:51 Hidden dependency graphs 10:47 Data 12:27 Programming is doomed 12:46 What can we do about it? 15:01 What if we went further? 18:06 What about other side-effects? 24:15 Functional programming 31:06 So, let's talk about side effects 32:50 Outro Download slides and read the full abstract here: https://yowcon.com/brisbane-2024/sessions/3592 RECOMMENDED BOOKS Sandy Maguire • Thinking with Types • https://leanpub.com/thinking-with-types Edwin Brady • Type-Driven Development with Idris • https://amzn.to/432GZTi Maryann Kisamore • Basics Of Apache Kafka • https://amzn.to/3tkVYFD Mitch Seymour • Mastering Kafka Streams and ksqlDB • https://amzn.to/3HZ18wK Ted Dunning & Ellen Friedman • Streaming Architecture • https://amzn.to/3lhk3Kb Liz Rice • Container Security • https://amzn.to/3oU4iJe Neal Ford • Functional Thinking • https://amzn.to/3DdP35B Petricek & Skeet • Real-World Functional Programming • https://amzn.to/38diF4M Venkat Subramaniam • Functional Programming in Java • https://amzn.to/2WlOXIt https://bsky.app/profile/gotocon.com https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #Complexity #Testing #Rustlang #Haskell #Microservices #Types #TypeSystem #ModerTypeSystem #SoftwareDesign #Programming #SoftwareEngineering #TodayInTech #KrisJenkins #YOWcon CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Get notified about new features and conference additions.