An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

        

# [ClojureScript Workshop](https://reactiveconf.com/workshop/introduction-to-clojurescript) @ [ReactiveConf '17](https://reactiveconf.com/2017/)

![](logo.png)

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/)