https://github.com/roman01la/rc-cljs-workshop
ClojureScript Workshop @ ReactiveConf '17
https://github.com/roman01la/rc-cljs-workshop
clojure clojurescript workshop
Last synced: about 2 months ago
JSON representation
ClojureScript Workshop @ ReactiveConf '17
- Host: GitHub
- URL: https://github.com/roman01la/rc-cljs-workshop
- Owner: roman01la
- Created: 2017-09-25T10:11:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-27T17:04:24.000Z (over 7 years ago)
- Last Synced: 2025-04-11T02:59:30.415Z (2 months ago)
- Topics: clojure, clojurescript, workshop
- Size: 122 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [ClojureScript Workshop](https://reactiveconf.com/workshop/introduction-to-clojurescript) @ [ReactiveConf '17](https://reactiveconf.com/2017/)

Timing: 4hrs (1:00 PM - 5:00 PM)
## Requirements
It's nice to know the following:
- React.js
- Basics of functional programming## Help during the workshop
Here's a couple of useful resources that will help you during the workshop:
- [ClojureScript Synonyms](https://kanaka.github.io/clojurescript/web/synonym.html) — translation of common things from JavaScript into ClojureScript
- [ClojureScript Cheatsheet](http://cljs.info/cheatsheet/) — a quick reference to a standard library of the language
- [ClojureDocs](https://clojuredocs.org/) — documentation website
- [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide) — a style guide to writing idiomatic Clojure code## Agenda
- [Intro into Lisp](https://github.com/roman01la/rc-cljs-workshop/blob/master/lisp_basics.pdf)
- [Intro into Clojure](https://clojure.org/about/rationale)
- How to read Lisp code
- How to edit Lisp code
- Paredit and Parinfer editing modes
- Lectures & exercises## Topics
- [Syntax, variable declaration & local bindings](https://www.maria.cloud/gist/5947b43a1a990b45c0f6007a91505b3f)
- [Fighting parens: Threading macro](https://www.maria.cloud/gist/9eddaa7fa40b5957ed6eab46c3f37878)
- [Primitive data types](https://www.maria.cloud/gist/55b3b59f3b2e58bc6dbe954686e8f6c5)
- [Control flow](https://www.maria.cloud/gist/5efb1cd1cfae36f4f0a9daafc4391267)
- [Data structures](https://www.maria.cloud/gist/79d279c216d285fd290ee96b5044204c)
- [Transforming Collections](https://www.maria.cloud/gist/644f52f501aa7de1e929f88030f415c0)
- [State & Identity](https://www.maria.cloud/gist/afabe1d520a3bf13364facd1f593c991)
- [Destructuring](https://www.maria.cloud/gist/e6f25e53f9274ddad70fdcf5b2de9b48)
- [Interop with JavaScript](https://www.maria.cloud/gist/f44cd7efc1bc608ccbb82e30f32ec33a)
- [Namespaces](https://www.maria.cloud/gist/0e9b151cbdce36f877b4eab8e0bb41b2)
- [Rendering UI](https://www.maria.cloud/gist/339e96930ffaa4e6f6f10a63a592ce46)
- [Basic concepts of Rum](https://www.dropbox.com/s/pb94uhrlank3tkk/ui.zip?dl=0)
- [Chat web app source](https://www.dropbox.com/s/t1fv3lmhl6o6kdb/rc-chat.zip?dl=0)## Setup
No setup is needed! For this workshop we'll use online coding environments such as [Maria](https://www.maria.cloud/) and [Nightcoders](http://nightcoders.net/).
- [Maria Quickstart](https://www.maria.cloud/quickstart)
## Useful links
- [Community Resources](http://clojure.org/community/resources)
- [ClojureScript REPL](http://jaredforsyth.com/reepl/)
- [ClojureScript Synonyms](https://kanaka.github.io/clojurescript/web/synonym.html)
- [ClojureScript Cheatsheet](http://cljs.info/cheatsheet/)
- [ClojureScript API](http://cljs.github.io/api/)
- [ClojureDocs](https://clojuredocs.org/)
- [The Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)
- [Quickref for Clojure Core](https://clojuredocs.org/quickref)
- [ClojureScript Tutorial](https://www.niwi.nz/cljs-workshop/)
- [ClojureScript Koans](http://clojurescriptkoans.com/)
- [Transforming Data with ClojureScript](http://langintro.com/cljsbook/)