1
Devoxx France 2016
Une conf appréciée, un slide
Antoine Rey
13 mai 2016
2
ECMAScript 2015 / ES6 : c’est maintenant !
o ES6 : plus grosse évolution du langage JavaScript depuis 20 ans
• Plus facile...
Architecture technique Stack Overflow
• 2 423 requêtes HTTP / seconde
• 504 millions de requêtes SQL / jour
• 3 To de donn...
Angular 2@Component({
providers: [
new Provider(QuestionsStore, {
useFactory: () => new QuestionsStore(SessionStore.read()...
6
Apache Kafka
0 1 2 3
0 1
Topic A
Partition 1
Partition 2
Topic B
0 1 2 Partition 1
Consommateur Ω
Consommateur µ
Zookeep...
7
Spring Boot & Spring Cloud
“ make jar not war ”Service Discovery
(Eureka)
Config Server
(Spring Cloud)
Micro-service
de ...
8
Jenkinsfile
“ le pendant du .travis.yml pour Jenkins”
jettyUrl = 'http://localhost:8081/’
def servers
stage ’Build'
node {...
React
10
var HelloMessage = React.createClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
Reac...
Une JVM de 3 To
11
Rendre la doc aussi fun que le code
• Conversations over documentation
• Pair programming, mob-programming, revues de code...
Bonnes pratiques des revues de code
13
• Prendre le temps, à tête reposée et à un rythme soutenable
• Echangez de vive voi...
14
Vidéos librement disponibles sur le channel « Devoxx FR 2016 » de Youtube
https://www.youtube.com/channel/UCsVPQfo5RZEr...
Prochain SlideShare
Chargement dans…5
×

Retours Devoxx France 2016

7 569 vues

Publié le

Une conférenciée appréciée, un slide

Publié dans : Technologie
  • Soyez le premier à commenter

Retours Devoxx France 2016

  1. 1. 1 Devoxx France 2016 Une conf appréciée, un slide Antoine Rey 13 mai 2016
  2. 2. 2
  3. 3. 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
  4. 4. 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
  5. 5. 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é composants Associé à un selector CSS3 Template HTML inline Injection de dépendance Callback sur cycle de vie Composant enfant Binding de propriétés
  6. 6. 6 Apache Kafka 0 1 2 3 0 1 Topic A Partition 1 Partition 2 Topic B 0 1 2 Partition 1 Consommateur Ω Consommateur µ Zookeeper Client A Client B
  7. 7. 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
  8. 8. 8
  9. 9. 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}" }
  10. 10. React 10 var HelloMessage = React.createClass({ render: function() { return <div>Hello {this.props.name}</div>; } }); ReactDOM.render(<HelloMessage name="John" />, mountNode); • Le V de MVC o Déclaratif o Composants • Virtual DOM o Performance o Server Side rendering • React Native o Learn once, write anywhere o iOS et Androïd
  11. 11. Une JVM de 3 To 11
  12. 12. 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
  13. 13. 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 ”
  14. 14. 14 Vidéos librement disponibles sur le channel « Devoxx FR 2016 » de Youtube https://www.youtube.com/channel/UCsVPQfo5RZErDL41LoWvk0A

×