Eric Normand Courses/B02 Repl-Driven Development in Clojure

Learn the secret of effective Clojure programmers

Repl-Driven Development in Clojure

  • Tired of long compile times?
  • Sick of losing your state when you reload your server?
  • Wish you could get into deep flow while you're programming?
Instead, imagine if you:
  • Recompiled only what changed—even as small as a single function
  • Never restarted your server so the state is never lost
  • Got rich, frequent feedback from a live, running system
All of that is possible with Clojure, when you use Repl-Driven Development.

Clojure was built, first and foremost, to be dynamic. It was designed for a very interactive coding style where you are continuously evaluating code at the repl. This syle of programming is called Repl-Driven Development, and it's one of the superpowers of Clojure.

This course teaches the mindset, practices, and tools of Repl-Driven Development.

Repl-Driven Development is not a specific process. It is an idea—that programming should be a process of interacting with and modifying a live system. You don't bundle up your whole application and send it to the computer for processing. Instead, you are in a continuous conversation about your problem domain. The end result, when you do it right, is a deep state of flow and engagement with your software.

Repl-Driven Development is a set of tools and techniques that support this idea. The tools come from your editors and Clojure itself. And the techniques are ways of evaluating code and working with the dynamic runtime. We go over all of that in this course.

Who is this course for?

This course is for anyone who has wanted to write better code and have more fun. Throughout the course, we dive deep into important topics like:
  • the evaluation semantics of Clojure—which is designed specifically for Repl-Driven Development (RDD)
  • the three keybindings you need for RDD—which are available in the top Clojure IDEs
  • guidelines for what to evaluate, when
  • how to maintain flow while you're programming
  • dealing with common problems you may encounter
  • how to run a Clojure repl even in Java projects
  • navigating namespaces
  • setting up your project for RDD
  • using the repl to explore large amounts of data

  • $199

B02 Repl-Driven Development in Clojure

  • Closed

Contents

What is Repl-Driven Development?
Preview
The mental switch to Repl-Driven Development - Batch vs interactive programming
All about Flow
Preview
A map of the Repl-Driven Development territory
Example of Repl-Driven Development
Clojure execution semantics
Compiling and executing code from your Clojure editor
Starting a Basic REPL Workflow
Coding interactively at the Repl
Guidelines for Repl-Driven Development
Ergonomics - Tools to write code
Structural editing - Tools to write code
Testing code with the Repl
Dealing with errors
println debugging
Scientific debugging
Keeping code in sync
Controlling namespace reloading with defonce
Printing values and controlling printing
Playing with values at the repl
Navigating namespaces at the repl
Interactive documentation
Running a Clojure repl in a Java application
Editing servers and other long-running processes
Some reloading tools some people use
Recap and Conclusions

  • $199

B02 Repl-Driven Development in Clojure

  • Closed