Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
AMD/CommonJs/EcmaScript
1. AMD / COMMONJS / ECMA
SCRIPT 6
J A V A S C R I P T
Belgacem Ben ltaif
2. @GASSTON Développeur javascript / php / ruby
CTO PowerFul Consulting
Consultant technique en digital
Activiste en logicel libre "opensource"
Entrepreneur
http://gasston-labs.fr
https://github.com/gasston
3. AVANTAGE DU
JAVASCRIPT
MODULAIRE
•Autonome
• Évitez la pollution de la portée global (la
portée global n'est pas mauvaise!)
• Tenir le projet organisé
• Améliorer la réutilisabilité du code
• API hautement vérifiable et bien définie
5. define({
age: "16",
taille: "150"
});
Objet de retour simple en tant que collection
de paires nom / valeur.
AMD
6. define(function () {
// Do setup work here
return {
color: "black",
size: "unisize"
}
});
Objet de retour avec la mise en œuvre
""privacy"".
AMD
7. define(["./notes", "./eleve"],
function(notes, eleve) {
var code = "675";
var getNote = function(){
return eleve.getNote(code);
};
Retourner l'objet avec l'implémentation et les
dépendances ."
AMD
8. import eleve from collections;
eleve.getNumber();
Fichier simple qui "importe" les fonctionnalités
COMMONJS
9. var rest, mime, eleve;
rest = require('rest');
mime = require('rest/interceptor/mime');
Fichier simple et simple qui "exporte" les fonctionnalités à
l'aide de la variable "module"
(Eleve.js)"
COMMO
NJS
10. ECMA6 MODULES
export, functions and variables
• export function area(radius) {
return Math.PI * radius * radius;
}
export PI = Math.PI;
• import, modules
11. ADVANTAGES
Syntaxe compacte et synchrone
• Chargement asynchrone
• Inclusion du module conditionnel
• Promouvoir la modularisation du
code
• Développement de style API
12. OBJECT.ASSING
var worker = {};
var isAdult = {
age: '15',
getAge: function() {
console.log(`isAdult $this.age`);
}};
Copier le comportement d'un objet vers un autre objet
sans utiliser l'héritage des classes ou de prototypes.
ECMA6
13. OBJECT.IS
Object.is("foo", "foo"); // true
Object.is(window, window); // true
Object.is("foo", "bar"); // false
Object.is([], []); // false
var test = {a: 1};
Object.is(test, test); // true
Méthode d'objet pour déterminer si deux valeurs ont la
même valeur comme l'opérateur strict de l'égalité.
ECMA6
14. LES PROMESSES SONT LA FAÇON UNIQUE D'ORGANISER
L'AVENIR, CE QUI REND PRÉVISIBLE ET FIABLE DANS LA
MESURE OÙ CELA EST HUMAINEMENT POSSIBLE.
"HANNAH ARENDT"
15. PROMISES
• Une promesse est une valeur
asynchrone
• L'objet Promise est utilisé pour les
calcules différés et asynchrones
• Une promesse est un espace réservé
pour une future valeur possible
ECMA6
16. PROMISES
• Une promesse est une valeur
asynchrone
• L'objet Promise est utilisé pour les
calcules différés et asynchrones
• Une promesse est un espace réservé
pour une future valeur possible
ECMA6
17. UTILISER UNE PROMISE
var promise =
Promise.resolve($.ajax('/whatever.json'));
promise.then(function(result) {
console.log(result); // "Stuff worked!"
}, function(err) {
console.log(err); // Error: "It broke"
});
ECMA6
Une promesse peut être utilisée en invoquant
la méthode then (), elle accepte une
Le succès et un gestionnaire d'échec comme
arguments.
18. UTILISER UNE PROMISE
var promise =
Promise.resolve($.ajax('/whatever.json'));
promise.then(function(result) {
console.log(result); // "Stuff worked!"
}, function(err) {
console.log(err); // Error: "It broke"
});
ECMA6
Une promesse peut être utilisée en invoquant
la méthode then (), elle accepte une
Le succès et un gestionnaire d'échec comme
arguments.
19. MERCI !!
@ G A S S T O N
B E L G A C E M B E N L T A I F