ClojureScript and React

ClojureScript and React

Talk given at KyivClojure #7 on Apr 16 2015

Fbbf614189ede9ac7d867b93a268f9ae?s=128

Myron Mavko

April 16, 2015
Tweet

Transcript

  1. 2.

    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. 3.

    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. 5.

    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. 7.
  5. 10.

    JS dev diary ๏ Exceptions you can’t understand ๏ Debugging

    ๏ Lack of basic means ๏ Remembering about all known JS pitfalls ๏ Remembering about framework specific pitfalls
  6. 14.

    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
  7. 15.

    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)
  8. 24.
  9. 25.

    Component Mount Rerender Update Unmount cWillMount cWillReceiveProps shouldCUpdate shouldCUpdate cWillUpdate

    cWillUpdate render render render cDidMount cDidUpdate cDidUpdate cWillUnmount
  10. 28.

    Om

  11. 29.

    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
  12. 30.
  13. 32.
  14. 36.

    Rum ✓ Most flexible concept ✓ Source code easy to

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