logo
09 October, 2019

Development Things to Know in 2019

Docker Containerization

Containers allow the team to create siloed environments (ex: PHP+MySQL+Apache) to develop and run projects inside of. These container configurations can be version controlled and shared between team members in order to quickly spin up the exact environment needed for a specific project. https://www.docker.com/

  • Offer the ability to create an environment with required specs for a given project
  • Container configs can be version controlled within project code repos
  • Drastically reduces the time needed to get a project up and running from one developer to the next (after initial setup)
  • Perfect for containerizing legacy sites

For more pros to using Docker see https://dzone.com/articles/top-10-benefits-of-using-docker

JS ES6

ES6 is different because it introduces new syntax, which was a needed transformation/ extension in Javascript. This would definitely help to meet the demands of complex applications written in Javascript. Let us go through the features that has given edge to ES6
https://www.cuelogic.com/blog/advantages-of-javascript-es6-over-es5

Modern JS applications, libraries, frameworks and tools are written in ES6 so this is also a requirement to use some of the following technologies effectively.

  • Arrows functions
  • Classes
  • Modular import/export
  • Block scoping variables

React

React is a JS library that will allow the team to compose and maintain complex user interfaces.
https://reactjs.org/

https://reactjs.org/community/examples.html

  • Virtual DOM in ReactJS makes user experience better and developer’s work faster
  • Permission to reuse React components significantly saves time
  • One-direction data flow in ReactJS provides a stable code
  • An open-source Facebook library: constantly developing and open to the community
  • Allows the team to take on existing React projects brought to TKG by clients

Webpack

Webpack is a module bundler for JS projects, used for bundling JS, Sass, Images, etc. into static asset bundles. https://webpack.js.org/

  • Dead asset elimination = unused css and images etc. are not bundled
  • Easier code splitting = unused css not bundled for specific pages
  • You control how assets are processed = leads to fewer asset requests
  • Stable production deploys = not missing images or outdated styles deployed
  • https://blog.andrewray.me/webpack-when-to-use-and-why/

Node.js

As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications. https://nodejs.org/en/about/ It is also used by build tools like Webpack in the development process. In addition to this requirement, Node.js used on the backend allows for full-stack JS development.

  • Better efficiency and overall developer productivity
  • Code sharing and reuse
  • Speed and performance
  • Easy knowledge sharing within a team
  • A huge number of free tools

Express

Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications. This framework would allow the team to create fast, modern application solutions for clients. https://expressjs.com/

  • Great routing API
  • Great for beginner Node.js programmers
  • Support for a lot of plugins
  • Massive ecosystem of middleware
  • Has detailed information
  • Lightweight

MongoDB

MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. No database is more productive to use. https://www.mongodb.com/

  • Flexible Database
  • High Speed
  • High Availability
  • Scalability
  • JS libraries for querying data

GatsbyJS

Gatsby is a free and open source framework based on React that helps developers build blazing fast websites and apps. https://www.gatsbyjs.org/

  • Modern web tech without the headache
  • Bring your own data = use a client’s Wordpress site as the data source
  • Future-proof your website
  • Serve static pages vs. waiting on pages to be generated on request
  • Built on React and bundled with Webpack = developer familiarity

GraphQL

A query language for querying databases from the client-side and for describing how a backend should serve data to the client. An alternative to RESTful APIs. Gatsby pages are built by using GraphQL queries to pull data specific to a given page. https://graphql.org/

  • Auto-generating API documentation
  • API evolution without versioning
  • Detailed error messages
  • Rapid application prototyping