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

WordCamp Kansai 2016: Why WordPress.com Chose JavaScript-First Approach.

WordCamp Kansai 2016: Why WordPress.com Chose JavaScript-First Approach.

This is a talk from WordCamp Kansai 2016, with the following session description:

"What would we build if we were starting from scratch today, knowing all we’ve learned over the past 13 years of building WordPress?" At the beginning of 2014, the folks at Automattic asked themselves this question. The result is what now known as Calypso. It is not only a product combining some latest web technology, but also the demonstration of what we see as the future of WordPress.

In this session, we cover a brief history about the evolving of Calypso, how we chose our development stack, and what we learned from them.

James Tien

July 13, 2016
Tweet

Other Decks in Technology

Transcript

  1. THE WORLD IS EVOLVING... Once upon a time Now One

    device. One site / blog. Server - client Just too many. Multisite Server - Client
  2. WHAT WOULD WE BUILD IF WE WERE STARTING FROM SCRATCH

    TODAY? (on a mysterious day in 2014)
  3. ONE OF THE HARDEST THINGS TO DO IN TECHNOLOGY IS

    DISRUPT YOURSELF. -- MATT MULLENWEG.
  4. Pros Cons flexible more integration works better modularity JS developers

    ...integration works are actually a good thing.
  5. View → React State → Redux Modern JS → Babel

    Module + Bundling → Webpack Task runner → GNU make
  6. DATA => VIEW { ' t i t l e

    ' : ' H e l l o ' , ' c o n t e n t ' : ' W C K a n s a i ! ' , } < a r t i c l e > < h 1 > H e l l o < / h 1 > < p > W C K a n s a i < / p > < / a r t i c l e >
  7. r e n d e r ( ) { c

    o n s t { t i t l e , c o n t e n t , } = t h i s . p r o p s ; r e t u r n ( < a r t i c l e > < h 1 > { t i t l e } < / h 1 > < p > { c o n t e n t } < / p > < / a r t i c l e > ) ; }
  8. WHAT ABOUT STYLING...? COMPONENT-SCOPED CLASSES . c o m m

    e n t - b u t t o n { c o l o r : l i g h t e n ( $ g r a y , 1 0 ) ; l i s t - s t y l e - t y p e : n o n e ; p a d d i n g : 4 p x 4 p x 4 p x 2 7 p x ; p o s i t i o n : r e l a t i v e ; } . c o m m e n t - b u t t o n _ _ i c o n { f i l l : l i g h t e n ( $ g r a y , 1 0 % ) ; p o s i t i o n : a b s o l u t e ; l e f t : 0 ; t o p : 3 p x ; & : h o v e r { f i l l : $ b l u e - l i g h t ; } }
  9. / / I a m a s t a t

    e . { c o u n t e r : 0 , } / / I a m a n a c t i o n . { t y p e : ' I N C R E A S E ' , } / / M e , t o o . { t y p e : ' D E C R E A S E , } / / c a l l m e r e d u c e r . f u n c t i o n c o u n t e r _ r e d u c e r ( s t a t e , a c t i o n ) { s w i t c h ( a c t i o n . t y p e ) { c a s e ' I N C R E A S E ' : r e t u r n { c o u n t e r : s t a t e . c o u n t e r + 1 } ; c a s e ' D E C R E A S E ' : r e t u r n { c o u n t e r : s t a t e . c o u n t e r - 1 } ; } }
  10. A GO-TO ECMASCRIPT 6 ...a.k.a. the next generation JavaScript. Cleaner,

    richer syntax let, const, spread, destructuring, arrow function, ... ES6 modules import / export Better granularity vs CommonJS Promise A general framework for async computation
  11. Incremental build Flexible loader / plugin architeture js / jsx

    css / sass json / svg / png / jpg ... Module system
  12. WHAT HAVE THEY BROUGHT TO US? Modularity ES6 modules Clean

    separation of view / state / server communication Reusable components Pureness Less bugs Composable