<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Idiomatic ClojureScript | Section 4 on Learn ClojureScript</title><link>https://www.learn-clojurescript.com/section-4/</link><description>Recent content in Idiomatic ClojureScript | Section 4 on Learn ClojureScript</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 26 Apr 2020 11:57:50 -0600</lastBuildDate><atom:link href="https://www.learn-clojurescript.com/section-4/index.xml" rel="self" type="application/rss+xml"/><item><title>Capstone 4 - Group Chat | Lesson 26</title><link>https://www.learn-clojurescript.com/section-4/lesson-26-capstone-4-group-chat/</link><pubDate>Sun, 26 Apr 2020 11:57:50 -0600</pubDate><guid>https://www.learn-clojurescript.com/section-4/lesson-26-capstone-4-group-chat/</guid><description>Lesson 26: Capstone 4 - Group Chat Congratulations! At this point, we have learned enough ClojureScript to write pretty much any sort of app that we would like. Sure, over the coming chapters, we will pick up some tools and techniques that will make us more productive, but nothing is stopping us from writing complete, production-quality apps with what we have learned so far. For this capstone, we will be writing a realtime group chat application - similar to a very slimmed-down version of Slack.</description></item><item><title>Intro to Core Async | Lesson 25</title><link>https://www.learn-clojurescript.com/section-4/lesson-25-intro-to-core-async/</link><pubDate>Tue, 21 Jan 2020 07:00:36 -0700</pubDate><guid>https://www.learn-clojurescript.com/section-4/lesson-25-intro-to-core-async/</guid><description>Lesson 25: Intro to Core Async Asynchronous programming lives at the heart of web development. Almost every app needs to communicate with an API backend, respond to user input, or perform some other IO task without blocking the main thread. While it is entirely possible to use JavaScript&amp;rsquo;s Promise API from ClojureScript, we have another paradigm for asynchronous programming at our disposal - the core.async library. This library implements the same concurrency model as the Go programming language, and it allows us to write code as sequential processes that may need to communicate with each other.</description></item><item><title>Handling Exceptions and Errors | Lesson 24</title><link>https://www.learn-clojurescript.com/section-4/lesson-24-handling-exceptions-and-errors/</link><pubDate>Sat, 11 Jan 2020 16:43:38 -0700</pubDate><guid>https://www.learn-clojurescript.com/section-4/lesson-24-handling-exceptions-and-errors/</guid><description>Lesson 24: Handling Exceptions and Errors We would like to think of programming as an idealized discipline where we write our programs declaratively and the computer converts them into pure computational models that can churn away until the heat death of the universe. In practice, bad things will happen, and they will happen much sooner than the heat death of the universe. Networks fail, we divide by zero, we miss a corner case that generates input in the &amp;ldquo;wrong&amp;rdquo; shape.</description></item><item><title>Managing State | Lesson 22</title><link>https://www.learn-clojurescript.com/section-4/lesson-22-managing-state/</link><pubDate>Fri, 29 Nov 2019 06:22:22 -0700</pubDate><guid>https://www.learn-clojurescript.com/section-4/lesson-22-managing-state/</guid><description>Lesson 22: Managing State This lesson has been a long time coming, and it is a critical one. By this point, we have seen that it is possible to write whole applications without using any mutable data, but for most cases, it is inconvenient to say the least. As we learned in the last lesson, ClojureScript encourages writing programs as a purely functional core surrounded by side-effecting code, and this incudes code that updates state.</description></item><item><title>Namespaces and Program Structure | Lesson 23</title><link>https://www.learn-clojurescript.com/section-4/lesson-23-namespaces-and-program-structure/</link><pubDate>Wed, 20 Nov 2019 21:48:49 -0700</pubDate><guid>https://www.learn-clojurescript.com/section-4/lesson-23-namespaces-and-program-structure/</guid><description>Lesson 23: Namespaces and Program Structure In ClojureScript, the unit of modularity is the namespace. A namespace is simply a logical grouping of functions and data that can be required and used by another namespace. External libraries expose modules as namespaces that we can require in our code, and we can (and should) break our code into multiple modules as well. In this lesson, we&amp;rsquo;ll learn how to declare and require modules as well as how to use them to create clean architectural boundaries in our programs.</description></item><item><title>Functional Programming Concepts | Lesson 21</title><link>https://www.learn-clojurescript.com/section-4/lesson-21-functional-programming-concepts/</link><pubDate>Sun, 06 Oct 2019 16:01:35 -0600</pubDate><guid>https://www.learn-clojurescript.com/section-4/lesson-21-functional-programming-concepts/</guid><description>Lesson 21: Functional Programming Concepts ClojureScript sits at the intersection of functional programming and pragmatism. In this lesson, we will take a deeper look at what it means to be a functional language. As we shall see, functional programming is about much more than simply being able to use functions as values. At its core, the more important concepts are composability, functional purity, and immutability. Composability means that we build larger modules and systems out of small, reusable pieces.</description></item></channel></rss>