- editor integration
- repl-driven development: evaluation & reload & documentation (Evaluation)
- syntax highlight & rainbow parentheses (Readability)
- formatter:
cljfmt
for clj/cljs (Formatting) - linter:
clj-kondo
(Lint) - s-expression editing: slurp, barf, delete surrounding parentheses, etc. (Editing)
- search function references:
clojure-lsp
(Navigation) - search string in current directory:
ack.vim
(Navigation) - pprint & data visualization: pprint, inspector (Data Visualization)
- concepts
- immutability
- pure function & dependency injection
- constraints instead of types
- sequence abstraction & colleciton abstraction
- lazy evaluation & gotcha
- programming tactics
- naming
- effective recursion
- multiple ways to do one thing: different level of complexity
- 8 important combinators
- recursion & lazy-seq/lazy-cat
mapcat
postwalk
- Three aspects of inteoperation: java, javascript, react
- mist
- debug with scientific method
- object API/http API/queue/log
- modeling
nil
semantic in code and in database
Part 1 - Basic
Part 2 - Powerful Modeling Skills
mapcat/ postwalk/ group-by/ interpose /interleave /frequency
nil
semantic?Part 3 - Concurrency / Java/ Performance