https://github.com/tolitius/funoop
clojure "enterprisy" ways
https://github.com/tolitius/funoop
Last synced: 3 months ago
JSON representation
clojure "enterprisy" ways
- Host: GitHub
- URL: https://github.com/tolitius/funoop
- Owner: tolitius
- Created: 2018-04-03T16:54:02.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-14T03:05:01.000Z (over 7 years ago)
- Last Synced: 2025-02-24T09:43:00.789Z (8 months ago)
- Language: HTML
- Size: 13.2 MB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# funoop
> _initially created for [jeeconf 2018](https://jeeconf.com/)_
> _slides (made for Firefox): [gitpod.com/talks/jeeconf.2018](http://gitpod.com/talks/jeeconf.2018)_
> _talk: [youtube](https://www.youtube.com/watch?v=Svhhga9Rxnc)_
Out of many strong JVM based languages Clojure and Java make a great couple.
Coming to Clojure from Spring/Java several years ago I really wished back then someone could explain functional programming and Clojure ecosystem to me from the Spring/Java point of view.
funoop bridges this gap by showing practical "How would you do X in Clojure" examples including:
* state management
- application resources are usually mutable (network connections, files, databases, thread pools workers, etc..)
* application configuration
- i.e. ENV variables, Zookeeper, Consul, etc.
* cross cutting concerns (AOP)
- logging, exception handling, transaction management, security, profiling, etc.
* talking to data stores
- SQL, NoSQL, AlmostSQL
* event processing
- message brokers, HTTP endpoints, zeromq, etc.
* portability
- an ability to communicate across languages: i.e. Java <==> C++ <==> Go <==> Rust, etc.
* async communication
- NIO, go channels, threadpools, etc.## License
Copyright © 2018 tolitius
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.