Skip to content

BindiChen/a-better-programmer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 

Repository files navigation

1. Programming Style Guide

2. Editor/IDE

  • Sublime Text Editor
  • Visual Studio Code
  • Atom

3. Learning Resources

3.1 Linux command line

  • The Linux Command Line - A Book By William Shotts
  • Udemy - learn linux in 5 day and level up your career
  • Edx - introduction to linux

3.2 JavaScript/ES6

3.3 Node.js

3.4 AngularJS 2

3.5 TypeScript

4. JavaScript libraries

  1. RxJS - provides observable for asynchronous, event-based program flows
  2. zone.js - provides execution contexts for asynchronous task, used for updating the view
  3. SystemJS - Module loader (Angular 2 doesn't have its own)
  4. es6-shim - Enables usage of ES6 functionality for browsers without native ES6 support
  5. reflect-metadata - Enables dependency injection features via decorators
  6. typescript - Transplier, translates TypeScript to JavaScript
  7. lite-server - A lightweight file-server, can be used during development
  8. concurently - For executing multiple processes in a parallel, platform-independent manner
  9. moment
  10. async
  11. mongodb
  12. passport
  13. jade (pug)
  14. body-parser
  15. express
  16. Underscore - Underscore (and lodash) is a JavaScript library that provides a whole suite of utility functions without monkey patching the built-in JavaScript objects. Both libraries provide over 100 functional helpers and other specialized goodies; including functions like map, filter, invoke, reduce, template, throttle, bind, extend, pick, clone and so much more.

4.1 Build tool/system

For a larger scale project, most people like to use a build tool to help automated processes like transpiling, SAS, conversion , minify , and more:

  • grunt
  • webpack
  • gulp
  • NPM Scripts

4.2 Package Control

  • npm
  • bower

4.3 Testing libraries/framework

Jasmine and Mocha are two most popular JavaScript testing frameworks. The APIs of Jasmine and Mocha are very similar.

  • Jasmine
  • Mocha
  • QUnit
  • Chai

4.4 Frontend CSS framework

CSS frontend frameworks make web development process faster, easier and more standards compliant. CSS frontend frameworks are more like collection of ready to use standard Components that solve some kind of common web design problem which otherwise would require CSS, JS or HTML authoring from scratch.

  • Bootstrap
  • Foundation
  • Material UI

4.5 Frontend JavaScript framework

JavaScript frameworks exists because handling complexity in larger applications can be extremely hard - and often it's the same complexity each time you build a new application. So we create frameworks to give our applications a predictable structure and give us some of the standard features like handling requests to the server, or maintaining data consistent across different parts of your web page or web app. The most popular JS frameworks are:

  • AngularJS 2 - is an MVC-type framework. It offers two-way data binding between models and views. This data binding allows for an automatic update on both sides whenever there is a data change. It enables you to build reusable View Components. It provides a services framework to allow easily backend-frontend server communication. When to use: When you are building a complex web front-end application and need a single modular framework to handle everything.
  • React - is open-source and developed mostly by Facebook with contributions from other companies. React describes itself as a JavaScript library for building user interfaces. It is mostly the V in MVC. It focuses entirely on that piece of MVC and disregards the architecture of the rest of your application. When to use: When you want a powerful View layer but don’t need an elaborate framework for the rest of your application or when you want a View layer to go with your Angular, Backbone, or Ember application.
  • Backbone.js - is a famously simple framework that fits into a single JavaScript file. When to use: looking for a simple structure for small web applications without bringing in a large framework like Angular or Ember.
  • Ember - is a js framework focusing on programmer productivity. Ember describes itself as “a framework for creating ambitious web applications” that doesn’t waste your time. Ember is also an MVC framework. It includes a templating and view engine that automatically updates when data changes. When to use: When you just want a framework that just works. Use Ember when you do not need flexibility.

Chart and Data visualization

Flot

Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.

D3.js

D3.js is the defacto standard when it comes to any data manipulation and visualization. It is one of the most popular projects on GitHub and is used by hundreds of organizations. Plenty of graphing, charting and visualization libraries build on top of D3.

Go.js

GoJS is a feature-rich JavaScript library for implementing custom interactive diagrams and complex visualizations across modern web browsers and platforms. GoJS makes constructing JavaScript diagrams of complex nodes, links, and groups easy with customizable templates and layouts.

Echart

EChart - a powerful, interactive charting and visualization library for browser.

3D visualization and WebGL

Three.js

Three.js provides a lightweight 3D library that allows rendering 3D to an HTML5 canvas, SVG, and WebGL. It is quite a straightforward library, and there are hundreds of beautiful examples in the three.js showcase. When to use Three.js?: Whenever you need a simple 3D visualization that can output to a Canvas.

Babylon.js

Babylon.js is a 3d game engine based on WebGL and JavaScript. You can create incredibly high-quality games complete with physics, audio and particle systems among other things. When to use Three.js?: Whenever you are building a video game or a complex 3D scene of any sorts.

More hands-on with Web Development

Test-driven JS development

Article

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published