Spring, bytecode, JDK: les 10 meilleurs rapports de JBreak 2018



Habr, bonjour! Auparavant, nous avons organisé la conférence Java JBreak à Novossibirsk. En 2019, ils ont décidé de ne pas le tenir, mais à partir de cela, les rapports JBreak 2018 ne cessent d'être utiles, nous partageons donc traditionnellement une sélection des meilleurs (selon le public). De plus, de nombreux orateurs de cette collection arriveront bientôt à JPoint avec de nouveaux rapports à Moscou - vous pouvez simplement «les rencontrer par contumace» avec eux et comprendre si vous souhaitez assister à une conférence à Moscou.

Comme d'habitude, les rapports vont de «junior» à «senior», mais les différences entre les lieux sont minimes - il est donc préférable de ne pas comparer méticuleusement les lieux, mais de tout regarder sur des sujets d'intérêt!

Sous la cinématique, les vidéos sont réparties avec une table des matières en fonction du contenu de la publication, des présentations et des courtes descriptions.
Et pour ceux qui n'ont pas les 10 meilleurs rapports et qui ont besoin de tout, nous avons une playlist séparée.

Partage de données de classe dans la machine virtuelle HotSpot


Conférencier: Volker Simonis
Emplacement: 10
Évaluation: 3,96
Présentation du rapport



Notre sélection commence par un rapport détaillé sur le partage de données de classe, une fonctionnalité conçue pour améliorer la vitesse de téléchargement et réduire la quantité de RAM utilisée. Il est apparu en Java 5, mais au cours des dernières années, l'histoire s'est développée, et dans OpenJDK 10, il y avait un ajout sous la forme d'AppCDS. Volker présente d'abord brièvement CDS et AppCDS, expliquant ce que c'est et pourquoi, puis plongeant plus profondément.

Selon le public, ceci est un exemple de «tâche de travail exemplaire» - Volker a regardé les sources JDK, trié comment obtenir le résultat et les pièges, montré des chiffres spécifiques sur l'utilisation et la vitesse de la RAM, et peint tout pour que vous compreniez si cela vaut la peine d'être utilisé cette technologie pour leurs applications.



Construire une plateforme de trading cryptographique à l'aide de Spring 5 et Reactor 3


Conférencier: Oleg Dokuka
Emplacement: 9
Évaluation: 4.02
Présentation du rapport



Non, il n'y aura pas de mécanisme pour le fonctionnement de la blockchain, des secrets d'enrichissement rapide sur crypto-monnaie et autres. Mais il y aura ce qu'il faut pour une meilleure compréhension de Spring 5 et Reactor 3: un orateur expérimenté, un discours et une présentation préparés, une démonstration de la technologie moderne et un exemple pratique (sous la forme de la plateforme de cryptotrading très simple).

L'approche du rapport est aussi accessible que possible: Oleg pose les questions de base: «Qu'est-ce qui est nécessaire?», «Pourquoi est-ce nécessaire?», «Comment mettre en œuvre cela?» Étagères chaque réponse. Par exemple, il explique en détail et simplement comment construire un système réactif à l'aide de la pile réactive de printemps, pourquoi l'entreprise en a besoin, où l'approche réactive fonctionne le mieux et résout de manière optimale les problèmes complexes.

Tout au long du rapport, Oleg comprend comment Reactor 3 et réactif Spring 5 aident ou n'aident pas à résoudre les problèmes, quoi de neuf.

Vers une table de hachage multithread rapide


Conférencier: Nikita Koval
Emplacement: 8
Évaluation: 4.04
Présentation du rapport



Les tables de hachage sont la structure de données la plus populaire et la plus utile dont les performances dépendent de nombreux composants d'application. Et les performances dépendent également du multithreading. Qu'y a-t-il en Java avec des tables de hachage qui tirent pleinement parti du monde multicœur moderne?

Nikita Koval ( ndkoval ) voit le sujet du multithreading à la fois du côté théorique (en l'enseignant à l'ITMO) et du côté pratique (il est impliqué dans les coroutines à Kotlin). Sans surprise, le rapport s'est avéré complet: il comporte à la fois des aspects théoriques et des approches pratiques.



Injection d'effets secondaires ou béquilles vertueuses


Conférencier: Vladimir Plizga
Emplacement: 7
Évaluation: 4.11
Présentation du rapport



Avez-vous déjà eu des cas où par hasard (ou non) ils ont envoyé un morceau de code destiné au test à la production? Ou inséré un temporaire si, par exemple, avec Thread.sleep () ou la journalisation pour le débogage? Vous n'êtes pas seul: il existe de nombreux exemples réels où un code de test / débogage part souvent en production, se transformant en bombe à retardement, augmentant simultanément la dette technique et augmentant la place sur le karma du développeur.

Dans le rapport, Vladimir démonte l'approche d'injection d'effets secondaires, qui permettra d'introduire presque tous les comportements dans l'application de test: retards, stubs, journalisation, contournement de sécurité, etc., mais en même temps de ne pas salir le référentiel avec des hacks sales et même de ne pas reconstruire l'application elle-même. Vous n'avez pas vu de telles béquilles :)



Vérification du bytecode Java: quand, comment et peut-on désactiver?


Conférencière: Nikita Lipsky
Emplacement: 6
Évaluation: 4.13
Présentation du rapport



Pour implémenter certaines astuces difficiles à exprimer en Java, les développeurs utilisent des bibliothèques pour générer du bytecode lors de l'exécution. Mais vous devez surveiller strictement l'exactitude du bytecode, sinon VerifyError apparaîtra lors du chargement des classes. Et que faire dans une telle situation?

Vous devez non seulement connaître la sémantique des instructions de bytecode, mais également comment fonctionnent les vérificateurs et quel bytecode peut être considéré comme correct. Nikita comprend quelle mission la JVM porte le vérificateur de bytecode, quand et comment cela fonctionne, si cela peut affecter les performances de votre application et pourquoi il est dangereux de le désactiver.

Comme dans le paragraphe ci-dessus à propos d'un autre Nikita (Koval), l'orateur est ici très utile dans son contexte. Pour comprendre le bytecode, il est utile de travailler en dessous du niveau des développeurs Java «ordinaires», et Nikita Lipsky ( pjBooms ) participe depuis de nombreuses années au JET Excelsior «JVM Sibérien», à propos duquel nous l'avons beaucoup interviewé récemment.




Équilibrer les demandes des clients avec Spring Cloud


Conférencier: Alexander Tarasov
Emplacement: 5
Évaluation: 4.14
Présentation du rapport



Un reportage très "live" dans le sens d'une démonstration live de tout ce qui se dit. Alexander passe en revue la théorie de Spring Cloud, puis plonge dans une solution typique au problème - puis au lieu de diapositives satiques, un IDE avec un code ou un navigateur avec des graphiques d'Hystrix sont constamment visibles à l'écran.
Au cours de la démonstration, la mise en œuvre interne de l’équilibrage des demandes des clients avec des exemples provenant des bibliothèques officielles et de la bibliothèque de l’auteur sera envisagée. Vous apprendrez à équilibrer la charge et, par exemple, vous verrez pourquoi même une très légère augmentation de la charge peut entraîner des conséquences désastreuses et comment cela peut être évité.



Démarreur de bottes de printemps - comment et pourquoi?


Orateur: Maxim Gorelikov / Kirill Tolkachev ( tolkkv )
Emplacement: 4
Évaluation: 4.16
Présentation du rapport



Le printemps n'est plus magique (grâce à "Spring Ripper" et Yevgeny Borisov), mais Spring Boot est souvent stigmatisé avec des métiers magiques. Mais beaucoup de gens l'aiment, surtout pour les débutants!
Un rapport sur les raisons pour lesquelles, en général, dans le cadre d'une entreprise typique qui utilise Spring Boot, vous pourriez avoir besoin de vos propres démarreurs; la rapidité avec laquelle l'inquisition arrive pour les nouveaux venus s'ils utilisent inconsidérément des démarreurs prêts à l'emploi et le degré d'indépendance de Spring Boot et ce que cela signifie pour les développeurs.

Le rapport est conçu pour les ingénieurs Spring (et de préférence Spring Boot) qui ont déjà rencontré diverses difficultés pour supporter l'infrastructure lourde développée à l'aide de Spring.



Qui est ce tweet sur #jbreak?


Conférencier: Victor Gamov
Emplacement: 3
Évaluation: 4.18

Présentation du rapport



Qui connaît Victor Gamov gAmUssA (du podcast Parsing Flight ou autre), il n'est pas surprenant qu'il ait transformé un reportage sérieux sur les systèmes de traitement de données en pipeline en une émission interactive. Victor a organisé le codage en direct dès la conférence pour analyser le flux de tweets de la conférence en utilisant des technologies à la mode - Apache Kafka, Kafka Connect et KSQL.

Nous connaissons et aimons tous SQL, non? Donc, KSQL est presque comme SQL, seulement pour Kafka. KSQL vous permet de créer des systèmes de traitement de streaming complexes sans écrire de code Java ou Scala.



Smoothie ML avec Spark MLlib


Conférencier: Alexey Zinoviev
Place: 2
Évaluation: 4.18
Présentation du rapport



Pour travailler sur BigData, vous avez besoin non seulement de scientifiques des données réglant les paramètres des modèles à partir de packages en R ou Python, mais également de développeurs Java qui peuvent comprendre les modèles construits et les implémenter en Java / Scala, notamment en utilisant Spark MLlib.

Alexei présente au public cette bibliothèque de machine learning distribuée la plus puissante dans les formulations les plus simples possibles, tout en discutant des fonctionnalités de l'utilisation d'algorithmes d'apprentissage machine et de structures de données standard dans Spark. Après le rapport, BigData deviendra beaucoup plus clair, vous voudrez le faire et creuser vous-même dans les «stylos» - testés sur les auditeurs.



Keynote: JDK 9, Mission accomplie: quelle suite pour Java?


Conférencier: Simon Ritter
Emplacement: 1
Évaluation: 4.29
Présentation du rapport



Et surtout, le public a aimé le discours d'ouverture de la conférence. Maintenant, alors que beaucoup de temps s'est déjà écoulé depuis JBreak 2018, il peut sembler terriblement dépassé par son nom: il existe déjà JDK 11, que faut-il maintenant retenir du neuvième? Mais si vous considérez que c'est avec la sortie du «neuf» que le cycle de publication a changé et que de nouvelles versions ont commencé à sortir fréquemment, il s'avère qu'il est logique de revenir sur cette version: elle est devenue un important «tournant», la dernière mise à jour vraiment à grande échelle.

Et si vous voulez toujours quelque chose de plus pertinent de la part de Simon, ce sera chez JPoint en avril: sur deux de ses rapports, l' un sera consacré au JDK de 10 à 12 (et l' autre à l' inférence de type).

Lequel de ces orateurs peut être vu dans JPoint en avril? Pour le moment, il est déjà connu qu'Oleg Dokuka parlera de RSocket, et Nikita Lipsky dira comment la compilation AOT est combinée avec les applications Spring Boot. Nikita Koval le sera aussi, mais le sujet du rapport n'a pas encore été annoncé.

De plus, il y aura de nombreux autres rapports - et les descriptions de certains d'entre eux peuvent déjà être lues sur le site . Si vous pensez que vous avez quelque chose à dire, l' acceptation des demandes de rapports se termine le 31 janvier, c'est donc la dernière chance d'être dans les temps. Il vaut également la peine de se précipiter pour acheter des billets : cela peut être fait plus tard, mais à partir du 1er février, le prix augmentera.

Source: https://habr.com/ru/post/fr438098/


All Articles