Skip to content

Instantly share code, notes, and snippets.

@msell
Last active May 20, 2020 00:47
Show Gist options
  • Save msell/e1bf3d33b697f88f64af12703b7f7dbb to your computer and use it in GitHub Desktop.
Save msell/e1bf3d33b697f88f64af12703b7f7dbb to your computer and use it in GitHub Desktop.
Javascript Cookbook

Software Development Cookbook

I sometimes like to compare the tools a software developer prefers to the way a chef might have particular ingredients that he prefers to use when cooking a meal. Sure a chef may use a wide variety of ingredients depedning on what the meal calls for, but they have opinions and preferences towards certain ingredients over others. Software developers are not that different. They often prefer a set of tools and ingredients when building applications. Reusing the same tools and ingredients helps developers become more efficient in building applications.

For years I was a developer focused on .net development. However in recent times I've gravitated towards javascript. Once node was born and we could now use javascript on the server becoming a 'full stack' developer seemed much more palpable. Today we can write cross platform desktop applications using electron, native mobile applications with react-native, server applications in node, and web applications running either server or client rendered.

Web Applications

My favorite ingredients when building web applications.

Ingredients

  • react
  • react-router
  • webpack for bundling, tree shaking, minification, etc.
  • styled components or glamorous for styling/theming react components
  • redux-form manage form state in redux
  • latest ecmascript standards (ES6 and beyond) using babel for transpilation
  • flow a static type checker for javascript
  • atomic design project organization guidelines
  • ARc boilerplate for atomic design that also uses many of my favorite ingredients
  • redux - predictable state container for application
  • redux-saga facilitates side effects in redux, test friendly
  • reslect memoized state selectors for redux
  • storybook enables demonstration of react components along with various states
  • jest makes getting started with testing frictionless
  • enzyme easily assert/traverse your react components
  • Apollo Client a graphQL implementation for react
  • gitlab for source control and continuous integration
  • next.js framework for server rendered universal JS apps

Backend Applications

  • sails a rails inspired API framework. I probably would recommend HAPI over Sails today, but I'm currenly more proficient in sails, so if I want to build something fast it could be something I use.
  • firebase - realtime database, authentication, hosting, and storage solution by google.
  • express - minimalist web server for node
  • hapi - rich server framework built by Walmart Labs
  • graph cool graphQL as a service
  • apollo server graphQL server implementation works with Express, KOA, Hapi, and more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment