The Road to Node

F8a70e01eddbadc5e4f9876ff34494fa?s=47 Guille Paz
October 28, 2017

The Road to Node

The Road to Node (at a big company).

F8a70e01eddbadc5e4f9876ff34494fa?s=128

Guille Paz

October 28, 2017
Tweet

Transcript

  1. The Road to Node at a big company

  2. - I’m Guille Paz - Frontend developer - Tech Lead

    at Mercado Libre @pazguille (twitter / github) Hi!
  3. Mercado Libre

  4. Largest e-commerce ecosystem in Latin America

  5. None
  6. ~ 1500 developers

  7. ~ 1500 developers ~ 4600 repositories

  8. ~ 1500 developers ~ 4600 repositories ~ 300 deploys per

    day
  9. ~ 1500 developers ~ 4600 repositories ~ 300 deploys per

    day ~ 800 frontend apps
  10. ~ 1500 developers ~ 4600 repositories ~ 300 deploys per

    day ~ 800 frontend apps ~ 3 Million rpm
  11. ~ 1500 developers ~ 4600 repositories ~ 300 deploys per

    day ~ 800 frontend apps ~ 3 Million rpm ~ 900 coffees per day
  12. Back to 2016

  13. Frontend Frontend developers Backend developers

  14. Frontend

  15. Frontend Access Data UI Logic Business Logic Build assets Auth

    i18n e2e testing ...
  16. TOO many Technologies

  17. TOO many Responsibilities

  18. It’s a kilombo!

  19. “The world is changing and we must change with it.”

    - Ragnar Lothbrok
  20. Hey Guille, coffee? Hey, what's happened? Nothing, just running grails

    run-app... Sure! I have 10-15 mins.
  21. New Team Frontend Core

  22. We made Big decisions!

  23. Node is the new UI Layer

  24. Frontend Middleend UI Layer Business Logic

  25. Frontend API API Middleend

  26. Frontend API API Middleend Mobile Native

  27. None
  28. The new frontend stack

  29. None
  30. LTS version

  31. None
  32. None
  33. None
  34. ES6 Modules vs CommonJS

  35. None
  36. None
  37. Use ES Features and don’t transpile the server.

  38. node.green

  39. None
  40. six-speed

  41. None
  42. Use ES Stable Features and don’t transpile the server.

  43. None
  44. Shared Version

  45. Default Middlewares

  46. Authentication Device Detection Security Default Middlewares

  47. Default Routes (“/ping”)

  48. An Express Instance on Steroids

  49. Routers (“mini-applications”)

  50. Start Server (development vs production)

  51. None
  52. Using React Is A Business Decision, Not A Technology Choice.

    - Eric Baer
  53. Server-Side Rendering

  54. React on the Server

  55. Only transpile JSX in runtime

  56. JSX (template engine)

  57. res.render(‘View.js, props);

  58. None
  59. Render React Middleware

  60. Override res.render( ).

  61. res.render(<View />, props);

  62. Universal UI Components

  63. Universal Views

  64. React on the Server & Client

  65. None
  66. Hey Guille, coffee? Hey, what's happened? Nothing, just running npm

    install... Sure! I have 2-3 mins.
  67. None
  68. None
  69. nordic & nordic-dev packages

  70. None
  71. None
  72. react-router on the server

  73. None
  74. None
  75. react-router@3.0.3

  76. async hooks (onEnter ) are defined globally

  77. None
  78. None
  79. process.env

  80. It’s not a normal JavaScript object...

  81. Server rendering is slower...

  82. cache all the values!

  83. React 16

  84. Takeaway

  85. ⇢ Knows your dependencies ⇢ Node is the new UI

    Layer ⇢ New roles and responsibilities ⇢ ~ 126 coffees per day (86% real) ⇢ Today we feel like...
  86. None
  87. None
  88. Thank you! @pazguille