+ All Categories
Home > Technology > Retours Devoxx France 2016

Retours Devoxx France 2016

Date post: 18-Jan-2017
Category:
Upload: antoine-rey
View: 5,396 times
Download: 2 times
Share this document with a friend
14
1 Devoxx France 2016 Une conf appréciée, un slide Antoine Rey 13 mai 2016
Transcript
Page 1: Retours Devoxx France 2016

1

Devoxx France 2016Une conf appréciée, un slide

Antoine Rey13 mai 2016

Page 2: Retours Devoxx France 2016

2

Page 3: Retours Devoxx France 2016

ECMAScript 2015 / ES6 : c’est maintenant !

o ES6 : plus grosse évolution du langage JavaScript depuis 20 ans• Plus facile : moins de piège, mode strict• POO : classes, héritage, accesseurs, constructeur …• Fonctionnalités : déstructuration, rest & spread, fonctions fléchées,

modules …

o ES5 : supporté par IE9+, navigateurs Evergreens, NodeJS, IDE, outils de builds …

o Utilisation de ES6 via le transpileur Babel

o Zoom sur la syntaxe : http://lebab.io/try-it

3

Page 4: Retours Devoxx France 2016

Architecture technique Stack Overflow

• 2 423 requêtes HTTP / seconde

• 504 millions de requêtes SQL / jour

• 3 To de données émises / jour

• Temps de réponse moyen : 22,21 ms

x4 x2 x3

x9

x4

Page 5: Retours Devoxx France 2016

Angular 2@Component( providers: [ new Provider(QuestionsStore, useFactory: () => new QuestionsStore(SessionStore.read()) ) ], selector: 'summary', template: ` <div class="mdl-card_sup-text"> <h4>Your score is score / total </h4> </div> <question-card [preview]="true" [question]="question" *ngFor="#question of questions"></question-card> `, directives: [QuestionCard])export class Summary implements OnInit

private questions: IQuestion[]; private score: number; private total: number; private questionsStore: IQuestionsStore;

constructor(questionsStore: QuestionsStore) this.questionsStore = questionsStore; this.questionsStore.fetch().then( (questions) => this.questions = questions );

ngOnInit() this.total = this.questions.length; this.score = this.questionsStore.computeResult(this.questions);

Orienté composantsAssocié à un selector CSS3

Template HTML inline

Injection de dépendance

Callback sur cycle de vie

Composant enfant

Binding de propriétés

Page 6: Retours Devoxx France 2016

6

Apache Kafka0 1 2 3

0 1Topic A

Partition 1

Partition 2

Topic B

0 1 2 Partition 1

Consommateur Ω

Consommateur µ

Zookeeper

Client A

Client B

Page 7: Retours Devoxx France 2016

7

Spring Boot & Spring Cloud

“ make jar not war ”

Service Discovery(Eureka)

Config Server(Spring Cloud)

Micro-service de

réservations

REST

H2

Client de réservation

GET http://reservation-service/reservations

RabbitMQ

Page 8: Retours Devoxx France 2016

8

Page 9: Retours Devoxx France 2016

Jenkinsfile

“ le pendant du .travis.yml pour Jenkins”

jettyUrl = 'http://localhost:8081/’def servers

stage ’Build'node checkout scm servers = load 'servers.groovy' mvn '-o clean package' dir('target') stash name: 'war', includes: 'x.war'

stage ’Acceptance Test'parallel(longerTests: runTests(servers, 30), quickerTests: runTests(servers, 20))

def mvn(args) sh "$tool 'Maven 3.x'/bin/mvn $args"

Page 10: Retours Devoxx France 2016

React

10

var HelloMessage = React.createClass( render: function() return <div>Hello this.props.name</div>; );ReactDOM.render(<HelloMessage name="John" />, mountNode);

• Le V de MVCo Déclaratifo Composants

• Virtual DOMo Performanceo Server Side

rendering

• React Nativeo Learn once, write

anywhere o iOS et Androïd

Page 11: Retours Devoxx France 2016

Une JVM de 3 To

11

Page 12: Retours Devoxx France 2016

Rendre la doc aussi fun que le code

• Conversations over documentation • Pair programming, mob-programming, revues de code

• Savoir métier et DDD• Scénarios fonctionnels dans Cucumber, SpecFlow,

JGiven• Session d’Event Storming

• La documentation passe également par le code• Conventions de nommage, package-info.java• Annotations Java avec sémantique (ex:

@BoundedContext)

• Gérer la documentation comme le code• Versionnée dans le référentiel de code source• Présente dans l’IDE pour prendre en compte les

refactoring• Outils de génération de diagrammes : Ditaa, DOT …

12

Page 13: Retours Devoxx France 2016

Bonnes pratiques des revues de code

13

• Prendre le temps, à tête reposée et à un rythme soutenable• Echangez de vive voix pendant les revues• L’auteur corrige, en binôme si nécessaire• Ecrivez vos standards et les faire évoluer• Critiquez le code, pas le développeur• Pas de discussions à rallonge• Trouvez des compromis et en faire un standard

“ 1h de revue = 4h de debug économisée ”


Recommended