Crier Java au cœur des technologies-Thèmes et technologies élémentaires que les ingénieurs Java devraient poursuivre en 2017-

Java était autrefois le centre de la technologie

Je suis architecte de développement système et PM chez SIer. Java est toujours le courant dominant dans SI, mais je me rends compte que le moment est venu où vous ne pouvez pas jouer un rôle actif simplement en comprenant la grammaire et le codage. Mon patron m'a expliqué en utilisant l'expression unique ** "Technical Whirlpool" **, mais de 2000 à 2006, écrire Java signifie implémenter diverses dernières technologies. C'était une époque où je pouvais apprendre. Il y a beaucoup de choses telles que le serveur d'application, XML, SOAP, MQ, CORBA, multi-thread, etc. qui ne sont pas bonnes pour une évaluation moderne, mais comme il y avait beaucoup de défis techniques de ce type, les ingénieurs Java n'ont pas osé sortir et l'informatique principale J'ai pu apprendre la technique.

Changements d'horaires et leur suivi

Cependant, depuis l'avènement du Web 2.0 et de l'iPhone / Android, le vortex de la technologie s'est déplacé vers les applications via le front-end. Et récemment, j'ai l'impression que nous nous dirigeons vers le cloud, l'IA, la blockchain et le traitement réactif et distribué qui les prend en charge en tant que technologies. Chez Qiita, vous verrez souvent des ingénieurs front-end écrire d'excellents articles techniquement stimulants et devenir un pilier de tout le monde. Je descends vraiment. En regardant un tel article, "Je dois contester le développement MVVM avec React et Angular ..." "Je dois écrire ES2015 (ES6) ou TypeScript en utilisant Visual Studio Code, pas en JavaScript que je connais depuis longtemps." "Kotlin et Scala sont similaires à Java, alors essayons de les écrire."

Vous pensez peut-être.

Cependant, ** les ingénieurs Java appartenant au SIer qui n'ont généralement pas beaucoup d'opportunités d'écrire des programmes, il peut être judicieux de le laisser là. ** Il est assez difficile de rattraper ce retard dans ce domaine à partir de maintenant. De plus, la région évolue trop rapidement, et même si vous étudiez maintenant chez les tout-petits, au moment où vous vous en souvenez, les jeunes diront simplement: «C'est vrai».

Écrivez Java au cœur de la technologie

Heureusement, Java est toujours un langage majeur. Bien qu'il soit dit que Kotlin, Scala, etc., Fin de la mise à jour publique d'Oracle Java SDK etc. ont été annoncés maintenant. Il faut dire que les langages qui ont bénéficié de l'interopérabilité avec Java sont devenus plus instables dans le monde de l'entreprise.

Pourquoi ne pas sauter dans le vortex technologique le plus vigoureux maintenant sans abandonner Java au lieu du vortex technologique où la vitesse du vent a commencé à s'affaiblir? Certaines personnes disent que la langue n'est qu'un moyen, mais je ne pense pas qu'il y ait beaucoup de super ingénieurs qui peuvent parler n'importe quelle langue. Passons à un nouveau domaine avec les actifs que vous possédez déjà.

Maintenant, afin de défier certains candidats de tourbillon technologiques avec Java que j'ai maintenant, je vais aborder les thèmes principaux et les technologies nécessaires. Enfin, en résumé, j'ai brièvement décrit comment acquérir les compétences nécessaires, bien que ce soit mon expérience personnelle.

Blockchain

On dit que la blockchain a un traitement lent des transactions et qu'il n'y a pas encore de solution pratique, mais c'est un domaine qui continue de croître en impliquant les dernières technologies. Même si j'entre ici à partir de maintenant, ce sera toujours dans le temps.

Blockchain et Java

Je laisserai l'explication de la blockchain elle-même à un blog spécialisé, mais en tant qu'ingénieur Java, je pense qu'il est bon d'apprendre d'abord à travers les trois bibliothèques suivantes pour Java. Cependant, du point de vue de l'entreprise, BitCoinJ a des bogues de sécurité qui restent ouverts et des problèmes d'évolutivité en termes de performances, je recommande donc personnellement de l'exclure, sauf si vous voulez vraiment comprendre BitCoin. J'y pense.

  1. Web3J
  2. HyperLedger Fabric
  3. BitcoinJ

Et si vous essayez de développer une application à l'aide de ces bibliothèques, vous constaterez que les principales technologies suivantes sont inévitables.

Nuage

Je me demande quoi écrire maintenant, mais étonnamment SIer a expérimenté EC2 / RDS / S3 et d'autres projets qui ** élèvent ** le système actuel vers le cloud, mais le ** transfèrent **. Je pense que c'est souvent inexpérimenté. Ici, nous ciblons le champ dit natif du cloud.

Cloud et Java

Je dois dire que Java est clairement inférieur dans les projets cloud natifs à ce stade. Il est souvent livré avec des frontaux qui sont bons en JavaScript, et lors de l'utilisation d'AWS Lambda, je pense que Node.js et Python sont souvent adoptés à la place de Java. Cependant, AWS Lambda et Azure Functions peuvent être implémentés en Java. De plus, le langage à typage statique a l'avantage d'être plus facile à utiliser avec SI. Il y a une opinion que Java va baisser en termes de performances, mais je pense qu'il y a une contre-mesure. De plus, non seulement les applications fonctionnelles, mais également les applications Web peuvent être facilement configurées de manière native dans le cloud à l'aide de Docker. Dans de telles circonstances, je pense que les technologies majeures suivantes sont inévitables pour devenir un ingénieur Java cloud natif.

Comment tenir la technologie élémentaire

J'ai pris la blockchain et le cloud comme exemples, mais vous pouvez penser que vous ne pouvez même pas modifier l'exemple d'application sans un peu de compréhension de Docker, de la programmation réactive et fonctionnelle, des flux, etc.

Avec l'avènement de Java 8 et Rx Java 2, les tendances récentes peuvent également être implémentées en Java, mais elles apportent à Java une architecture qui existe déjà dans d'autres langages. Bien que cela garantisse que la conception est correcte, cela peut être un obstacle pour les ingénieurs n'ayant aucune base technique pour y travailler. J'ai souvent déjà parlé dans une autre langue, et j'ai également senti qu'il n'y avait pas beaucoup de livres pour Java qui expliquent cette partie de manière facile à comprendre. Dans ce cas, lire un livre sur le terrain dans une autre langue est un détour, mais cela peut aussi conduire à une compréhension plus approfondie.

Voici quelques livres, chacun avec une petite quantité, que j'ai appris et compris. Cela peut être "poulet et oeuf", mais même si vous apprenez uniquement RxJava et la programmation fonctionnelle, on vous demandera peut-être "à quoi devriez-vous l'utiliser?", Donc dans le contexte de la blockchain et du cloud, voici ce qui suit Je pense que c'est une façon de l'apprendre sans frustration.

Maintenir les connaissances Java 8

Programmation pratique Java SE 8 que les programmeurs Java veulent apprendre Après tout, une bonne compréhension de Java 8 est importante. Si vous êtes préoccupé par les expressions lambda et les flux et que vous souhaitez les comprendre, veuillez les lire environ 3 fois lors de l'écriture d'un programme.

Qiita: Écrivez du code de type Java8 en Java8 Il est important qu'il ressemble à Java8. La plupart des bibliothèques sont déjà Java 8-ish.

Comprendre la programmation fonctionnelle

Programmation fonctionnelle apprise avec JavaScript Apprenez les bases de la programmation fonctionnelle à l'aide de JavaScript Dans une certaine mesure, il est décrit dans le premier livre Java, mais je pense que vous pouvez comprendre la puissance de la programmation fonctionnelle en lisant les deux livres ci-dessus. Si vous essayez de comprendre uniquement avec Java, il sera difficile pour de nombreuses personnes de comprendre pourquoi vous utilisez des types fonctionnels. De plus, en tant que sous-produit, vous serez en mesure de comprendre la signification de JavaScript, qui était difficile à lire car il était plein de parenthèses.

Comprendre l'architecture

Mystery of Agile Software Development 2nd Edition L'essence du développement orienté objet et de l'artisanat Les bibliothèques telles que la blockchain utilisent les principes et les modèles de conception SOLID, et il est nécessaire de comprendre ce domaine afin de comprendre le mouvement global.

Développement piloté par les tests (nouvelle traduction) Je suis gêné de penser que "le développement piloté par les tests ne peut pas être fait avec SI!" Ce livre n'est pas un manuel basé sur les principes du TDD. Vous remarquerez que le code de test affine le code de production réel. Le chapitre 1 est Java, alors essayez de le copier. Vous pouvez voir des traces d'améliorations du code, par exemple ne pas savoir pourquoi le code produit a été créé de cette façon.

Programmation réactive RxJava Le réactif est souvent utilisé dans les architectures modernes. Ce livre est basé sur RxJava2 et devrait convenir en 2017. WebFlux est adopté comme implémentation réactive dans Spring5, mais comme la spécification est conforme aux mêmes flux réactifs que RxJava2, je pense que la compréhension de ce document sera suffisamment utile pour utiliser WebFlux.

Comprendre le cloud natif

Techniques de développement d'applications natives Amazon Web Services Cloud: acquérir les connaissances et technologies les plus importantes Le cloud évolue constamment, donc je pense qu'il est bon que les informations sur le site Web soient fraîches. Cependant, je saute souvent les bases, donc je pense que c'est un raccourci pour lire ce livre et apprendre les bases des natifs du cloud. Faites attention de ne pas être un oncle Lambda qui ne fabrique que AWS Lambda.

fin

Par tous les moyens, veuillez relever le défi avec Java au centre de la nouvelle technologie, et pas seulement le Web conventionnel uniquement Servlet tel que JavaEE7 et Spring4. Je pense que vous pouvez éprouver la difficulté et le plaisir dans une partie beaucoup plus essentielle que d'essayer le frontal et Scala.

Recommended Posts

Crier Java au cœur des technologies-Thèmes et technologies élémentaires que les ingénieurs Java devraient poursuivre en 2017-
Ceci et cela de la mise en œuvre du jugement en temps réel des dates en Java
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
Implémentons la condition que la circonférence et l'intérieur de la forme Ougi soient inclus dans Java [Partie 2]
Implémentons la condition que la circonférence et l'intérieur de la forme Ougi soient inclus dans Java [Partie 1]
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Ceci et cela de JDK
Une collection de phrases qui impressionne le "sentiment différent" de Java et de JavaScript
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Trouvez le maximum et le minimum des cinq nombres saisis en Java
Revue des connaissances «étranges Java» et Java souvent oubliées dans Java Bronze
Obtenez le résultat de POST en Java
L'histoire de l'écriture de Java dans Emacs
Discrimination d'énum dans Java 7 et supérieur
J'ai reçu les données du voyage (application agenda) en Java et j'ai essayé de les visualiser # 001
[Java] Où est la classe d'implémentation de l'annotation qui existe dans BeanValidation?
Code pour supprimer tous les fichiers du préfixe spécifié dans AWS S3 (Java)
[Java] Que faire si le contenu enregistré dans la base de données et le nom de l’énumération sont différents dans l’énumération qui reflète la définition de la base de données
Concernant les modificateurs transitoires et la sérialisation en Java
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
À propos de l'idée des classes anonymes en Java
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
[Java] La partie déroutante de String et StringBuilder
J'ai comparé les caractéristiques de Java et .NET
Ressentez le passage du temps même à Java
Importer des fichiers de la même hiérarchie en Java
[Android 9.0 Pie Java] Implémentez setOnTouchListener dans la marge de RecyclerView et fermez le clavier virtuel
Journaux d'erreurs et gestion des exceptions qui sont souvent vus dans la zone Java
Trouvez les valeurs maximum et minimum parmi les 5 nombres saisis en Java (correction ver)
L'histoire selon laquelle la méthode d'initialisation de variable appelée par le constructeur Java ne doit pas être remplacée