JavaRush /Blog Java /Random-FR /Java. Plan d'action

Java. Plan d'action

Publié dans le groupe Random-FR
Java.  Plan d'action - 1

Contenu:

  1. Section zéro - Java Core
  2. Outils
  3. API JDK
  4. Quoi de neuf dans Java 8
  5. SQL, bases de données, JDBC
  6. Cadres
  7. Bibliothèques et frameworks de tests
  8. Bibliothèques de services
  9. Clients API
  10. Modèles de conception
  11. Connaissances supplémentaires
Que doit savoir un Java Junior potentiel pour obtenir un premier emploi ou au moins postuler à un poste de stagiaire dans une bonne entreprise ? Quels outils aideront un programmeur Java à atteindre le niveau supérieur ? Quelles technologies étudier et lesquelles laisser pour plus tard ? Il n’existe pas de réponse standard à ces questions, tout comme il n’existe pas de plan d’action unique qui conviendrait à absolument tout le monde. Certaines entreprises s'efforcent de se développer, introduisent constamment de nouvelles technologies et testent les capacités des nouvelles versions du langage, tandis que d'autres s'accrochent obstinément aux anciennes. Il existe également des options « intermédiaires » et, peut-être, elles sont plus nombreuses. Cependant, nous avons élaboré une feuille de route ou une feuille de route pour un aspirant développeur Java. Dans un effort de rendre les choses aussi simples que possible, nous avons indiqué uniquement les technologies et sujets nécessaires à la grande majorité des « javistes ». Il ne faut pas oublier que tout n'a pas besoin d'être étudié en détail (certains des éléments ci-dessus ne peuvent être maîtrisés qu'en travaillant en équipe), mais cela ne fera pas de mal d'en avoir une compréhension générale.

0. Section zéro - Java Core

Nous avons inséré la section zéro dans l'article juste au cas où une personne qui envisage simplement d'apprendre Java et ne sait pas par où commencer viendrait ici. Java Core est quelque chose que même un débutant devrait très bien connaître. C'est-à-dire connaître les choses de base, comprendre ce que le langage propose pour résoudre un problème particulier et, dans des cas simples, pouvoir appliquer ces connaissances. Vous pouvez pratiquer Java Core sur JavaRush, et si vous ne l’avez pas encore fait, nous vous invitons à suivre le cours ! Eh bien, pour tous les autres, rappelons les principales étapes de Java Core :
  • Constructions, opérateurs et types de données Java de base
  • POO et son implémentation en Java
  • Des exceptions
  • Collections Java
  • Génériques
  • Multithreading

1. Outils

IDE ou environnement de développement intégré

L'outil principal d'un développeur moderne est un IDE. Il en existe beaucoup sur le marché aujourd'hui, mais dans le développement Java professionnel, il n'y a généralement que deux noms. Il s'agit de l' Eclipse gratuit, construit sur des plugins , qui a tenu la palme pendant de nombreuses années consécutives, et d'IntelliJ IDEA , qui a activement remplacé Eclipse ces dernières années, et ce malgré le fait qu'un abonnement à la version Ultimate est nécessaire pour les professionnels coûtent de l’argent. Rappelons que dans le cours JavaRush, nous utilisons l'édition gratuite de Community IntelliJ IDEA, qui présente certaines limitations fonctionnelles par rapport à Ultimate. L'expression « Je connais l'IDE » signifie que vous connaissez les fonctionnalités de base de l'environnement de développement, que vous savez comment compiler, exécuter, déboguer et tester des fichiers, et refactoriser le code. La maîtrise des touches de raccourci sera d'une grande aide pour accélérer votre travail. Ne soyez pas paresseux, passez quelques heures à découvrir les fonctionnalités de l'EDI que vous ne connaissiez pas et commencez à les utiliser dans la pratique. Et ne négligez pas le débogage, c'est une compétence très utile. Toutes ces actions contribueront à améliorer considérablement la rapidité et la qualité de votre travail.

Outils pour l'assemblage automatique

Aujourd'hui, les projets Java utilisent le plus souvent des outils tels que Maven et Gradle. Il n'est pas nécessaire de les étudier en profondeur, mais il sera utile de comprendre en quoi ils diffèrent les uns des autres, sur quoi ils sont basés, quelles sont les tâches (dans Gradle) et les phases avec objectifs dans Maven. Il suffira de se renseigner sur les systèmes et de déployer quelques petits projets dessus. C'est assez simple à réaliser et vous comprendrez les détails dans des conditions de travail réelles.

Systèmes de contrôle de version et services d'hébergement en ligne

Un système de contrôle de version est ce qui aide les programmeurs à travailler en équipe sur un projet commun sans le « casser », à synchroniser des morceaux de code disparates créés par différentes personnes, à annuler les mises à jour infructueuses et à en ajouter de nouvelles. Les plus courants sont deux systèmes de contrôle de version. L'un d'eux est distribué et s'appelle Git, le second est centralisé, appelé SVN (alias Subversion). Aujourd’hui, Git est le standard de facto. Travailler avec ce système est plus pratique et plus simple : il est pris en charge par tous les IDE (ainsi que SVN). Travailler avec Git peut être essayé rapidement et facilement ; heureusement, il existe de nombreuses informations sur ce sujet sur Internet. Par exemple, le manuel interactif GitHowTo, disponible en russe (parcourt très rapidement). Il est très important pour un développeur novice de maîtriser les services d'hébergement en ligne pour les systèmes de contrôle de version. Le plus souvent, elles sont basées sur Git et sont appelées plateformes Git (bien que certaines d'entre elles puissent fonctionner avec différents systèmes de contrôle de version). Le plus populaire d’entre eux est GitHub. BitBucket et GitLab sont également assez courants. Ces systèmes vous aident à stocker et à récupérer du code, et également à faire ce que Git peut faire, non pas via la ligne de commande, mais via l'interface. GitHub vous permet également de vérifier le code et de proposer des solutions aux problèmes directement sur le site. Vous pouvez également y trouver le projet open source de quelqu’un d’autre et essayer de proposer vos propres solutions pour l’améliorer. Essentiellement, GitHub est une sorte de réseau social pour les développeurs. Donc, si vous ne l'avez pas déjà fait, assurez-vous de créer un compte sur GitHub et d'y héberger vos projets. Lisez également sur GitLab et BitBucket, et si vous avez le temps, vous pouvez les essayer, ils ont des versions gratuites. À propos, toutes ces plates-formes sont entièrement intégrées aux IDE modernes. Java.  Plan d'action - 2

2. API JDK

Cette section met en évidence les API JDK qu'un développeur Java moderne doit connaître en toute confiance. Cela ne ferait pas de mal à un programmeur d’examiner de temps en temps le code source de ces bibliothèques, de les parcourir et de comprendre quand elles doivent être utilisées et pourquoi. Effet secondaire : si vous maîtrisez bien ces API, vous aurez probablement beaucoup plus de facilité à réussir votre entretien.

Cadre de collections Java

Le Java Collection Framework est l’une des API les plus importantes du langage Java et tout développeur devrait le connaître. Il représente une hiérarchie d'interfaces et d'implémentations de structures de données standard en Java telles que liste, liste chaînée, ensemble, pile, file d'attente, table de hachage et bien d'autres. Le développeur doit avoir une bonne compréhension des classes ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet et autres, et connaître leurs propriétés. En particulier, vous devez comprendre les coûts en temps et en mémoire d'une collection particulière pour les opérations standard (indexation, recherche, insertion, suppression) et, sur cette base, les appliquer correctement dans vos projets. Les collections en Java sont très bien implémentées, mais si le besoin s'en fait sentir, le développeur peut proposer sa propre implémentation. Un programmeur qui connaît bien les collections peut étendre ou redéfinir la logique dans des classes déjà écrites, ou tout implémenter à partir de zéro.

API de concurrence Java

Java a été initialement conçu pour prendre en charge la programmation parallèle et, depuis la version 5.0, le langage inclut des API de haut niveau pour les threads parallèles. Ainsi, un développeur Java compétent doit simplement avoir une bonne compréhension du multithreading et comprendre les principales API des packages java.util.concurrent.* . Au minimum, vous devez savoir et comprendre clairement ce que sont Thread, Runnable, le verrouillage d'objet et la synchronisation. Assurez-vous de comprendre les concepts d'impasse, de livelock, de conditions de concurrence et que faire de tout cela. Pour vous sentir en confiance, découvrez les synchroniseurs de java.util.concurrent.*, tels que Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture, etc. Et aussi les interfaces Callable et Future.

API d'E/S Java

Les développeurs novices ignorent souvent l'étude approfondie des E/S Java et des E/S Java non bloquantes . Mais en vain : ces API Java facilitent le travail avec les threads et sont régulièrement utilisées dans des applications réelles. Surtout les classes comme File, InputStream, OutputStream, Reader et Writer du package java.io, qui est le cœur de l'API Java IO. Java Non-blocking I/O (java.nio) est un ensemble d'interfaces de programmation d'applications conçues pour implémenter des opérations d'E/S hautes performances. Il s'agit notamment de ByteBuffer, FileChannel et Selector, entre autres. Prenez la peine de comprendre ces API, vous ne le regretterez pas.

Objet de classe d'appareil

Une fois que vous comprenez la superclasse Object, vous devenez en un sens un « locuteur natif de Java », bien mieux conscient de la structure de la POO et de nombreux processus. La classe java.lang.Object se situe tout en haut de la hiérarchie des classes. En plus d'une meilleure compréhension de ce qui se passe, connaître les méthodes de la classe rendra les entretiens beaucoup plus faciles : les enquêteurs adorent tester les candidats avec la classe Object et ses objets.

3. Nouvelles fonctionnalités de Java 8

Malgré le fait que le temps a passé depuis la sortie de Java 8 et que d'autres mises à jour numérotées sont déjà apparues, c'est la huitième version qui est devenue emblématique. Il a introduit des innovations importantes qui simplifient et, dans un certain sens, modifient les approches de programmation en Java. Vous devez comprendre comment utiliser les expressions lambda, ainsi que l'API Stream dans Java 8 et les nouvelles API de date et d'heure.

4. SQL, bases de données, JDBC

Peu de développeurs Java ne rencontrent pas de requêtes et de bases de données SQL dans leur travail. Par conséquent, il est important de comprendre ce que sont SQL et les bases de données relationnelles, comment elles fonctionnent et d'être capable d'écrire des requêtes simples pour joindre deux tables. Pour la formation, vous pouvez essayer de travailler avec l'un des SGBD, par exemple PostgreSQL ou MySQL . Ce serait également bien d'acquérir des connaissances de base sur les bases de données non relationnelles, les approches noSQL et une familiarité superficielle avec le SGBD orienté document MongoDB . Pour travailler avec des bases de données en Java pur, vous pouvez utiliser le standard JDBC ainsi que l'API du même nom. Il est implémenté en tant que package java.sql, inclus dans le JDK. Aujourd'hui, il est rarement utilisé sous sa forme pure, mais on le trouve souvent dans des applications de support plus anciennes, et des outils plus modernes et généralement acceptés sont souvent basés sur cette norme.

5. Cadres

Parmi les exigences pour un développeur Java junior, on trouve aujourd'hui de plus en plus de « connaissances de Spring, Hibernate, Spring Boot ». Apprendre ces technologies par soi-même est une tâche très difficile, mais néanmoins possible, surtout à un niveau superficiel. Une compréhension plus profonde viendra au fur et à mesure que vous travaillerez. Donc.

Cadre de printemps

De nos jours, presque toutes les applications créées en Java utilisent Spring Framework. Ce framework puissant fournit un système de coordonnées spécifique, l'épine dorsale avec laquelle l'application est construite. Une application Spring est beaucoup plus facile à tester et à maintenir. Et tout cela grâce à l’injection de dépendances.

Hiberner

Hibernate est un autre framework très important pour les développeurs Java. Il implémente la spécification JPA (Java Persistence API), qui résout les problèmes de mappage objet-relationnel (ORM). La plupart des applications Java interagissent avec les bases de données, et si nous parlons de bases de données relationnelles, travailler avec elles sans Hibernate n'est pas pratique. Ce framework offre aux développeurs un certain nombre de fonctionnalités importantes, en particulier la mise en cache et les transactions prêtes à l'emploi, ce qui leur permet de concentrer leurs efforts sur le développement de la logique d'application et libère le programmeur de nombreuses tâches de bas niveau lorsqu'il travaille avec des bases de données relationnelles. . Cela améliore considérablement la productivité des développeurs.

Printemps MVC

Ce framework garantit le développement d'applications selon le modèle Modèle - Vue - Contrôleur, en utilisant des composants prêts à l'emploi faiblement couplés. Étudiez ce modèle (les modèles de conception sont discutés ci-dessous) et la logique de Spring MVC. En pratique, il est utilisé assez souvent.

Botte de printemps

Avec les bonnes compétences, Spring facilite la création d’une application Java. À son tour, Spring Boot facilite la création d’une application Java basée sur Spring. Spring Boot vous permet de créer facilement des applications Enterprise Spring à part entière qui peuvent être lancées avec un minimum d'effort : la configuration automatique élimine la plupart des tracas associés à la configuration des applications Spring.

6. Bibliothèques et frameworks de tests

Certains futurs développeurs sont sûrs que tester le code n'est pas du tout leur préoccupation, mais celle de personnes spéciales appelées testeurs. En pratique, ce n’est pas tout à fait le cas. Les tests, en particulier les tests unitaires (le plus souvent appelés tests unitaires), sont une compétence très importante pour tout programmeur. De plus, les nouveaux arrivants qui viennent de prendre leurs fonctions sont souvent chargés de couvrir le code de quelqu’un avec des tests unitaires. Nous vous recommandons donc fortement d'apprendre la bibliothèque JUnit et de développer l'habitude d'écrire des tests unitaires pour votre code. Consultez également le framework Mockito, qui peut être utilisé avec JUnit pour créer des classes de dépendances fictives.

7. Bibliothèques de services

Java dispose d'un grand nombre de bibliothèques de services qui aident à résoudre presque tous les problèmes auxquels un développeur est confronté. Il est impossible de tous les étudier et cela ne sert à rien. Mais les parcourir est une excellente idée. Nous soulignerons ici quelques-uns de ceux qui sont très souvent utilisés dans la pratique.

Bibliothèques pour la journalisation

Tout d’abord, on peut citer log4j et Slf4j . Ces bibliothèques sont conçues pour masquer l'implémentation des opérations de journalisation de routine qui se produisent pendant l'exécution des applications Java.

Bibliothèques pour JSON

JSON, le format de transfert d'informations du client au serveur, est le format le plus couramment utilisé aujourd'hui. Il existe plusieurs bonnes bibliothèques qui fonctionnent avec JSON, les plus populaires étant Jackson et google-gson .

Google Goyave

Guava est un projet avec des bibliothèques Java de base développées par Google. Ici vous pouvez trouver de nouveaux types de collections (multimap, multiset et autres), des collections immuables, des graphiques, des fonctionnels, des utilitaires pour le parallélisme, les E/S, le hachage, le traitement des chaînes et bien plus encore.

Apache Commons

Commons est un énorme projet contenant de nombreux utilitaires Java utiles à diverses fins. Ainsi, les bibliothèques Apache Commons sous-tendent Tomcat, Hibernate et un certain nombre d'autres grands projets. Il existe de nombreuses bibliothèques dans Apache Commons. Mentionnons Commons IO, qui simplifie les opérations d'E/S, Commons CSV pour travailler avec des fichiers csv, Commons Math pour travailler avec des opérations et des calculs mathématiques et statistiques complexes, Commons CLI pour analyser les arguments de ligne de commande.

8. Clients API

REST est un style de dénomination pour les points de terminaison permettant d'accéder aux ressources sur le réseau dans un format lisible par l'homme. Il est préférable pour un développeur Java moderne de comprendre l'idéologie REST et de connaître également Spring RestTemplate , une bibliothèque très utile pour créer un client REST.

9. Modèles de conception

Si un développeur novice connaît les modèles de conception, c'est-à-dire les règles de bonnes manières en programmation Java, et sait même les appliquer dans la pratique, il augmentera instantanément sa valeur sur le marché du travail. Les débutants sous-estiment souvent les modèles car ils créent rarement des applications complexes pendant leurs études. Cependant, si les modèles ne sont pas appliqués à des projets sérieux, la maintenance et l’adaptation du code deviennent une tâche extrêmement difficile. Alors ne soyez pas paresseux, étudiez les modèles et appliquez-les dans vos projets personnels. Votre futur employeur vous en sera très reconnaissant.

10. Connaissances supplémentaires

Algorithmes et structures de données

« Algorithmes et structures de données » est le nom d'un cours complet dispensé dans les universités techniques. Il révèle la base théorique pour la construction de diverses structures de données. Et dans les cours pratiques, ils apprennent à travailler avec eux - à saisir et à récupérer des données, à les rechercher et à les trier. En fait, « algorithmes » dans cette expression signifie exactement trier et rechercher. Au fil des années, les informaticiens ont développé de nombreux algorithmes. Certains d'entre eux sont de nature pédagogique, car malgré la relative facilité de mise en œuvre, leur fonctionnement n'est pas très efficace. Par exemple, ils fonctionnent lentement, ce qui peut être visible sur de grands pools de données. Ou alors ils consomment beaucoup de mémoire. D'autres algorithmes se sont révélés très efficaces. À tel point qu’ils ont été inclus dans les bibliothèques officielles de la plupart des langages de programmation. En conséquence, il n’est pas nécessaire aujourd’hui de développer de tels algorithmes de manière indépendante. Il suffit de savoir où ils se trouvent. Et pourtant, la plupart des développeurs expérimentés recommandent aux débutants de suivre une « école d’algorithmes », c’est-à-dire de les mettre en œuvre par eux-mêmes tout en étudiant. Cela développe la réflexion du programmeur. Cela facilite également les entretiens : ils aiment vraiment poser des problèmes de tri et de recherche.

Servlets

Un servlet est un moyen de gérer une requête utilisateur. Aujourd'hui, ils ne sont pas utilisés partout ni toujours, mais il sera utile de s'en faire une idée.

HTML et CSS

Tout le monde devrait connaître les bases de la mise en page. Ces connaissances sont assez faciles à acquérir, et si vous ne l’avez pas encore fait, consacrez quelques jours à cette activité. En même temps, vous ferez une pause dans des sujets plus complexes.

XML

Le langage de balisage extensible était omniprésent dans le développement Java. Il est progressivement remplacé par JSON, mais XML est toujours utilisé aujourd'hui. Ce n'est pas difficile à apprendre, vous pouvez donc accorder un peu d'attention à cette langue.

Javascript

Des enquêtes auprès des développeurs montrent que même ceux qui n'ont absolument rien à voir avec le développement front-end écrivent de temps en temps des scripts en JavaScript. Connaître les bases de ce langage peut être considéré comme une règle de bonnes manières, alors ne soyez pas paresseux, lisez-le et créez une douzaine ou deux de scripts. Ce ne sera pas redondant.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION