Rufen Sie Java im Zentrum von Technologiethemen und Elementartechnologien, die Java-Ingenieure 2017 verfolgen sollten.

Java war einst das Zentrum der Technologie

Ich bin Systementwicklungsarchitekt und PM bei SIer. Java ist immer noch der Mainstream in SI, aber mir ist klar, dass die Zeit gekommen ist, in der man keine aktive Rolle spielen kann, wenn man nur die Grammatik und die Codierung versteht. Mein Chef erklärte mit dem einzigartigen Ausdruck ** "Technical Whirlpool" **, aber von 2000 bis 2006 bedeutet das Schreiben von Java die Implementierung verschiedener neuester Technologien. Es war eine Ära, in der ich lernen konnte. Es gibt viele Dinge wie Anwendungsserver, XML, SOAP, MQ, CORBA, Multithread usw., die für eine moderne Evaluierung nicht gut sind, aber da es viele solche technischen Herausforderungen gab, trauten sich die Java-Ingenieure nicht, die Haupt-IT zu verlassen Ich konnte die Technik lernen.

Änderungen in der Zeit und deren Weiterverfolgung

Seit dem Aufkommen von Web 2.0 und iPhone / Android hat sich der Wirbel der Technologie jedoch über das Front-End auf Apps verlagert. Und in letzter Zeit habe ich das Gefühl, dass wir auf Cloud, KI, Blockchain und reaktive und verteilte Verarbeitung umsteigen, die sie als Technologien unterstützen. Bei Qiita werden Sie oft sehen, wie Front-End-Ingenieure großartige, technisch anspruchsvolle Beiträge schreiben und zu einer Säule aller werden. Ich komme wirklich runter. Wenn man sich einen solchen Artikel ansieht, "Ich muss die MVVM-Entwicklung mit React and Angular herausfordern ..." "Ich muss ES2015 (ES6) oder TypeScript mit Visual Studio Code schreiben, nicht mit JavaScript, das ich seit langem kenne." "Kotlin und Scala ähneln Java, also versuchen wir, sie zu schreiben."

Sie denken vielleicht.

** Java-Ingenieure von SIer, die normalerweise nicht viel Gelegenheit haben, Programme zu schreiben, können jedoch eine gute Idee sein, sie dort zu belassen. ** Es ist von nun an ziemlich schwer, in diesem Bereich aufzuholen. Darüber hinaus entwickelt sich das Gebiet zu schnell, und selbst wenn Sie jetzt von Kleinkindern lernen, werden junge Leute, wenn Sie sich daran erinnern, einfach sagen: "Das ist richtig."

Schreiben Sie Java im Herzen der Technologie

Glücklicherweise ist Java immer noch eine wichtige Sprache. Obwohl gesagt wird, dass Kotlin, Scala usw. Ende des öffentlichen Updates des Oracle Java SDK usw. jetzt angekündigt wurden. Es muss gesagt werden, dass Sprachen, die von der Interoperabilität mit Java profitiert haben, in der Unternehmenswelt instabiler geworden sind.

Warum springen Sie jetzt nicht in den stärksten Technologiewirbel, ohne Java aufzugeben, anstatt in den Technologiewirbel, in dem die Windgeschwindigkeit allmählich nachlässt? Einige Leute sagen, dass Sprache nur ein Mittel ist, aber ich glaube nicht, dass es viele Superingenieure gibt, die jede Sprache sprechen können. Lassen Sie uns mit den bereits vorhandenen Assets in ein neues Feld springen.

Um einige Technologie-Whirlpool-Kandidaten mit Java herauszufordern, die ich jetzt habe, werde ich die Hauptthemen und notwendigen Technologien ansprechen. Abschließend habe ich kurz beschrieben, wie man die notwendigen Fähigkeiten erlernt, obwohl dies meine persönliche Erfahrung ist.

Blockchain

Es wird gesagt, dass Blockchain langsame Verarbeitungstransaktionen hat und es noch keine praktische Lösung gibt, aber es ist ein Bereich, der durch die Verwendung der neuesten Technologie weiter wächst. Auch wenn ich von nun an hier eintrete, wird es immer noch pünktlich sein.

Blockchain und Java

Ich werde die Erklärung der Blockchain selbst einem spezialisierten Blog überlassen, aber als Java-Ingenieur denke ich, dass es gut ist, zuerst die folgenden drei Bibliotheken für Java zu lernen. Aus Unternehmenssicht weist BitCoinJ jedoch Sicherheitslücken auf, die offen bleiben, und Skalierbarkeitsprobleme in Bezug auf die Leistung. Ich persönlich empfehle daher, diese auszuschließen, es sei denn, Sie möchten BitCoin wirklich verstehen. Ich denke darüber nach.

  1. Web3J
  2. HyperLedger Fabric
  3. BitcoinJ

Wenn Sie versuchen, eine Anwendung mit diesen Bibliotheken zu entwickeln, werden Sie feststellen, dass die folgenden Haupttechnologien unvermeidlich sind.

Wolke

Ich frage mich, was ich jetzt schreiben soll, aber überraschenderweise hat SIer EC2 / RDS / S3 und andere Projekte erlebt, die das aktuelle System in die Cloud heben, aber verschieben. Ich denke das ist oft unerfahren. Hier zielen wir auf das sogenannte Cloud-native Feld.

Cloud und Java

Ich muss sagen, dass Java in Cloud-nativen Projekten zu diesem Zeitpunkt eindeutig unterlegen ist. Es kommt oft mit Frontends, die gut mit JavaScript umgehen können, und bei Verwendung von AWS Lambda denke ich, dass Node.js und Python häufig anstelle von Java übernommen werden. Es können jedoch sowohl AWS Lambda- als auch Azure-Funktionen in Java implementiert werden. Die statisch typisierte Sprache hat außerdem den Vorteil, dass sie mit SI einfacher zu verwenden ist. Es gibt eine Meinung, dass Java in Bezug auf die Leistung sinken wird, aber ich denke, es gibt eine Gegenmaßnahme. Darüber hinaus können nicht nur funktionale Anwendungen, sondern auch Webanwendungen mithilfe von Docker problemlos in der Cloud konfiguriert werden. Unter solchen Umständen denke ich, dass die folgenden wichtigen Technologien unvermeidlich sind, um ein Cloud-nativer Java-Ingenieur zu werden.

Wie man Elementartechnologie hält

Ich habe Blockchain und Cloud als Beispiele genommen, aber Sie haben möglicherweise das Gefühl, dass Sie die Beispielanwendung nicht einmal ändern können, ohne ein wenig Verständnis für Docker, reaktive, funktionale Programmierung, Streams und mehr zu haben.

Mit dem Aufkommen von Java 8 und Rx Java 2 können aktuelle Trends auch in Java implementiert werden, aber sie bringen eine Architektur nach Java, die bereits in anderen Sprachen existiert. Dies stellt zwar sicher, dass das Design korrekt ist, kann jedoch ein Hindernis für Ingenieure ohne technische Basis sein, daran zu arbeiten. Ich habe oft schon in einer anderen Sprache gesprochen und ich hatte auch das Gefühl, dass es nicht viele Bücher für Java gibt, die diesen Teil auf leicht verständliche Weise erklären. In diesem Fall ist das Lesen eines Feldbuchs in einer anderen Sprache ein Umweg, kann aber auch zu einem tieferen Verständnis führen.

Im Folgenden sind einige Bücher mit jeweils einer kleinen Menge aufgeführt, die ich gelernt und verstanden habe. Es kann "Huhn und Ei" sein, aber selbst wenn Sie nur RxJava und funktionale Programmierung lernen, werden Sie möglicherweise gefragt, "wofür sollten Sie es verwenden?". Im Zusammenhang mit Blockchain und Cloud also das Folgende Ich denke, es ist eine Möglichkeit, es ohne Frustration zu lernen.

Behalten Sie Java 8-Kenntnisse bei

Java SE 8 Praktische Programmierung, die Java-Programmierer lernen möchten Schließlich ist ein korrektes Verständnis von Java 8 wichtig. Wenn Sie sich Sorgen über Lambda-Ausdrücke und -Streams machen und diese verstehen möchten, lesen Sie sie bitte etwa dreimal, während Sie ein Programm schreiben.

Qiita: Schreiben Sie Java8-ähnlichen Code in Java8 Es ist wichtig, dass es wie Java8 aussieht. Die meisten Bibliotheken sind bereits Java 8-ish.

Funktionsprogrammierung verstehen

Mit JavaScript erlernte funktionale Programmierung Lernen Sie die Grundlagen der funktionalen Programmierung mit JavaScript Bis zu einem gewissen Grad wird es im ersten Java-Buch beschrieben, aber ich denke, dass Sie die Leistungsfähigkeit der funktionalen Programmierung verstehen können, indem Sie die beiden oben genannten Bücher lesen. Wenn Sie versuchen, nur mit Java zu verstehen, wird es für viele Menschen schwierig sein zu verstehen, warum Sie Funktionstypen verwenden. Darüber hinaus können Sie als Nebenprodukt die Bedeutung von JavaScript verstehen, das schwer zu lesen war, weil es voller Klammern stand.

Verstehe die Architektur

Geheimnis der agilen Softwareentwicklung 2. Auflage Die Essenz objektorientierter Entwicklung und Handwerkskunst Bibliotheken wie Blockchain verwenden SOLID-Prinzipien und Entwurfsmuster, und es ist notwendig, diesen Bereich zu verstehen, um die Gesamtbewegung zu verstehen.

Testgetriebene Entwicklung (neue Übersetzung) Es ist mir peinlich zu denken, dass "testgetriebene Entwicklung mit SI nicht möglich ist!" Dieses Buch ist kein Lehrbuch mit TDD-Prinzipien. Sie werden feststellen, dass der Testcode den tatsächlichen Produktionscode verfeinert. Kapitel 1 ist Java. Bitte versuchen Sie es zu kopieren. Möglicherweise sehen Sie Spuren von Codeverbesserungen, z. B. wenn Sie nicht wissen, warum der Produktcode auf diese Weise erstellt wurde.

RxJava Reactive Programming Reaktiv wird häufig in modernen Architekturen verwendet. Dieses Buch basiert auf RxJava2 und sollte 2017 in Ordnung sein. WebFlux wird in Spring5 als reaktive Implementierung übernommen. Da die Spezifikation jedoch denselben reaktiven Streams wie RxJava2 entspricht, ist das Verständnis dieses Dokuments meines Erachtens für die Verwendung von WebFlux hilfreich genug.

Cloud native verstehen

Entwicklungstechniken für native Cloud-Anwendungen von Amazon Web Services: Erwerben Sie die wichtigsten Kenntnisse und Technologien Die Cloud entwickelt sich ständig weiter, daher finde ich es gut, dass die Informationen auf der Website aktuell sind. Ich überspringe jedoch oft die Grundlagen, daher denke ich, dass es eine Abkürzung ist, dieses Buch zu lesen und die Grundlagen von Cloud Natives zu lernen. Seien Sie vorsichtig, kein Onkel Lambda zu sein, der immer nur AWS Lambda herstellt.

Ende

Fordern Sie auf jeden Fall Java im Zentrum der neuen Technologie heraus, nicht nur das herkömmliche Nur-Servlet-Web wie JavaEE7 und Spring4. Ich denke, Sie können die Schwierigkeit und den Spaß in einem viel wichtigeren Teil erleben, als das Frontend und die Scala auszuprobieren.

Recommended Posts

Rufen Sie Java im Zentrum von Technologiethemen und Elementartechnologien, die Java-Ingenieure 2017 verfolgen sollten.
Dies und das der Implementierung der zeitlichen Beurteilung von Daten in Java
Ein Programm (Java), das die Summe von ungeraden und geraden Zahlen in einem Array ausgibt
Implementieren wir die Bedingung, dass der Umfang und das Innere der Ougi-Form in Java enthalten sind [Teil 2]
Implementieren wir die Bedingung, dass der Umfang und das Innere der Ougi-Form in Java enthalten sind [Teil 1]
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
Dies und das von JDK
Eine Sammlung von Phrasen, die das "unterschiedliche Gefühl" von Java und JavaScript beeindruckt
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
Finden Sie das Maximum und Minimum der fünf in Java eingegebenen Zahlen
Überprüfung von "seltsamem Java" und Java-Wissen, das in Java Bronze oft vergessen wird
Holen Sie sich das Ergebnis von POST in Java
Die Geschichte des Schreibens von Java in Emacs
Diskriminierung von Enum in Java 7 und höher
Ich habe die Daten der Reise (Tagebuchanwendung) in Java erhalten und versucht, sie # 001 zu visualisieren
[Java] Wo befindet sich die Implementierungsklasse der Annotation, die in BeanValidation vorhanden ist?
Code zum Löschen aller Dateien mit dem angegebenen Präfix in AWS S3 (Java)
[Java] Was tun, wenn sich der in der Datenbank gespeicherte Inhalt und der Name der Aufzählung in der Aufzählung unterscheiden, die die Definition der Datenbank widerspiegelt?
In Bezug auf transiente Modifikatoren und Serialisierung in Java
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Über die Idee anonymer Klassen in Java
Die Geschichte des Lernens von Java in der ersten Programmierung
Messen Sie die Größe eines Ordners mit Java
[Java] Der verwirrende Teil von String und StringBuilder
Ich habe die Eigenschaften von Java und .NET verglichen
Spüren Sie den Lauf der Zeit auch in Java
Importieren Sie Dateien derselben Hierarchie in Java
[Android 9.0 Pie Java] Implementieren Sie setOnTouchListener am Rand von RecyclerView und schließen Sie die Softtastatur
Fehlerprotokolle und Ausnahmebehandlung, die häufig im Java-Bereich angezeigt werden
Finden Sie die Maximal- und Minimalwerte aus den 5 in Java eingegebenen Zahlen (Korrektur ver)
Die Geschichte, dass die vom Java-Konstruktor aufgerufene Methode zur Variableninitialisierung nicht überschrieben werden sollte