Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ClojureScript

 ClojureScript

Aleš Roubíček

May 22, 2018
Tweet

More Decks by Aleš Roubíček

Other Decks in Programming

Transcript

  1. Clojure • dynamické vývojové prostředí • datově orientovaný jazyk •

    Simple by Design • Lisp on JVM • od začátku zamýšlená jako hostovaný jazyk • prvotřídní interop s hostitelskou platformou
  2. EDN Typy string "foo" character \f integer 42, 42N floating

    point 3.14, 3.14M boolean true, false nil nil symbol foo, + keyword :foo, 9:foo
  3. EDN Datové struktury list sequential (1 2 3) vector sequential,

    random access [1 2 3] map associative {:a 1 :b 2} set membership #{:a :b :c}
  4. Definice funkce (defn greet "Returns a friendly greeting" [your-name] (str

    "Hello, " your-name)) function name doc string parameters function body
  5. ClojureScript • Dialekt Clojure • Cílí na všechna moderní JS

    prostředí • BCL • Google Closure Library • cljs.core • cljs.test • cljs.string • Google Closure Compile (gcc)
  6. REPL Driven Development • interaktivní vývoj • rychlá zpětná vazba

    • nástroje • cljs.main • lumo • lein figwheel
  7. qlkit • univerzální (client/server) wrapper React.js • stejná syntaxe pro

    markup a dotazovaní dat • komponenty určují, jaká data v jakém tvaru potřebují
  8. core.async • Implementace CSP a Go kanálů jako knihovna •

    psaní async a paralelních procesů lineárním stylem • základní kámen pro tvorbu robustních systémů
  9. transit • knihovna pro přenos rozšiřitelných typů dat (EDN) •

    enkóduje data do formátu JSON (nebo do MsgPack) • vysoká rychlost parsování v browserech • typová bezpečnost bez ztráty informací a přesnosti
  10. spec • specifikace dat pomocí regulárních výrazů • spustitelná dokumentace

    • typy na steroidech • lepší chybové hlášky • generativní testování • Open-Closed Principle ➡ dopředná kompatibilita