Clojure Webapps, Practical.li
This is an introduce to developing server-side web applications using the Clojure programming language. The aim is to present Clojure in a simple to understand and highly practical way for developers of any of experience.
This workshop guides you through the basics of server-side web development and helps you understand the modular approach to using Clojure effectively. Along the way the relevant functions and design approaches common in Clojure will be highlighted.
You will need the following in order to complete this workshop. The setup contains details on how to get your environment ready
- A working Java runtime environment (JRE) - test with
java -versionin a command line window
- Leiningen - test with
lein versionin a command line window
- A Clojure aware editor with REPL
- A Git client (optional)
- A free Heroku account for running Postgres database (alternatively install Posgtres database on your laptop)
Code for the workshop
The code for this workshop is contained in the Github repository Clojure Webapps example, the code for each section is in a specific branch.
To get a copy of the repository, use the following git clone command which creates a new directory called clojure-webapps-example that contains the cloned code.
git clone https://github.com/practicalli/clojure-webapps-example.git
Once you have the repository, use
git checkout branch-name to get the code for each section. Each branch is a working application with all the features covered in that section
git branch to show all the branches available, they should match the names of the sections in this workshop.
Here are some resources outside of this workshop that can help you learn more about Clojure
- Getting started with Clojure - a general guide to Clojure (work in progress)
- Clojure through code - many examples of basic Clojure code
- 4Clojure exercises & 4Clojure Google group
- Lighttable Koans - exercises to help you discover Clojure
- Getting started with Clojure on Heroku
- Clojure.org, features and rational
- Clojure documentation
- Clojure cheetsheet
- Official Google group
- CrossClj - cross-referencing the Clojure ecosystem
- Leiningen, tutorial, faq, plugins list & sample project file
- LightTable, docs, blog, announcements and discussions.
- Clojure-docs - community docs
- CrossCLJ - cross-referencing the Clojure ecosystem
- London Clojurians and their Google group
- Uncle Bob presents Clojure
Books & Tutorials
Web Frameworks (templates)
- luminus - a production ready app template
- duct - simple, minimal production-grade framework
pedestal-service - an opinionated, extensible & scalable framework
Luminus - a leingingen template based on Ring & Compojure, with many options
- Duct - a leiningen template by the author of Compojure, with many options
- Pedistal - front-end framework & server-side web app framework
Practicalli, Clojure WebApps by John Stevenson is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Based on a work at practical.li.