Creating a JavaScript Development Environment

coryWelcome to this review of the Pluralsight course “Creating a JavaScript Development Environment” by Cory House.

This is course was published on 10th November 2016.

Cory is a Microsoft MVP in C#, founder of OutlierDeveloper.com, avid tech reader, and speaker.

He believes in clean code, pragmatic development, and responsive native UIs.

He has also created reactjsconsulting.com, and has the authored Pluralsight courses including Building Applications with React and Flux and Building Applications with React and Redux in ES6.

Also in this series:
Part 1 – You Need a Starter Kit
Part 2 – Editors and Configuration
Part 3 – Package Management
Part 4 – Development Web Server
Part 5 – Automation
Part 6 – Transpiling
Part 7 – Bundling
Part 8 – Linting
Part 9 – Testing and Continuous Integration
Part 10 – HTTP Calls
Part 11 – Project Structure
Part 12 – Production Build
Part 13 – Production Deploy

You Need a Starter Kit

If you don’t have a Pluralsight subscription you can watch the course preview on YouTube here.

Cory introduces this course as the need for having a starter kit of your JavaScript projects. He asks the following questions:

Do you like to fail fast?
Do you like rapid feedback?
Want to know immediately when a test is failing?
Overwhelmed by all the options?

He lists over 40 decisions that we might consider when creating a JavaScript development environment.

Cory says this course will help us to make best practices automatic.

While watching this I am reminded of the advice Matt Honeycutt gave in his Build Your Own Application Framework with ASP.NET MVC5 course:

“A good application framework isn’t built, it’s grown”.

This course is the only comprehensive coverage I have found for all the things to think about when starting a new project.

You will need to assess your own needs and decide which elements of the course are right for you, not treat this course as a prescription and certainly not as a silver bullet.

Cory gives a lot of impartial advice on the different available options and your own needs may lead you to choose some tools that differ from the ones used in this course.

A Starter Kit is an Automated Checklist

Cory has been inspired by the book “The Checklist Manifesto” by Atul Gawande.

The key point is as professionals we think we can remember all the steps involved, but we can’t.

Checklists can lead to dramatic improvements, and Cory describes a starter kit as “a living automated, and interactive checklist.”

Who is This Course For?

The rule of least of power is a design principle that

“suggests choosing the least powerful [computer] language suitable for a given purpose”.

You can read more about it in the wikipedia article or the W3C formal document.

Jeff Atwood wrote a blog called “The principle of least power” where has proposed Atwood’s law:

“Any application that can be written in JavaScript, will eventually be written in JavaScript.”

We are seeing this prediction mostly becoming true today. Cory says JavaScript is everywhere:

  • On the Web
  • On the Server
  • On Mobile
  • Even on the Desktop!

He says this course might not be suitable for EmberJS developers because Ember JS is already highly (“notoriously”) opinionated and comprehensive.

We see a graph showing some popular JavaScript tools. Of these React is the least opinionated, Node only a little opinionated, Angular quite opinionated and Ember most of all.

If you have decided which framework you want to use, you may decide to use a Boilerplate solution for that framework. Cory describes the pros and cons of this versus building your own. This is a nicely objective explanation.

What Belongs in Your Starter Kit?

– Package Management
– Bundling
– Minification
– Sourcemaps
– Transpiling
– Dynamic HTML Generation
– Centralized HTTP
– Mock API framework
– Component libraries
– Development Webserver
– Linting
– Automated testing
– Continuous Integration
– Automated build
– Automated deployment
– Working example app

Set Up Github

Cory will be using GitHub in the Continuous Integration module, and also in the Automated Deployment module.

You can install Git from git-scm.com and create a GitHub account at github.com

Cory explains how to clone https://github.com/coryhouse/js-dev-env-demo.git

Agenda

There are several words that all mean much the same thing:

– JavaScript Development Environment
– Boilerplate
– Starter Kit
– Seed
– Starter Project

In each module Cory will review the options, make his recommendations and them demonstrate how to implement them.

We get a quick run down of what we’ll be covering in each module.

Continue to Part 2: Editors and Configurations

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s