This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-10-12
Channels
- # beginners (85)
- # boot (7)
- # cider (7)
- # clara (1)
- # cljsrn (49)
- # clojure (85)
- # clojure-dev (19)
- # clojure-dusseldorf (15)
- # clojure-greece (1)
- # clojure-italy (12)
- # clojure-nl (4)
- # clojure-russia (21)
- # clojure-sanfrancisco (1)
- # clojure-spec (25)
- # clojure-uk (59)
- # clojurescript (29)
- # core-async (5)
- # core-matrix (1)
- # css (1)
- # datomic (1)
- # docker (10)
- # fulcro (12)
- # graphql (21)
- # hoplon (7)
- # jobs-rus (6)
- # jobs_rus (1)
- # lein-figwheel (1)
- # mount (5)
- # off-topic (6)
- # om (4)
- # onyx (8)
- # perun (1)
- # portkey (25)
- # protorepl (7)
- # re-frame (78)
- # reagent (24)
- # ring-swagger (32)
- # rum (3)
- # schema (1)
- # shadow-cljs (122)
- # spacemacs (3)
- # specter (2)
- # sql (1)
- # testing (1)
- # uncomplicate (2)
- # yada (14)
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
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.
In terms of examples, I've sent this one around before, since it's both clear and humorous: https://www.braveclojure.com/core-async/
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
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