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

ClojureScript

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 ClojureScript

Avatar for Aleš Roubíček

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