Il y a beaucoup de sujets d’actualité en matière de code, et rester dans l’air du temps est toujours une tendance. Si vous vous demandez comment séparer les scories des bons, nous avons ce qu’il vous faut, tout ce dont vous avez besoin est l’inspiration pour continuer à lire.
Dans le contenu suivant, nous examinerons les points chauds de 2016 et ce qui sera le plus chaud cette année. Bien sûr, je parle de Java. Bon, mettons les voiles.
Commençons par un bug dans Java 6. Ce bug deviendra une fonction dans Java 9 : sun.misc.Unsafe. Cette bibliothèque est un ensemble de méthodes permettant d'effectuer des opérations de bas niveau et dangereuses. Par exemple, l'utilisation de la méthode allocateInstance vous permet d'ignorer la phase d'initialisation de l'objet ou de contourner les contrôles de sécurité dans le constructeur.
Bien qu'Oracle ait envisagé de supprimer complètement la bibliothèque Unsafe, la communauté a changé d'avis et a finalement fait de la bibliothèque Unsafe une fonctionnalité de Java 9.
Ce n'est pas la seule fois où la communauté parle de Java 9 ou d'éventuels changements dans les futures versions de Java. Plus tôt cette année, Brian Goetz, l'architecte du langage Java d'Oracle, a publié les conclusions du JEP 286.
La proposition recommande d'introduire l'inférence de type de variable locale dans les futures versions de Java pour simplifier l'écriture d'applications Java. substance? 74% des développeurs souhaitent être moins verbeux et pouvoir déclarer des variables sans avoir à préciser le type associé.
Avec plus de 200 jours avant la sortie de Java 9 (car nous comptons sa date de sortie sur nos doigts), nous avons tout le temps d'explorer les différentes JEP et de trouver de nouvelles fonctionnalités améliorées. C'est là que nous rencontrons la JEP 266 : davantage de mises à jour de concurrence, y compris des mises à jour de CompletableFuture et de la passionnante classe java.util.concurrent.Flow.
Il ne fait aucun doute que Java 9 a fait la une des journaux au cours de l’année écoulée et continuera à attirer de plus en plus d’attention à l’approche de 2017. Il ne nous reste plus qu'à attendre et espérer que cela ne soit pas encore retardé.
2016 est une année significative pour Java Enterprise Edition, également connu sous le nom de Java EE. Cela a été une source de confusion pour la communauté Java mondiale car il est construit sur Java SE. Officiellement, il s'agit "juste" d'une spécification, avec des implémentations réellement utilisables d'Oracle (comme l'implémentation de référence Glassfish) et d'autres fournisseurs comme Red Hat et IBM.
Il existe de nombreux problèmes avec Java EE, principalement celui-ci : « Oracle a-t-il abandonné les logiciels d'entreprise ? Le coup fatal pour Java EE vient du rapport « Application Platform Market Guide » de Gartner. Dans le rapport, Gartner note que Java EE a été conçu pour « un modèle obsolète qui ne répond plus aux besoins des applications modernes ». Hélas~
La communauté Java EE a déclaré que Gartner n'avait pas raison, ce qui a déclenché une discussion autour de cette version. Java EE 8 devrait sortir au premier semestre 2017 et nous pensons qu'il est trop tôt pour en faire l'éloge. Nous devrons attendre de voir comment cela se déroulera et si Java EE va planter.
Java n'est pas seulement Java 9, il présente de nombreuses tendances que vous devez suivre. Un bon début consiste à parcourir les 100 meilleures bibliothèques Java de 2016 pour vérifier s'il y a quelque chose que vous auriez pu manquer au cours de l'année écoulée.
De plus, si les bibliothèques ne sont pas votre truc, il existe des bibliothèques Java intéressantes de Google (et non de Guava) qui valent le détour.
En suivant le parcours éducatif, certains éléments clés ne peuvent être appris qu’avec l’expérience, alors soyez prêt à apprendre.
Si vous recherchez un défi, il existe de nombreux projets qui valent la peine. Vous pouvez essayer de résoudre ces problèmes élégants, la manipulation de chaînes ou même un lecteur de musique Java et apprendre au fur et à mesure. Bien sûr, si vous rencontrez des problèmes ou si vous avez des questions, l'excellent Stackoverflow est toujours à votre service. Voici sept des meilleures questions que nous avons trouvées.
Petite anecdote amusante : pouvez-vous deviner comment les principaux projets Java de GitHub utilisent les journaux ? Nous avons analysé 779 236 instructions de journalisation Java dans 1 313 référentiels GitHub pour découvrir : ERREUR, AVERTISSEMENT ou FATAL ?
Les conteneurs sont devenus très utiles au cours de la nouvelle année, et ils sont également très pratiques pour gérer le cycle de vie des servlets, mapper les URL sur des servlets spécifiques et garantir que les demandeurs d'URL disposent des droits d'accès corrects.
De nombreuses personnes s'intéressent aux conteneurs Java. Quelques mois seulement après avoir suscité l'intérêt pour la combinaison d'Alpine Linux et de Docker, nous avons commencé à discuter uniquement avec le support OverOps, puis nous avons vu de plus en plus d'utilisateurs l'essayer avec leurs conteneurs.
C'est pourquoi nous avons décidé d'essayer Alpine Linux, qui est indépendant de Linux et basé sur musl libc (prononcé « muscle ») et busybox. En plus d'être léger, il suit également le principe de sécurité et utilise grsec/Pax pour améliorer la sécurité du noyau Linux.
Docker reste l'un des outils les plus populaires du secteur. L'entreprise assume la tâche difficile du code d'expédition et rend l'utilisation des conteneurs plus rapide et plus facile. Cependant, si vous souhaitez utiliser Java avec Docker, vous souhaiterez peut-être reconsidérer votre décision, car cela pourrait vous amener à enfreindre le commandement (Java).
Nous savons ce que vous pensez : voici un aperçu de ce mot à la mode. L’un des sujets les plus fréquemment rencontrés en 2016 était le DevOps, qui revêt une grande variété de significations et de méthodes de travail. L'essentiel est de se concentrer sur la connaissance de ce qui se passe dans une application en temps réel et d'être capable de le contrôler.
Comment faisons-nous cela ? En surveillant notre environnement de production. Des problèmes de performances, des erreurs et des exceptions se produisent toujours et nous devons savoir exactement ce qui se passe. Mais comment savoir quand et pourquoi quelque chose ne va pas ? C'est là qu'intervient le concept d'observabilité, qui nous aide à mieux comprendre le système et à savoir ce qui se passe.
Cela fait partie du flux de travail DevOps et, dans la théorie du contrôle, il s'agit d'une mesure qui utilise la connaissance de sa sortie externe pour déduire l'état interne du système. Voici un autre « mot à la mode » : Instrumentation. C'est l'instrumentation qui nous permet d'obtenir des informations avant que les applications ne deviennent folles pour nous et nos utilisateurs.
Une fois ces éléments de base établis, il est maintenant temps de fournir des outils qui peuvent nous aider à surveiller les performances des applications. Une fois l’application opérationnelle, nous devons savoir si et quand une erreur ou une exception est générée. C'est pourquoi il existe de nombreux outils de suivi des bogues sur le marché, il vous suffit donc de choisir le bon.
Les erreurs ne sont pas le seul problème qui requiert notre attention, le plus grand défi restant en 2016 concerne la gestion des fichiers journaux. Tout le monde utilise des fichiers journaux pour rechercher et comprendre les erreurs, les plantages et les exceptions dans les applications. Certaines personnes utilisent une approche directe et passent au crible les fichiers journaux en texte brut, tandis que d'autres s'appuient sur des outils de gestion des journaux pour les aider à trouver les erreurs dans la botte de foin.
Si vous recherchez une nouvelle façon de déboguer les erreurs et les exceptions de production, OverOps (révisé en 2016) vous fournit le code source complet et l'état variable de l'ensemble de la pile d'appels. Chaque paramètre et chaque variable qui provoque un échec est transmis à la transaction ou au workflow.
Nous ne pouvons pas ignorer la tendance des microservices. Certains diront que ce n’est qu’un autre mot à la mode insupportable, tandis que d’autres vantent les mérites de briser les monolithes ou d’adopter une approche à contre-courant et de se concentrer sur le négatif.
Quelle que soit la façon dont vous regardez les choses, il semble que tout le monde utilise des microservices de nos jours. Il ne reste plus qu’à faire attention à ne pas y toucher en production lors de l’utilisation de microservices.
L’architecture informatique sans serveur a également retenu l’attention ces dernières années. Le concept d’informatique sans serveur implique le déploiement de code et non de serveurs. Au lieu d'acheter, de gérer et de faire évoluer les serveurs, les fournisseurs de cloud traitent les demandes de machines virtuelles.
Vous avez donc toujours besoin du serveur, mais ce nouveau modèle assume cette responsabilité. En d’autres termes, il n’y a aucun problème à gérer le déploiement sur le serveur ou sur tout logiciel installé. Fondamentalement, tout ce dont vous avez besoin est un service cloud géré et un ordinateur.
Et le dernier, même si l’intelligence artificielle et l’apprentissage automatique existent depuis un moment, on a toujours l’impression que tout le monde en parle encore. Ils ne sont plus un secret pour les scientifiques et les chercheurs et peuvent être vus mis en œuvre dans presque toutes les technologies émergentes.
Le récent buzz et les avancées évolutives dans ce domaine l’ont rendu plus accessible aux non-chercheurs. Vous disposez désormais d’un accès complet et facile aux algorithmes et outils pertinents. Vous devez savoir ce que vous faites et il est beaucoup plus facile d'améliorer une application avec des capacités d'apprentissage automatique.
Il faut aimer la communauté Java. Car non seulement ils ont influencé les futures versions du langage, mais ils nous ont aussi enrichis à travers des rencontres, des articles et tout ce qui touche à Java. L'année 2016 a été marquée par des conférences assez étonnantes comme JavaOne, QCon et bien d'autres conférences intéressantes que vous pouvez revoir dès maintenant.
L'une des principales ressources pour apprendre de nouvelles choses dans le développement de logiciels est de regarder des conférences et des vidéos en ligne. C'est une excellente plate-forme car des experts Java partagent leurs expériences avec nous sans que vous ayez à quitter le confort de votre canapé et à courir partout.
Ou, si regarder des vidéos n'est pas votre truc, parcourir les decks Java peut vous tenir au courant des tendances actuelles.
Le soutien par les pairs est pertinent pour tous les aspects de notre travail, et nous pouvons apprendre beaucoup de ceux qui nous entourent. Un trait clé est la productivité, car il y a toujours place à l’amélioration. Tout ce que nous devons faire, c'est être prêt à accepter les suggestions et à écouter quiconque souhaite s'exprimer.
Un autre élément clé de la communauté est le soutien et la promotion des projets open source. En fait, nous avons officiellement lancé l'outil de ligne de commande que vous attendiez (ou peut-être pas) : Bullshifier. Il a été utilisé pour tester certaines capacités de surveillance sur une base de code ridiculement grande, avec des dizaines de milliers de profondeurs d'appels, des dizaines de milliers de classes, et a abouti à des transactions inhabituelles.
En 2016, nous avons rencontré de nombreux thèmes et mots à la mode. Certains d’entre eux sont déjà connus et d’autres nouveaux nous permettent d’envisager Java d’une manière complètement différente. Nous attendons maintenant avec impatience Java 9 en 2017, avec des mises à jour et des fonctionnalités encore plus étonnantes, des discussions, des projets et même un ou deux nouveaux mots à la mode pour Java en 2017.
Quelle a été votre fonctionnalité, discussion ou sujet Java préféré en 2016 ? Nous serions ravis d’avoir de vos nouvelles dans les commentaires ci-dessous.
Texte original en anglais : Si vous avez écrit Java en 2016, voici les tendances que vous n'auriez pas pu manquer
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!