<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kris Jenkins</title>
    <description/>
    <link>https://speakerdeck.com/krisajenkins</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/krisajenkins.rss"/>
    <lastBuildDate>2022-02-16 04:20:38 -0500</lastBuildDate>
    <item>
      <title>Side-Effects Are The Complexity Iceberg</title>
      <description>Many of us have a rough idea of what side-effects are and a vague sense that they're bad. It's a shame we're not more precise about it, because when you really understand side-effects you have an excellent new lens through which you can judge individual blocks of code, larger architectural patterns, and even whole system designs.

So let's start by clarifying our understanding of what side-effects are and how to spot them. We'll see how easily they arise, leaving code that's harder to understand, harder to test and harder to decouple. Then we'll look at tools and techniques for eliminating those side-effects where it's possible and managing them where it isn't. Finally we'll zoom out to see how those ideas get expressed in every field of computing, yielding fundamentally different approaches to programming language design, DevOps, system architecture, and database design.

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 start tackling it, rethinking the way we deal with data and the systems around it.</description>
      <media:content url="https://files.speakerdeck.com/presentations/cc34e8e20d944fe2af27154454b5df9b/preview_slide_0.jpg?20461472" type="image/jpeg" medium="image"/>
      <content:encoded>Many of us have a rough idea of what side-effects are and a vague sense that they're bad. It's a shame we're not more precise about it, because when you really understand side-effects you have an excellent new lens through which you can judge individual blocks of code, larger architectural patterns, and even whole system designs.

So let's start by clarifying our understanding of what side-effects are and how to spot them. We'll see how easily they arise, leaving code that's harder to understand, harder to test and harder to decouple. Then we'll look at tools and techniques for eliminating those side-effects where it's possible and managing them where it isn't. Finally we'll zoom out to see how those ideas get expressed in every field of computing, yielding fundamentally different approaches to programming language design, DevOps, system architecture, and database design.

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 start tackling it, rethinking the way we deal with data and the systems around it.</content:encoded>
      <pubDate>Wed, 16 Feb 2022 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/krisajenkins/side-effects-are-the-complexity-iceberg</link>
      <guid>https://speakerdeck.com/krisajenkins/side-effects-are-the-complexity-iceberg</guid>
    </item>
  </channel>
</rss>
