Fork me on GitHub
#core-async
<
2017-10-12
>
mkeathley21:10:33

Does anyone know of any good channel and go block examples? All of the ones I have seen are very contrived and vague as to its practical use

rwilson21:10:33

In terms of practical use, I'd look less at core.async specifically and more at CSP-style concurrency. if that style doesn't seem suitable to the problem you're solving, then core.async won't be of much use.

rwilson21:10:07

In terms of examples, I've sent this one around before, since it's both clear and humorous: https://www.braveclojure.com/core-async/

rwilson21:10:11

Personally, I've found practicality in a few ways: • It's well suited to transforming, windowing, or aggregating long-lived or infinite streams of data • Chan semantics can help enforce decoupled systems, and thus make distributing that system more transparent (e.g. chans interacting with message brokers) • Chan buffering can elegantly implement overflow or back-pressure control flows

noisesmith21:10:01

tbaldridge’s talk at the last clojure/west had some good examples of what not to do in core.async code and how to fix it https://www.youtube.com/watch?v=096pIlA3GDo