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

ClojureScript and React

ClojureScript and React

Talk given at KyivClojure #7 on Apr 16 2015

Myron Mavko

April 16, 2015
Tweet

Other Decks in Programming

Transcript

  1. About me ๏ Myron Mavko ๏ Software engineer at Attendify.com

    ๏ Years of JS, jQuery, Backbone, ExtJS and all the classics ๏ Finally moving to something that works!
  2. Agenda ๏ Product overview ๏ What it was like: Knockout,

    jQuery, Backbone ๏ What it became like: ClojureScript, React ๏ React: what is it all about? ๏ Overview of ClojureScript React wrappers
  3. Attendify ‣ Mobile applications builder ‣ Thousands of mobile apps

    ‣ Private social networks in each application ‣ Real-time analytic ‣ Sponsored Posts (ads) ‣ EventWall for screen projection
  4. JS dev diary ๏ Exceptions you can’t understand ๏ Debugging

    ๏ Lack of basic means ๏ Remembering about all known JS pitfalls ๏ Remembering about framework specific pitfalls
  5. Our experience ๏ Being early adopters of ClojureScript (1.5+ years)

    ๏ Being early adopters of React (1.5+ years) ๏ Being early adopters of React cljs wrappers ๏ Watching it all evolves
  6. CLJS dev diary ๏ Exceptions and errors are easy to

    understand ๏ No reason for debugging ๏ No JS with its pitfalls and tons of libraries ๏ Power of Clojure at your fingertips ๏ core.async ๏ Incredibly fast incremental builds (+ live reloading)
  7. Component Mount Rerender Update Unmount cWillMount cWillReceiveProps shouldCUpdate shouldCUpdate cWillUpdate

    cWillUpdate render render render cDidMount cDidUpdate cDidUpdate cWillUnmount
  8. Om

  9. Om ✓ Industry pioneer ✓ Most widespread ✗ Overcomplicated ✗

    Cursors for us turned out to be a misconception that leads to unjustified coherence between UI structure and app state structure
  10. Rum ✓ Most flexible concept ✓ Source code easy to

    understand (comparing to Om) ✗ Very young project ✗ Complex cases (like mixin dependencies) need investigation