91
1 Devoxx 2019 : croître avec JavaScript en 2019

: croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

1

Dev

oxx

2019 : croître avec

JavaScript en 2019

Page 2: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

2

Mobile Journey Marketing

David Babel@DavidLearnJS

Carles Sistare@CarlesSistare

Pas

sion

nés

by d

esig

n

Qui sommes nous ?

Page 3: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

3

Intro

duct

ion

Pourquoi sommes nous là ?

Page 4: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

4

Pla

n

Micro services

Plan de la présentation

● Croissance d’Ogury● Notre Approche micro services● Bonne pratiques techniques pour éviter la dette technique

Page 5: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

5

Par

tie 1

La croissance d’

Page 6: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

6

Consent Manager

...

User Consent

CONSENTED

SIGNALS

Data GenerationEngine

Data Generation

Insights Visualization

Active Insights User Engagement

Intelligent Monetization

Activation Solutions

Cro

issa

nce

Comprendre les contraintes

Page 7: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

7

01 02 03 04

Cro

issa

nce

Contraintes

Forte charge- 100k QPS- 2To par Jour

Temps de réponse limité10ms

Archi complexe

- 50 MServ- 60 Jobs BigData

Réactivité300 Releases par mois

Page 8: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

8

Cro

issa

nce

De Start-up à Scale-up

Page 9: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

9

2014 20 équipes 400+ dépôts

Cro

issa

nce

De Start-up à Scale-up

Page 10: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

Intro Ogury at Scale

Née en 2014

Ces valeurs sont fausses, en attentes de la finance ...

600

(objectifs)

Page 11: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

11

Source: https://lentreprise.lexpress.fr/creation-entreprise/le-top-100-des-start-up-2017-un-dynamisme-confirme_1942988.html

De

Sta

rt-up

à S

cale

-up

Page 12: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

12

Source: https://www.chefdentreprise.com/Thematique/profession-1056/Breves/OGURY-sacre-Scale-annee-2018-329610.htm

De

Sta

rt-up

à S

cale

-up

Page 13: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

13

Cloud Agile JavaScript

De

Sta

rt-up

à S

cale

-up

Ogury at Scale

Page 14: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

14

Par

tie 2 Devenir une Scale-up

avec les Microservices

Page 15: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

15

Ad Exchange

Demandede publicité

Donnée Consentie par l’utilisateur

Outils deTrading

Metriques Calculées

Milliers deCampagnesPublicitaires

Algorithmes deCiblagePublicitaire

Sca

labi

lité

Ad Exchange = Plateforme de Trading Publicitaire

Page 16: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

16

01 02 03

Sca

labi

lité

Contraintes du Scaling

Manque de fluidité d’une Architecture Microservices

Manque de scalabilité des tests d’intégration

Manque d' homogénéité d’une archi microservices

Page 17: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

17

Flui

dité

Temps de réponse hors contrôle

1. Manque de fluidité d’une architecture Microservices

Difficultés pour automatiser les tests

Interconnections complèxes

Page 18: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

18

Ad Exchange

Demandede publicité

Donnée Consentie par l’utilisateur

Outils deTrading

Metriques Calculées

Milliers deCampagnesPublicitaires

Algorithmes deCiblagePublicitaireDataServer

Kafka

Flui

dité

Ne pas reporter à demain ce que nous pouvons faire … avec Kafka

Page 19: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

19

Flui

dité

Temps de réponse hors contrôle

1. Manque de fluidité d’une architecture Microservices

Difficultés pour automatiser les tests

Interconnections complèxes

Page 20: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

20

Res

ilien

ce

On peut pas automatiser les tests

End To End

2. Manque de scalabilité des tests d’intégration

Tests d’intégration isolés avec une

cohérence assurée

Evangélisation des Best Practices de nos

Services

Page 21: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

21

01 02 03 04

R

esili

ence

Chaque service offre ses propres connecteurs

Service de Health Check Intégré

Contrats entre Services (*.proto, *.yml)

Strategie de Recovery

Service de MOCK

Page 22: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

22

mock

mock

mock

mock

mock

mockR

esili

ence

Page 23: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

23 https://github.com/couchbase/couchnode

Exemple de mock:COUCHBASER

esili

ence

Page 24: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

24

Res

ilien

ce

https://github.com/dwyl/aws-sdk-mock

Exemple de mock:AWS

Page 25: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

25

Hom

ogén

éité

Incohérence des contrats parmis les

microservices

3. Manque d'homogénéité d’une archi Microservices

Incohérence des protocols de

communication

Perte de temps de définition de synchro

entre services

Page 26: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

3. Manque de cohérence d’une archi Microservices

● Temps de réponse élevés en fonction des technos utilisés● Problèmes de typage sur des champs JSON● Complexité des connectivités entre services● Incoherence des contrats entre services

Page 27: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

27

RPC

http://bit.ly/practical-grpc

Hom

ogén

éité

Page 28: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

28

Par

tie 3

.1 Introduction auxBonnes pratiques

Page 29: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

29

Startup Nation

Bon

nes

prat

ique

s Ja

vaS

crip

t

Page 30: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

30

Startup Nation

Bon

nes

prat

ique

s Ja

vaS

crip

t

Page 31: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

31

Bon

nes

prat

ique

s Ja

vaS

crip

t

JavaScript: un allié puissant

Page 32: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

32

Bon

nes

prat

ique

s Ja

vaS

crip

t

JavaScript: un allié puissant

BackEnd Téléphone

FrontEnd Ordinateur

Page 33: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

33

Source: https://tc39.github.io/ecma262/

Bon

nes

prat

ique

s Ja

vaS

crip

t

JavaScript: un allié puissant, mais ...

Page 34: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

34

Bon

nes

prat

ique

s Ja

vaS

crip

t

JavaScript fatigue etDette technique

Page 35: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

35

Saul:Me:

Saul:Me:

Source: https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4

Eric Clemmons @ericclemmons Creator of React Resolver

“How’s it going?”“Fatigued.”“Family?”“No, Javascript.”

Java

Scr

ipt f

atig

ue e

tD

ette

tech

niqu

e

La JavaScript Fatigue

Page 36: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

36

Source: https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4

Trop de débutants sont submergés par la courbe d’apprentissage de react. Pourquoi?

Traduit de l’anglais

Ca me tue que la mise en place d'un projet JS soit si difficile. Ca m'a pris une soirée entière la dernière fois

Traduit de l’anglais

Java

Scr

ipt f

atig

ue e

tD

ette

tech

niqu

e

La JavaScript Fatigue

Page 37: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

37

Source: Gabriela Motroc : 4 tips to resist JavaScript fatigue (see)

Toute connaissance à de la valeur

Répète après moi : Les choses vont continuer à changer

Suis-je bon pour apprendre et solutionner des problèmes ?

Connaître ce que je ne connais pas

Java

Scr

ipt f

atig

ue e

tD

ette

tech

niqu

e

L’ennemi: la dette technique

Page 38: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

38

Java

Scr

ipt f

atig

ue e

tD

ette

tech

niqu

e

La dette technique

Page 39: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

39

Bon

nes

prat

ique

s et

cro

issa

nce

Au fait, c’est quoi unebonne pratique ?

Page 40: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

40

Source: Henrik Kniberg “What is Agile”

Agile

Waterfall:

:

Au

fait,

c’e

st q

uoi u

nebo

nne

prat

ique

?

Bonnes pratiques ?

Page 41: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

41

Source: Henrik Kniberg “What is Agile”

?Au

fait,

c’e

st q

uoi u

nebo

nne

prat

ique

?

Bonnes pratiques ?

Page 42: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

42

Au

fait,

c’e

st q

uoi u

nebo

nne

prat

ique

?

Bonnes pratiques ?

Transpileur ? Bundler ?

Page 43: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

43

Au

fait,

c’e

st q

uoi u

nebo

nne

prat

ique

?

Bonnes pratiques ?

Transpileur ? Bundler ?

Page 44: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

44

Source: https://en.wikipedia.org/wiki/Best_coding_practices

Au

fait,

c’e

st q

uoi u

nebo

nne

prat

ique

?

Bonnes pratiques ?

Page 45: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

45

Au

fait,

c’e

st q

uoi u

nebo

nne

prat

ique

?

Définition d’une bonne pratique

● Créer un minimum de dette technique● Reposer sur des outils stables et répandus● Etre simple pour être facile à s’approprier

Page 46: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

46

Par

tie 3

.2

Nos bonnes pratiques

Page 47: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

47

Source: Kent C. Dodds : https://testingjavascript.com/

Nos

bon

nes

prat

ique

s

Les tests automatisés

Page 48: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

48

Nos

bon

nes

prat

ique

s

Les “tests” statics

Page 49: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

49

react-testing-libraryJest

Nos

bon

nes

prat

ique

s

Les tests unitaires et d’intégration

Page 50: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

50

react-testing-libraryJest

SuperTestsno logo

Nos

bon

nes

prat

ique

s

Les tests fonctionnels

Page 51: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

51

Les tests fonctionnels

SuperTestsno logo

BlackBox

tests

validation

BackEnd

Nos

bon

nes

prat

ique

s

Page 52: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

52

BlackBox

validation

testsFrontEnd

Nos

bon

nes

prat

ique

s

Les tests fonctionnels

Page 53: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

53

Les

4 pi

liers

Les 4 piliersd’un bon projet

Page 54: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

54

readme.md

GO PROD

Les

4 pi

liers

Les 4 piliers d’un bon projet

Page 55: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

55

GO PROD

Les

4 pi

liers

L’intégration continue

Page 56: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

56

Les

4 pi

liers

Micro Services et Micro Front-end

Page 57: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

57

Source: https://micro-frontends.org/

BackEnd

FrontEnd

Les

4 pi

liers

Micro Services et Micro Front-end

Page 58: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

Source: https://micro-frontends.org/

FrontEnd

Page 59: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

59

Qua

lité

de c

ode

Qualité de code

Page 60: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

60

Qualitéde code

Source: Ryan McDermott : Clean Code Javascript (see)

Qua

lité

de c

ode

Page 61: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

61

Source: Brandon Wozniewicz : JavaScript naming conventions: do’s and don’ts (see)

Qua

lité

de c

ode

Qualité de code

Page 62: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

62

Niv

eau

1

Page 63: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

63

Niv

eau

2

Page 64: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

64

Niv

eau

3

Page 65: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

65

Niv

eau

4

Page 66: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

66

Execution :

Niv

eau

4

Page 67: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

67

Qua

lité

de c

ode

Page 68: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

68

Cory House @housecor React evangelist

Qua

lité

de c

ode

Page 69: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

69

Com

pren

dre

Java

Scr

ipt

Comprendre JavaScript

Page 70: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

70

Source: https://fr.wikipedia.org/wiki/JavaScript

Com

pren

dre

Java

Scr

ipt

Comprendre JavaScript

Page 71: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

71

Com

pren

dre

Java

Scr

ipt

Les classes

Page 72: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

72

Sophie Alpert @sophiebits Facebook React team

Source: Sophie Alpert: React Today and Tomorrow and 90% Cleaner React With Hooks (see at 10:00)

Classes are ...

Com

pren

dre

Java

Scr

ipt

Les classes

Page 73: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

73 La même chose en 20 lignes de moins

Com

pren

dre

Java

Scr

ipt

Les Modules

Page 74: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

74

?Package

Source: Naren Yellavula : Everything I know about writing modular JavaScript applications (see)

Com

pren

dre

Java

Scr

ipt

Il y avait quelques indices ...

Page 75: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

75

Com

pren

dre

Java

Scr

ipt

advertiser

Page 76: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

76

Com

pren

dre

Java

Scr

ipt

Page 77: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

77

Ou créer des alias :

On peut importer depuis le chemin de notre fichier

Com

pren

dre

Java

Scr

ipt

Les modules

Page 78: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

78

Typa

ge e

n Ja

vaS

crip

t

Typage en JavaScript

Page 79: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

79

Typa

ge e

n Ja

vaS

crip

t

TypeScript : un langage

Page 80: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

80

Source: developpez.com : les langages les plus demandés et les mieux payés (see)

JavaScript

17.8%

1.6%

* dont potentiellements quelques annonces TypeScript cachéesTy

page

en

Java

Scr

ipt

TypeScript : popularité

Page 81: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

81

Typa

ge e

n Ja

vaS

crip

t

● Types ( vous avez atteint le niveau 4 ! )

● Contrat entre front et back● Transpileur● Auto-linter efficace● Tueur de la “JavaScript fatigue”

TypeScript : la promesse

Page 82: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

200Mo500Mo

Page 83: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

83

Tool

ing

Java

Scr

ipt

Tooling JavaScript efficace

Page 84: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

84 .

Tool

ing

Java

Scr

ipt

Style de code et syntaxe

Exemple de formatage à la sauvegarde :

+ lint-staged+ husky (git hooks)

Page 85: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

85 .

Tool

ing

Java

Scr

ipt

Gestion des dépendances

Vous voulez vous autoriser à forker un projet pour en commencer un nouveau ? Execution de la commande

Page 86: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

86

Vous voulez vous débarrasser de vos dépendances inutiles ?

Tool

ing

Java

Scr

ipt

depcheck

Gestion des dépendances

.

Execution de la commande

Page 87: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

87 .

Tool

ing

Java

Scr

ipt

madge

Protection contre lesdépendances circulaires :

Dépendances circulaires

Source: Dan Kelch : Eliminate Circular Dependencies from Your JavaScript Project (see)

Execution de la commande

Page 88: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

88 .

.js

Tool

ing

Java

Scr

ipt

CI et code review

Automatisation de code review :Aperçu dans github

Page 89: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

89 .

https://risingstars.js.org

Tool

ing

Java

Scr

ipt

Une veille technique facile des librairies ?

Page 90: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

90

Con

clus

ion

Conclusion

That’s all folks

Développeurs:

● Choisissez les bons outils pour tuer la dette technique

● Faites confiance à votre tooling

Startuppers :

● Faites confiance à vos développeurs

Page 91: : croître avec JavaScript en 2019 - Ogury · Les tests fonctionnels. 51 Les tests fonctionnels SuperTests no logo BlackBox tests validation BackEnd Nos bonnes pratiques. 52 BlackBox

Merci de votre attention

David Babel@DavidLearnJS

Carles Sistare@CarlesSistare