Skip to content

Instantly share code, notes, and snippets.

@alexaandru
Last active July 7, 2019 08:02
Show Gist options
  • Save alexaandru/8f8155460f85b9f51794c116663da899 to your computer and use it in GitHub Desktop.
Save alexaandru/8f8155460f85b9f51794c116663da899 to your computer and use it in GitHub Desktop.
State of The Frontend. 2017

State of The Frontend

Special thanks to https://scotch.io/tutorials/create-a-single-page-app-with-go-echo-and-vue for resparking my interest for frontend development. It's been a while... :)

2019 Update

Current State

The obligatory 10k feet view:

Now if you feel like your head is exploding at the avalanche of frameworks, tools and technologies - this should help: https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f

Top Resources

Resources to come back to (over and over again) to learn things in depth:

Language

To use static typing one may use either https://www.typescriptlang.org/ (a superset of JavaScript) or https://flow.org/ - a static type checker with optional type annotations.

Frameworks

There's also Angular and React of course, but Vue can be learned on one afternoon and used right away. Seems like a good place to start. For "batteries included" mode, see:

Style

Security

SEO

It's 2018, search engines not being able to crawl SPAs is long gone:

Ecosystem

Node.js

Get familiar with it, Node IS the ecosystem. NPM is what is used for packages management, node is what will run all the tools and toolchains, what will power local development, etc. Last but not least, Node implements ES6 out of the box, so code running on it does not even need transpiling (you can use it as a playground for learning ES6). Use recent versions of Node (8+) and NPM (5+) for best experience.

Linting

ESLint hands down. With eslint/recommended + plugin:vue/recommended it turns into a powerful learning "assistent". With the fix mode (and possibly in conjunction with https://github.com/prettier/prettier-eslint) it enables very convenient auto-formatting/auto-fixing according to the selected linting rules.

Bundling

Forget about Grunt, Gulp or Bower. In fact the latter recommends webpack on their homepage :) As for NPM vs Yarn, in spite of all the outdated articles, npm now has https://docs.npmjs.com/files/package-locks

Testing

Briefly read good things about Jest, Karma and Mocha, will need to come back to this section.

TODO...

Editors

One should not (in 2017) accept anything less than:

  1. linting (as you type preferably)
  2. intellisense
  3. autoformat/autofix on save
  4. block level scoped "operations" (i.e. your editor will treat the html template in a .Vue file as html, the script as JavaScript, etc. and NOT treat the entire file as a single type);

Hint: VS Code checks all of those and more :)

Miscellaneous

jQuery

The most used JS library by far, it deserve a honorable mention. And the mention is...

If really needed, there's http://zeptojs.com/ a largely drop in (and far smaller) jQuery replacement, though if one needs imperative DOM manipulation in 2017, the better question is: why?

Bonus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment