4 ms·
Working with several teams of combined 10+ devs on a few large code-bases in Clojure. It works just fine. Very often, the context of your changes are local to
by beders 5y ago
Working with several teams of combined 10+ devs on a few large code-bases in Clojure.
It works just fine. Very often, the context of your changes are local to a handful of functions - most of them being pure and simple to test.
I'm actually surprised how well it works compared to Java - for example - where long-distance dependencies can bite you in surprising ways - even with refactoring tools.
Clojure does have types and you can add compile-time tyoe-checking as an option, but it often is just in the way.
I don't miss types for modelling a domain at all. Maps/sets/vectors/lists are sufficient.
Granted: Your names better be good and you better use something like spec/malli etc. on the boundaries of your app/module for safety.
If bugs happen it typically is due to nil-punting and bad tests.
The nice thing: Those things are easily fixed. There's nothing complicated in Clojure.
What I can't get back to: compile, run, fail loop (vs. read, eval, print, loop).
The REPL allows you to live inside your app and it is just beautiful.