Javascript

Comment beaucoup de pages dorénavant, un regroupement en un unique endroit de tout un tas de notes que je laisse trainer un peu partout depuis des années. Encore très très incomplet.

Documentations, spécifications

Spécifications

Bonnes pratiques

A ne jamais oublié

Titre
nodeName Case Sensitivity
Auteurs
  • John RESIG
Éditeur
johnresig.com
Date

Programmation

Les modules

Internationalisation

Titre
Introducing the JavaScript Internationalization API
Auteurs
  • Jeff WALDEN
Éditeur
hacks.mozilla.org
Date
Titre
ECMAScript Internationalization API
Auteurs
  • David STOREY
Éditeur
Generated Content
Date

Manipulations de données

Titre
Computer science in JavaScript: Linked list
Auteurs
  • Nicholas ZAKAS
Éditeur
Human Who Codes
Date
pouchdb
PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run well within the browser. PouchDB was created to help web developers build applications that work as well offline as they do online. It enables applications to store data locally while offline, then synchronize it with CouchDB and compatible servers when the application is back online, keeping the user's data in sync no matter where they next login.
Titre
An Introduction to IndexedDB
Auteurs
  • Tiffany BROWN
Éditeur
Dev.Opera
Date

Manipulation de chaînes de caractères

Animations

Titre
A Quick Look Into The Math Of Animations With JavaScript
Auteurs
  • Christian HEILMANN
Éditeur
Smashing Magazine
Date
Titre
Animating with javascript: from setInterval to requestAnimationFrame
Auteurs
  • LOUISREMI
Éditeur
hacks.mozilla.org
Date

JSON

Json Schema
JSON Schema is a vocabulary that allows you to annotate and validate JSON documents.
JSON for Linking Data
Data is messy and disconnected. JSON-LD organizes and connects it, creating a better Web.

Node

npm : gestionnaire de package

dnf install npm
Installation de npm.
# <https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally>
# Configurer npm pour utiliser le dossier .local
npm config set prefix '~/.local'
# Éditer le $PATH dans .profile et/ou dans .bash_profile
export PATH=~/.local/bin:$PATH
Configurer l'installation globale en locale.

Autres gestionnaires de packages

Yarn
Gestionnaire de packages sensé être plus sécurisé.

Utilitaires

# uglify
npm i -g uglify-js uglify-es
# eslint
npm i -g eslint
# jsdoc
npm i -g jsdoc
# webpack
npm i -g webpack webpack-cli
Installation de quelques utilitaires.

VSCode

Visual Studio Code
Un produit Microsoft qui est en passe de dévenir selon moi le meilleur outil d'édition de code sur Linux… Avec en plus un dépôt Fedora. Voir aussi VSCode sous Fedora
{
    "eslint.autoFixOnSave": true,
    "editor.minimap.enabled": false,
    "editor.wordWrap": "wordWrapColumn",
    "editor.wordWrapColumn": 96,
    "[markdown]": {
        "editor.wordWrap": "wordWrapColumn",
        "editor.quickSuggestions": false
    },
    "update.enableWindowsBackgroundUpdates": false,
    "telemetry.enableCrashReporter": false,
    "telemetry.enableTelemetry": false,
    "window.titleBarStyle": "custom",
    "javascript.referencesCodeLens.enabled": true,
    "javascript.updateImportsOnFileMove.enabled": "always",
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true,
        "**/target": true,
        "**/.svn": true,
        "**/.git": true,
        "**/__pycache__": true
    }
}
Configuration de VSCode

Typage du code

Typescript

Titre
Understanding TypeScript’s type notation
Auteurs
  • Axel RAUSCHMAYER
Éditeur
2ality
Date

Autres outils de typage

Flow
  • Typage statique proche de ce que fait Typescript. Développer par Facebook.
  • @babel/preset-flow

Validation du code

npm i -g eslint
npm i -g eslint-plugin-jsdoc
npm i -g eslint-plugin-requirejs
Titre
End-of-Life for Built-in JSDoc Support in ESLint
Éditeur
eslint.org
Date

Tests et benchmarks

Benchmarkjs
A benchmarking library that supports high-resolution timers & returns statistically significant results.
dat.gui
A lightweight graphical user interface for changing variables in JavaScript.
Jasmine
Test unitaires par une boite filiale de VMWare. Utiliser par gjs
JsCheck
JSCheck is a testing tool for JavaScript. It was inspired by QuickCheck, a testing tool for Haskell developed by Koen Claessen and John Hughes of Chalmers University of Technology.
Mocha
Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases.

Jest

Jest
Outil de tests unitaires développé par facebook.
# Installation de Jest
npm i -g jest eslint-plugin-jest
# Utilisation avec webpack
npm i -g jest-webpack-resolver
# Utilisation avec React
npm i -g react-test-renderer

Documentation du code

JSDoc

npm i -g jsdoc
Installation de jsdoc
{
    "plugins": ["plugins/markdown"]
}
Fichier de configuration
jsdoc <files|dir> -c <config.json> -d <output-dir>
Usage de base

Autres outils de documentation

Organisation du code

Build, intégration

Gulp
Gestionnaire de processus de build.

Bundle

Modules AMD

Les gestionnaires de modules AMD ont été très importants durant la première moitié des années 2010 pour amener un peu d'ordre et de structure au développement web destiné aux navigateurs. Ils le sont moins après l'arrivée des modules javascript.

React

Tests

Librairies

3D

Babylon.js
Moteur graphique webgl.
Three.js
Titre
The Web Developer Toolbox: ThreeJS
Auteurs
  • Jeremie PATONNIER
Éditeur
hacks.mozilla.org
Date

Cartes

geoJson
GeoJSON is a format for encoding a variety of geographic data structures.
Google Map API
Documentation pour utiliser les APIs de Google Map.
jVectorMap
jVectorMap is a vector-based, cross-browser and cross-platform component for interactive geography-related data visualization on the web. It provides numerious features like smooth zooming and panning, fully-customizable styling, markers, labels and tooltips.
Kartograph
  • Une librairie python pour générer des cartes.
  • Une librairie javascript pour les utiliser dans un document web.
OSM

Coloration syntaxique

CSS

JSCSSP
A CSS parser in JavaScript.
Mensch
A decent CSS parser.
Titre
A Standards-Compliant CSS Parser
Auteurs
  • Tab ATKINS
Éditeur
Tab Completion
Date

Data binding

redux
Redux is a predictable state container for JavaScript apps.

Epub

epub.js
Librairie standard pour la lecture des epubs.

Dates

moment.js
Gestion, manipulation et formatage de dates.

Graphes et données

Chart.js
Construire des graphiques
D3
D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG, and CSS.

Graphisme

Fabricjs
Pour faire tout un tas de choses en canvas.
Paper.js
Manipulation graphique à base de SVG
Raphael
Outil de manipualtions graphiques à base de SVG. Très puissant et très sympa à utiliser.

Internationalisation

i18next
Librairie d'internationalisation.

pdf

pdf.js
Outil standard pour la lecture de pdf. Par Mozilla
JsPdf
Pour générer des pdfs.

Présentations

Remark
slideshow en js et markdown.

RTE

Zip

JsZip
Ouverture / écriture de zip.