• Online, Self-Paced
Course Description

Successfully creating asynchronous programs in Clojure requires an in-depth understanding of the core.async library and how to utilize it in your programs. In this course, you will learn how to use the major elements of the core.async library including channels, pipelines, Go macros, and blocks. Additionally, this course will address messaging and binding, as well as how to utilize some of the library's built-in functions including peek, alts, put, and take.

Learning Objectives

Clojure's core.async Library

  • start the course
  • install and configure the core.async library for use in your Clojure programs
  • describe and work with channels and the chan function in Clojure
  • work with Clojure's put and take functions
  • distinguish the differences between the put! and >! / >!! functions and the take! and
  • work with the onto-chan function of the core.async library
  • use the putret feature available in Clojure
  • describe and work with channel buffers
  • describe transducers and use them in your Clojure programs

Pipelines and Error Handling

  • describe and work with pipelines and the pipeline function
  • utilize the pipeline-blocking function in your Clojure programs
  • include error handling in your Clojure programs

Additional Clojure Techniques

  • work with the go macro and use go blocks in your Clojure programs
  • describe how Clojure go blocks are garbage collected
  • use caching and the http-kit with the core.async library

Ports and Channels

  • work with the reduce function of the core.async library
  • work with the split function of the core.async library
  • work with the map function of the core.async library
  • work with Clojure's alts function to perform the peek functionality in channels
  • work with the merge function of the core.async library
  • work with the mix function of the core.async library
  • work with the pub and sub functions of the core.async library

Practice: Working with the core.async Library

  • identify the main features and benefits of using the core.async library when creating asynchronous Clojure programs

Framework Connections

The materials within this course focus on the Knowledge Skills and Abilities (KSAs) identified within the Specialty Areas listed below. Click to view Specialty Area details within the interactive National Cybersecurity Workforce Framework.