Was Java-Ingenieure benötigen, um sich auf die Java 11-Version vorzubereiten

~~ Für Ingenieure, die den verrückten Entwicklungsstil nicht überwinden konnten ~~

Bereiten Sie das Upgrade der JDK-Version vor

Der JDK-Feature-Release-Zyklus ist jetzt ein 6-Monats-Zyklus. Sofern Sie nicht über eine LTS-Version oder kostenpflichtigen Support verfügen, wird der Support für die vorherige Version durch eine neue Version beendet. Es ist leicht vorstellbar, dass eine neue Version des JDK mitten in einer langen Entwicklungsspanne veröffentlicht wird und im Voraus in Betracht gezogen werden sollte. Es ist möglich, während des Entwicklungszeitraums mit einer festen Version mit der Entwicklung fortzufahren, es muss jedoch zum Zeitpunkt der Veröffentlichung der entwickelten Software und der C / O des Systems die neueste JDK-Version sein. Daher ist es wichtig, eine Entwicklungsinfrastruktur zu entwickeln, mit der Regressionstests zyklisch durchgeführt werden können.

Wenn es um Java 11 geht, können APIs entfernt werden, die zuvor als veraltet markiert waren, aber noch verfügbar waren. Es ist auch notwendig, die Auswirkungen dieser Änderungen schnell nachholen zu können.

Erstellen Sie mit Java 9 und prognostizieren Sie die Auswirkungen bei der Migration auf Java 11 (hinzugefügt am 21. Mai 2018).

Ab Java 9 gab es Änderungen wie Project Jigsaw, bereits gelöschte APIs und interne Implementierungsklassen, auf die bisher verwiesen werden konnte Es gibt Änderungen, z. B. dass Sie nicht darauf verweisen können. Bereiten wir uns auf den Übergang zu Java 11 vor, indem wir den Vorgang mit Java 9 zu dem Zeitpunkt erstellen und überprüfen, zu dem Java 9 verfügbar ist. Es hat weniger Auswirkungen bei der Migration auf Java 11.

Erfordert das Entfernen der API in Java 11

Zu den Java 11-Änderungen gehört JEP 320, mit dem in Java 9 veraltete Java EE, CORBA usw. entfernt werden. Wenn Sie eine Migration von Java 8 in Betracht ziehen, müssen Sie diese alternativen externen Bibliotheken neu schreiben. In Java EE wird es an Jakarta EE übertragen, sodass wir Maßnahmen ergreifen, z. B. den Paketnamen nach Bedarf neu schreiben.

Zu entfernende Pakete

--java.xml.ws (JAX-WS, verwandte Technologie SAAJ und Webdienst-Metadaten)

Bereiten Sie das Versions-Upgrade abhängiger Bibliotheken vor

Gleichzeitig muss das Versions-Upgrade der abhängigen externen Bibliothek vorbereitet werden. Es ist natürlich, sich auf die Veröffentlichung von Sicherheitspatches vorzubereiten, aber es ist leicht vorstellbar, dass diese externen Bibliotheken aktualisiert werden, wenn das JDK aktualisiert wird. Auch hier müssen Regressionstests einfach durchgeführt werden.

Verwenden Sie den Paket-Manager und erstellen Sie Tools wie Maven und Gradle mit diesen Funktionen für versionierte Bibliotheken.

Keine Kosten für Regressionstests

Es ist nicht mehr veraltet, Testfälle einzeln mit menschlichen Händen zu verdauen. Die einzige Möglichkeit, Regressionstests zyklisch und einfach durchzuführen, besteht darin, sie zu automatisieren. Es ist nicht realistisch, den gesamten Quellcode zu erstellen und den gesamten Testcode auf dem Entwicklungsarbeits-PC auszuführen. Bereiten Sie daher einen dedizierten Server vor.

Es kostet jedoch mehr, die Abdeckung zu messen und wiederverwendbaren Testcode zu schreiben, um die Qualität sicherzustellen. (Muss niemals TDD oder Test-First sein.) Verwenden Sie beim Testen von Code, der sich auf die Datenbank usw. auswirkt, einen Schein- oder Testcode, der am Ende des Tests ordnungsgemäß bereinigt werden kann.

Es gibt einige Teile, die bei der Systementwicklung mit Bildschirmen schwer zu automatisieren sind. Um "den Einfluss des Versions-Upgrades von JDK und abhängigen Bibliotheken schnell nachzuholen", wäre es hier gut, wenn "es funktioniert wie gewohnt" getestet werden kann.

Verwendung von CI-Tools (Continuous Integration)

Führen Sie CI-Tools wie Jenkins und Travis CI ein, um die Erstellung von Quellcode, die Ausführung von Testcode und mehr zu automatisieren. Stellen Sie den Build ein, sobald die Änderungen des Quellcodes berücksichtigt werden. Es wird hinter den Kulissen der Entwicklungsarbeit durchgeführt, z. B. statische Inspektion durchführen, Testcode ausführen und Abdeckung messen.

Durch die gute Nutzung von Virtualisierungstechnologien wie Cloud (IaaS, PaaS, SaaS usw.), SDI (Software Defined Infrastructure) und Docker ist es außerdem möglich, schnell eine Verifizierungsumgebung zu erstellen, die Änderungen der Entwicklungsressourcen widerspiegelt. ist.

Wenn Sie immer noch SVN verwenden, wechseln Sie zu Git

Ich denke nicht, dass es heutzutage möglich ist, dass wir die Version der Entwicklungsressourcen nicht verwalten. Was Sie mit SVN nicht machen konnten, können Sie mit Git machen. Was Sie mit SVN tun können, ist mit Git bequemer. Es ist leicht vorstellbar, dass das Versionsmanagement und das Revisionsmanagement kompliziert sein werden. Beginnen Sie sofort mit Git-Servern mit Pull-Request-Funktionen wie GitHub und GitBucket. Insbesondere, wenn das Konfigurationsmanagement nicht streng ist.

Januar 2019 Gegen Ende des offiziellen Updates von Oracle JDK 8

Wählen Sie eine der folgenden Optionen:

Warten wir gespannt auf die Veröffentlichung von Java11! (Hinzugefügt am 08.09.2018)

Gemäß dem Zeitplan in hier wird die allgemeine Verwendung am 25. September verfügbar sein. Es kommt gleich ... Bereiten wir ein perfektes System vor und warten gespannt.

Es scheint, dass eine Release Candidate-Version im Updates-Repository von Fedora 27 bereitgestellt wird.

Recommended Posts

Was Java-Ingenieure benötigen, um sich auf die Java 11-Version vorzubereiten
Einführung in Java zum ersten Mal # 2
Über das Verfahren, damit Java funktioniert
Was ist der flüchtige Modifikator für Java-Variablen?
Erste Schritte mit Groovy für problematische Java-Ingenieure
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Wofür ist der Konstruktor?
Eingabe in die Java-Konsole
Tipps rund um das Beispiel, um Lambda von Java auf CodePipeline freizugeben
Ein Memorandum, um den juckenden Ort für Java Gold zu erreichen
Wiedereinführung in Java for Humanities 0: Den Akt der Programmierung verstehen
C # Spickzettel für Java-Techniker
[java8] Um die Stream-API zu verstehen
Willkommen im Sumpf der Java-Bibliotheken! !!
Was benötigen Sie am Ende, um eine Web-App mit Java zu erstellen? Erklären Sie den Mechanismus und was zum Lernen notwendig ist
Was wählen Java-Ingenieure für das "automatische Testen" ihrer Browser? Selen? Selenid? Geb?
kotlin & Java: So blenden Sie die Symbolleiste nur für bestimmte Fragmente aus
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Überlegen Sie, was Sie mit der Ausbildung von SIer für junge Entwicklungsingenieure tun sollen (Teil 3).
Es fühlt sich gut an, unterschiedliche Klassen für dieselben Tabellenwerte zu haben
Was ist CHECKSTYLE: OFF in der Java-Quelle? Checkstyle zu wissen von
[Java] Verwendung der File-Klasse
Erste Schritte mit Ruby für Java-Ingenieure
Java-Referenz zum Verständnis in der Abbildung
Java SE8 Silber ~ Der Weg zum Pass ~
Lernen Sie aus "Na und", den Grundlagen von Java [für Anfänger]
Über das neue Release-Modell von Java @ Seki Java (20.07.2018)
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
Java Programming Style Guide für die Java 11-Ära
Was ist das beste Lesen von Dateien (Java)
Bereiten Sie die Sicherheitsüberprüfungsumgebung für Rails 6 vor
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
[Java] So erhalten Sie das aktuelle Verzeichnis
Was ist die Hauptmethode in Java?
Was sind die aktualisierten Funktionen von Java 13
So erhalten Sie das Datum mit Java
Ausgabe des Buches "Einführung in Java"
Zum ersten Mal Java lernen [Einführung]
[Verarbeitung × Java] Verwendung der Funktion
Ich ging zum Java Women's Club # 1
[Java] Färben Sie die Standardausgabe an das Terminal
[Java] Verwendung der Calendar-Klasse
Memo für die Migration von Java nach Kotlin
Java vs. JavaScript: Was ist der Unterschied?
Worauf habe ich mich vorbereitet, als ich während der Entwicklung des Web mit Java in ein Android-Anwendungsentwicklungsprojekt eingetreten bin?
Java-Ingenieure im Vergleich zum Erlernen der grundlegenden Grammatik von Ruby jetzt Teil 1 (Basic, Variablen)
Was tun, wenn Sie Java für OS X unter macOS installiert haben?
Eine Möglichkeit für Java / Scala-Entwickler, ihre Karriere als Dateningenieure voranzutreiben.
Ich möchte, dass Sie Scala vorerst als besseres Java verwenden
Was ist ... (3 Punkte) in der Java-Quelle gefunden? Argument mit variabler Länge, von dem man wissen muss
[Java] So testen Sie, ob es in JUnit null ist
Überprüfen Sie die für den laufenden Java-Prozess festgelegten Optionen
Was den Java-Shop überraschte, als er PHP schrieb
[Java] Was soll ich zum Schreiben von Dateien verwenden?
ChatWork4j für die Verwendung der ChatWork-API in Java
Was ist das Java Servlet / JSP MVC-Modell?