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

Using Node.js to Build Successful Products

Using Node.js to Build Successful Products

Presentation slides for Midwest JS in Minneapolis, Minnesota, Aug 9th 2018.

Jacopo Daeli

August 09, 2018
Tweet

More Decks by Jacopo Daeli

Other Decks in Technology

Transcript

  1. Using Node.js to Build Successful Products Jacopo Daeli Lead Software

    Engineer @ GoDaddy Midwest JS Minneapolis, Aug 9th 2018
  2. Node.js š Fastest growing open source platform in the world

    š More than twice as many modules as the next competitor (Java) š More than half million modules published š More than 450 new packages are published everyday Number of modules Source: http://www.modulecounts.com
  3. Node.js Node has an estimated 7M users and is consistently

    growing at 100% per year. Source: https://nodejs.org/metrics
  4. Node.js 81% (estimated) of the Node.js users have 3 years

    or less experience with Node. Source: https://nodejs.org/metrics
  5. Node.js š Ryan Dahl started working on Node.js in 2009

    š He was concerned about “web servers speed” š Initial release supported only Linux and Mac OS š February 2015, Node.js Foundation was announced
  6. Node.js š Node.js is a runtime for JavaScript š You

    can run JS code server side š It has non-blocking I/O operations (Asynchronous)
  7. Node.js Event Loop š Offloads operations to the System Kernel

    whenever possible š Modern Kernels are multi-threaded, they can handle multiple operations in background š When an operation completes, the Kernel tells Node, and the associated callback is triggered to process the result
  8. Node.js is a Full Stack ecosystem š Web Frontend š

    Mobile & Tablet š Desktop Development š Cloud Backends š IoT Devices š 3rd Party APIs & SOA
  9. Node.js is a Full Stack ecosystem š Perfect platform to

    deal with all these components š Node brings the accessibility and ubiquity of the web platform and of JavaScript to all these different areas š You can use Node in a variety of different places across teams
  10. Web Frontend š Web Frontend development has changed drastically in

    the past 20 years š The community developed amazing tools in Node.js and JavaScript to help developers build front-end applications
  11. Web Frontend š Babel for transpiling your JavaScript code š

    Standard and ESLint to maintain your code quality with ease š JSHint to help detecting errors and potential problems in your JavaScript code š Stylus, LESS, etc. for better writing CSS
  12. Web Frontend š There are so many tools, that the

    community wrote more tools to help you manage all these tools š Examples: Gulp, Browserify, WebPack, etc.
  13. React.js š React is a JavaScript library for building User

    Interfaces š Project started at Facebook around 2011 and publicly released in 2013 š It rethought about front-end frameworks very differently š The main idea is that a web framework should exists in this compiled chain where we have access to Node.js
  14. GraphQL š GraphQL is a data query language initially developed

    internally by Facebook before being publicly released in 2015 š Currently the Apollo Team leads the GraphQL community š Provides an alternative to REST and ad-hoc web service architectures
  15. GraphQL š Exposes three fundamental operations: queries, mutations, and subscriptions

    š GraphQL is also a runtime for fulfilling those operations š Gives clients the power to ask for exactly what they need and nothing more
  16. GraphQL š GraphQL makes it easier to evolve APIs over

    time š APIs are organized in terms of types and fields, not endpoints š It uses types to ensure Apps only ask for what’s possible
  17. GraphQL š GraphQL Summit 2018 will be on Nov 7-10

    at the Regency in San Francisco š New GraphQL Apollo Server 2 is entirely written in Node.js š Therefore we can use GraphQL writing JavaScript both server and client side
  18. Apache Cordova š Apache Cordova, previously known as PhoneGap š

    Cordova brings the entire Web platform to iOS, Android and Windows Phone using Node š All the Node tools are available across all these different devices š Cordova lets you build “mobile web apps”
  19. React Native š React Native lets you build Native apps

    with only JavaScript š Same design as React š Not a mobile web app (or HTML app) š Same UI building blocks as regular iOS and Android apps
  20. Electron š Electron “merges” Chromium with Node.js š It brings

    the Web Platform and the entire Node ecosystem to Desktop Development š It allows developers to build cross-platform Desktop applications using HTML, JavaScript and CSS
  21. Cloud Backends š Node was built to build Backends š

    It always had a great Cloud story š Every well-known Cloud Provider supports Node out of the box and has pretty good Node support š Google App Engine, AWS Elastic Beanstalk, Heroku, etc.
  22. Serverless and Function as a Service š Nowadays we are

    moving into the Function as a Service (a.k.a Serverless) space š Developers can build their applications out of these discrete functions š Disclaimer !: these functions run on servers, but developers don’t have to worry about it
  23. Serverless and Function as a Service š Node has been

    Cloud vendors’ choice number one for Serverless because Node is optimized to run in a single process, with a limited memory space, and it is great to handle a lot of I/O operations š Node starts up quickly š These are very important requirements to successfully running in these Cloud Function services š Indeed, we need a really fast startup timing to be really efficient in a space with very limited resources š Moore’s Law still making computers faster, but we are keeping optimizing resources using less and less of these computers to run our apps
  24. IoT Devices š Everyone wants a button to do everything

    ! š Starting in 2012 the Node ecosystem started to see a big rise in Robots š People working at NodeBots built a framework to build Robots in JS called “johnny-five” š Over 75 developers contributed to the project
  25. IoT Devices š IoT manufactures started to support Node natively

    š Basically today, every IoT board device has first-class Node support š IoT manufactures know that the best way to bring developers to their platform is to bring the entire Node ecosystem to their platform as well š Tessel is probably the most popular IoT board with first-class Node.js support
  26. 3rd Party APIs & SOA š Everyone uses APIs to

    build their applications š Twilio for Text Messages, Mixpanel for Analytics, Google Speech for Speech Recognition, etc. š Most of these APIs have Node support (SDK)
  27. Why I love working with Node š Node makes programming

    easier š Node drastically reduces the entry barrier