29
Industrialisation des développements en JavaScript Éric Bellemon @haklop Alter Way Solutions Linux 2014

Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Embed Size (px)

DESCRIPTION

Industrialisation des développements JavaScript

Citation preview

Page 1: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Industrialisation des développements en

JavaScript

Éric Bellemon @haklop

Alter WaySolutions Linux 2014

Page 2: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Écrire du code

• Tester son code

• Intégration continue

• Déploiement

2

Industrialisation en JavaScript

Page 3: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Écrire du code

3

Page 4: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Normes d’écriture commune à toute l’équipe

• indentation

• accolade

• encodage / terminaison de lignes

• …

• Détecter les bugs et les erreurs classiques au plus tôt

• JSHint

• JSLint

4

Écrire du code de qualité

Page 5: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

5

Organiser son code

Page 6: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• AMD / CommonJS

• Frontend

• requirejs

• browserify

• Backend

• nodejs

6

Organiser son code

Page 7: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Utilisation des patterns

• Séparation des concepts

• Injection de dépendances

• Observateur

• …

• Réutilisation des librairies et bibliothèques existantes

• Ember, AngularJS

• Handlebars, Moustache

• …

7

Ne pas réinventer la roue

Page 8: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Frontend : Bower (bower.io)

• Backend : NPM (npmjs.org)

8

Gérer ses dépendances

Page 9: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

9

Gérer ses dépendances

Bower NPM

Page 10: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Tester son code

10

Page 11: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Garantie qu’une fonction répond à un contrat

• Indispensable sur les fonctions publiques

• Évite les régressions

11

Tests unitaires

Page 12: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Multitudes de librairies en JavaScript

• Mocha (visionmedia.github.io/mocha)

• Jasmine (jasmine.github.io)

12

Tests unitaires

Page 13: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

13

Tests unitaires

Page 14: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Permets de tester une application de bout en bout

• Teste toutes les couches de l’application

• Peux être complexe à mettre en place

14

Tests fonctionnels

Page 15: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• CasperJS (casperjs.org)

• WebKit (Safari, Chrome)

• Gecko (Firefox)

• Selenium (seleniumhq.org)

• Supporte tous les navigateurs

15

Tests fonctionnels

Page 16: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

16

CasperJS

Page 17: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Complexe à mettre en place

• Utilisation de librairies qui simplifie son usage

• WebDriver (webdriver.io)

• Nightwatch (nightwatchjs.org)

• WD (admc.io/wd)

17

Selenium

Page 18: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

18

Selenium

Page 19: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Intégration continue

19

Page 20: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Optimisation du code

• Validation du code

• Minification et concaténation du code

• Injection des dépendances

• Exécutions des tests

20

“Builder” son JavaScript

Page 21: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Grunt (gruntjs.com)

• Gulp (gulpjs.com)

21

“Builder” son JavaScript

Page 22: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Permet d’automatiser tout et n’importe quoi

• Équivalent de Ant et de Make

• Configuration en JavaScript

• Écosystème extrêmement riche

• Communauté très active

22

Grunt

Page 23: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

23

Grunt

Page 24: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Serveur d’intégration continue (jenkins-ci.org)

• Lancement automatique du build et des tests

• Affichage des métriques

• Déploiement des applications

24

Jenkins

Page 25: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Déployer son code

25

Page 26: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

26

AUTOMATISEZ

Page 27: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

• Attention au cache navigateur !

• Prévoir un système de rollback

• Changer le nom des fichiers à chaque version

27

Frontend

Page 28: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

28

Frontend

Page 29: Solutions Linux 2014 – Alter Way : Industrialisation des développements en JavaScript

Merci de votre attention

29