Description
In this course, you will :
- Clojure development
- Set up Clojure environment
- Basics of Clojure development
- Advanced Clojure topics
- Practical application development
- Concurrent programming in Clojure
Syllabus :
1. Introduction
- Freebies and updates
- What is Clojure and brief history
- Clojure installation on Windows
- Clojure installation on MacOS
- Clojure installation on Linux
- Leiningen - clojure project manager
- IDE installation
- REPL
2. Language basics
- Syntax, clojure expressions
- Global variables and function definition
- Primitive data types
- Basic data structures
- Immutability
3. Language structures
- Control structures (if, case, cond)
- Local scope variables
- Loops
- Exception handling
- Namespaces
- Functional programming basics
- Destructuring
- Threading macros
- Recursion
- Closures
4. Advanced language concepts
- Dynamic and lexical scope
- Read, eval, apply
- Macros
- OOP: Protocols
- OOP: Multimethods
- Transducers
- Concurrent programming
5. Ecosystem and useful libraries
- Java interoperability
- File I/O
- Dependencies in Leiningen project
- JSON processing
- HTTP client, server, routing
- HTML templating
- SQL databases: postgres
- NoSQL databases: mongo
- Testing in Leiningen project
- Go-like concurrency library