JavaRush /Java-Blog /Random-DE /Java. Aktionsplan

Java. Aktionsplan

Veröffentlicht in der Gruppe Random-DE
Java.  Aktionsplan – 1

Inhalt:

  1. Abschnitt Null – Java Core
  2. Werkzeuge
  3. JDK-API
  4. Was ist neu in Java 8?
  5. SQL, Datenbanken, JDBC
  6. Rahmenwerke
  7. Bibliotheken und Frameworks zum Testen
  8. Servicebibliotheken
  9. API-Clients
  10. Designmuster
  11. Zusätzliches Wissen
Was sollte ein potenzieller Java-Junior wissen, um einen ersten Job zu bekommen oder sich zumindest für eine Trainee-Stelle in einem guten Unternehmen zu bewerben? Welche Tools helfen einem Java-Programmierer, das nächste Level zu erreichen? Welche Technologien sollten Sie studieren und welche für später aufheben? Auf diese Fragen gibt es keine einheitliche Antwort, ebenso wenig wie es einen einheitlichen Aktionsplan gibt, der für jeden passt. Einige Unternehmen streben nach Entwicklung, führen ständig neue Technologien ein und testen die Fähigkeiten neuer Versionen der Sprache, während andere hartnäckig an den alten festhalten. Es gibt auch „mittlere“ Optionen, und vielleicht gibt es noch mehr davon. Wir haben jedoch eine Roadmap bzw. Roadmap für einen angehenden Java-Entwickler zusammengestellt. Um es so einfach wie möglich zu machen, haben wir nur die Technologien und Themen angegeben, die für die überwiegende Mehrheit der „Javisten“ notwendig sind. Es ist zu bedenken, dass nicht alles im Detail studiert werden muss (einige der oben genannten Punkte können nur durch Teamarbeit gemeistert werden), aber es wird nicht schaden, ein allgemeines Verständnis dafür zu haben.

0. Abschnitt Null – Java Core

Wir haben Abschnitt Null in den Artikel eingefügt, nur für den Fall, dass jemand hierher kommt, der gerade vorhat, Java zu lernen und nicht weiß, wo er anfangen soll. Java Core ist etwas, das selbst ein Anfänger sehr gut kennen sollte. Das heißt, grundlegende Dinge zu wissen, zu verstehen, was die Sprache zur Lösung eines bestimmten Problems bietet, und in einfachen Fällen dieses Wissen anwenden zu können. Sie können Java Core auf JavaRush üben. Wenn Sie dies noch nicht getan haben, laden wir Sie ein, an dem Kurs teilzunehmen ! Nun, für alle anderen erinnern wir uns an die wichtigsten Meilensteine ​​von Java Core:
  • Grundlegende Java-Konstrukte, Operatoren und Datentypen
  • OOP und seine Implementierung in Java
  • Ausnahmen
  • Java-Sammlungen
  • Generika
  • Multithreading

1. Werkzeuge

IDE oder integrierte Entwicklungsumgebung

Das Hauptwerkzeug eines modernen Entwicklers ist eine IDE. Heutzutage gibt es viele davon auf dem Markt, aber in der professionellen Java-Entwicklung gibt es meist nur zwei Namen. Dabei handelt es sich um das kostenlose, auf Plugins basierende Eclipse , das viele Jahre hintereinander die Palme gehalten hat, und IntelliJ IDEA , das Eclipse in den letzten Jahren aktiv verdrängt hat, und das trotz der Tatsache, dass ein Abonnement für die Ultimate-Version erforderlich war Profis kosten Geld. Wir möchten Sie daran erinnern, dass wir im JavaRush-Kurs die kostenlose Edition von Community IntelliJ IDEA verwenden, die im Vergleich zu Ultimate gewisse funktionale Einschränkungen aufweist. Der Ausdruck „Ich kenne die IDE“ bedeutet, dass Sie mit den grundlegenden Funktionen der Entwicklungsumgebung vertraut sind und wissen, wie man Dateien kompiliert, ausführt, debuggt und testet sowie Code umgestaltet. Das Beherrschen von Hotkeys wird Ihnen dabei helfen, Ihre Arbeit zu beschleunigen. Seien Sie nicht faul, verbringen Sie ein paar Stunden damit, sich mit den IDE-Funktionen vertraut zu machen, von denen Sie noch nichts wussten, und beginnen Sie, sie in der Praxis anzuwenden. Und vernachlässigen Sie nicht das Debuggen, es ist eine sehr nützliche Fähigkeit. All diese Maßnahmen tragen dazu bei, die Geschwindigkeit und Qualität Ihrer Arbeit deutlich zu verbessern.

Werkzeuge für die automatische Montage

Heutzutage verwenden Java-Projekte am häufigsten Tools wie Maven und Gradle. Es ist nicht notwendig, sie gründlich zu studieren, aber es wird nützlich sein zu verstehen, wie sie sich voneinander unterscheiden, worauf sie basieren, welche Aufgaben (in Gradle) und Phasen mit Zielen in Maven sind. Es reicht aus, sich über die Systeme zu informieren und ein paar kleine Projekte darauf umzusetzen. Dies ist recht einfach durchzuführen und Sie werden die Details unter realen Arbeitsbedingungen verstehen.

Versionskontrollsysteme und Online-Hosting-Dienste

Ein Versionskontrollsystem hilft Programmierern, im Team an einem gemeinsamen Projekt zu arbeiten, ohne es zu „zerstören“, unterschiedliche Codeteile, die von verschiedenen Personen erstellt wurden, zu synchronisieren, erfolglose Aktualisierungen rückgängig zu machen und neue hinzuzufügen. Am gebräuchlichsten sind zwei Versionskontrollsysteme. Einer davon ist verteilt und heißt Git, der zweite ist zentralisiert und heißt SVN (auch bekannt als Subversion). Heute ist Git der De-facto-Standard. Die Arbeit mit diesem System ist bequemer und einfacher; es wird von allen IDEs (sowie SVN) unterstützt. Das Arbeiten mit Git lässt sich schnell und einfach ausprobieren, erfreulicherweise gibt es im Internet viele Informationen zu diesem Thema. Zum Beispiel das interaktive Lehrbuch GitHowTo, verfügbar auf Russisch (geht sehr schnell durch). Für einen unerfahrenen Entwickler ist es sehr wichtig, Online-Hosting-Dienste für Versionskontrollsysteme zu beherrschen. Meistens basieren sie auf Git und werden Git-Plattformen genannt (obwohl einige von ihnen mit unterschiedlichen Versionskontrollsystemen arbeiten können). Das beliebteste davon ist GitHub. BitBucket und GitLab sind ebenfalls weit verbreitet. Diese Systeme helfen Ihnen beim Speichern und Abrufen von Code und tun auch das, was Git tun kann, allerdings nicht über die Befehlszeile, sondern über die Schnittstelle. GitHub ermöglicht es Ihnen auch, Code zu überprüfen und Lösungen für Probleme direkt auf der Website anzubieten. Dort können Sie auch das Open-Source-Projekt eines anderen finden und versuchen, eigene Lösungen zur Verbesserung anzubieten. Im Wesentlichen ist GitHub eine Art soziales Netzwerk für Entwickler. Wenn Sie dies noch nicht getan haben, erstellen Sie unbedingt ein Konto auf GitHub und hosten Sie Ihre Projekte dort. Lesen Sie auch über GitLab und BitBucket. Wenn Sie Zeit haben, können Sie sie ausprobieren, es gibt kostenlose Versionen. Alle diese Plattformen sind übrigens vollständig in moderne IDEs integriert. Java.  Aktionsplan – 2

2. JDK-API

In diesem Abschnitt werden die JDK-APIs hervorgehoben, die ein moderner Java-Entwickler ziemlich sicher kennen muss. Für einen Programmierer würde es nicht schaden, von Zeit zu Zeit in den Quellcode dieser Bibliotheken zu schauen, darin zu navigieren und zu verstehen, wann und warum sie verwendet werden müssen. Nebeneffekt: Wenn Sie sich mit diesen APIs gut auskennen, wird es Ihnen wahrscheinlich viel leichter fallen, Ihr Vorstellungsgespräch zu meistern.

Java Collections Framework

Das Java Collection Framework ist eine der wichtigsten APIs der Java-Sprache und sollte jedem Entwickler bekannt sein. Es stellt eine Hierarchie von Schnittstellen und Implementierungen von Standarddatenstrukturen in Java dar, wie z. B. Liste, verknüpfte Liste, Menge, Stapel, Warteschlange, Hash-Tabelle und viele andere. Der Entwickler muss die Klassen ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet und andere gut verstehen und über deren Eigenschaften Bescheid wissen. Insbesondere müssen Sie die Zeit- und Speicherkosten einer bestimmten Sammlung für Standardoperationen (Indizieren, Suchen, Einfügen, Löschen) verstehen und diese darauf basierend in Ihren Projekten korrekt anwenden. Sammlungen in Java sind sehr gut implementiert, bei Bedarf kann der Entwickler jedoch auch eine eigene Implementierung anbieten. Ein Programmierer, der sich gut mit Sammlungen auskennt, kann die Logik in bereits geschriebenen Klassen erweitern oder neu definieren oder alles von Grund auf implementieren.

Java-Parallelitäts-API

Java wurde ursprünglich zur Unterstützung der parallelen Programmierung entwickelt und seit Version 5.0 enthält die Sprache High-Level-APIs für parallele Threads. Daher muss ein kompetenter Java-Entwickler einfach ein gutes Verständnis von Multithreading haben und die wichtigsten APIs aus den java.util.concurrent.*- Paketen verstehen . Sie müssen mindestens wissen und genau verstehen, was Thread, Runnable, Objektsperre und Synchronisierung sind. Stellen Sie sicher, dass Sie die Konzepte von Deadlock, Livelock und Rennbedingungen verstehen und wissen, was damit zu tun ist. Um sich sicher zu fühlen, lernen Sie Synchronisierer von java.util.concurrent.*, wie Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture und so weiter. Und auch die Callable- und Future-Schnittstellen.

Java-I/O-API

Anfänger vernachlässigen häufig die eingehende Untersuchung von Java I/O und Java Non-blocking I/O . Aber vergebens: Diese Java-APIs erleichtern die Arbeit mit Threads und werden regelmäßig in realen Anwendungen eingesetzt. Insbesondere Klassen wie File, InputStream, OutputStream, Reader und Writer aus dem Paket java.io, das den Kern der Java IO API darstellt. Java Non-blocking I/O (java.nio) ist eine Sammlung von Anwendungsprogrammierschnittstellen zur Implementierung leistungsstarker I/O-Operationen. Hierzu zählen insbesondere ByteBuffer, FileChannel und Selector. Nehmen Sie sich die Mühe, diese APIs zu verstehen, Sie werden es nicht bereuen.

Geräteklassenobjekt

Sobald Sie die Object-Superklasse verstanden haben, werden Sie gewissermaßen ein „Java-Muttersprachler“ und kennen die OOP-Struktur und viele Prozesse viel besser. Die Klasse java.lang.Object steht ganz oben in der Klassenhierarchie. Wenn Sie die Methoden der Klasse kennen, können Sie nicht nur besser verstehen, was vor sich geht, sondern auch Bewerbungsgespräche viel einfacher führen – Interviewer lieben es einfach, Kandidaten mit der Object-Klasse und ihren Objekten zu testen.

3. Neue Funktionen in Java 8

Obwohl seit der Veröffentlichung von Java 8 einige Zeit vergangen ist und bereits weitere nummerierte Updates erschienen sind, war es die achte Version, die zu einer Ikone wurde. Es wurden wichtige Innovationen eingeführt, die die Programmieransätze in Java vereinfachen und in gewisser Weise verändern. Sie müssen die Verwendung von Lambda-Ausdrücken sowie die Stream-API in Java 8 und die neuen Datums- und Uhrzeit-APIs verstehen.

4. SQL, Datenbanken, JDBC

Nur wenige Java-Entwickler stoßen bei ihrer Arbeit nicht auf SQL-Abfragen und -Datenbanken. Daher ist es wichtig zu verstehen, was SQL und relationale Datenbanken sind, wie sie funktionieren und in der Lage zu sein, einfache Abfragen zum Verbinden zweier Tabellen zu schreiben. Zum Training können Sie versuchen, mit einem der DBMS zu arbeiten, zum Beispiel PostgreSQL oder MySQL . Außerdem wäre es schön, Grundkenntnisse über nicht-relationale Datenbanken, NoSQL-Ansätze und eine oberflächliche Vertrautheit mit dem dokumentenorientierten DBMS MongoDB zu erlangen . Um mit Datenbanken in reinem Java zu arbeiten, können Sie den JDBC- Standard zusammen mit der gleichnamigen API verwenden. Es wird als Paket java.sql implementiert, das im JDK enthalten ist. Heutzutage wird es nur noch selten in reiner Form verwendet, ist jedoch häufig in älteren Supportanwendungen zu finden, und modernere und allgemein akzeptierte Tools basieren häufig auf diesem Standard.

5. Rahmenbedingungen

Zu den Anforderungen an einen Junior Java Developer zählen heute zunehmend „Kenntnisse über Spring, Hibernate, Spring Boot“. Das selbstständige Erlernen dieser Technologien ist eine sehr schwierige Aufgabe, aber dennoch möglich, insbesondere auf oberflächlicher Ebene. Während Sie arbeiten, wird sich ein tieferes Verständnis entwickeln. Also.

Frühlingsrahmen

Fast jede in Java erstellte Anwendung verwendet heutzutage das Spring Framework. Dieses leistungsstarke Framework stellt ein spezifisches Koordinatensystem bereit, das Rückgrat, auf dem die Anwendung erstellt wird. Eine Spring-Anwendung ist viel einfacher zu testen und zu warten. Und das alles dank der Abhängigkeitsinjektion.

Überwintern

Ein weiteres wichtiges Framework für Java-Entwickler ist Hibernate. Es implementiert die JPA-Spezifikation (Java Persistence API), die ORM-Probleme (Object-Relational Mapping) löst. Die meisten Java-Anwendungen interagieren mit Datenbanken, und wenn wir über relationale Datenbanken sprechen, ist die Arbeit mit ihnen ohne Hibernate unpraktisch. Dieses Framework bietet Entwicklern eine Reihe wichtiger Funktionen, insbesondere Caching und Transaktionen, die sofort einsatzbereit sind, wodurch sie sich wiederum auf die Entwicklung der Anwendungslogik konzentrieren können und den Programmierer bei der Arbeit mit relationalen Datenbanken von vielen einfachen Aufgaben entlasten . Dadurch wird die Entwicklerproduktivität deutlich verbessert.

Frühlings-MVC

Dieses Framework gewährleistet die Anwendungsentwicklung nach dem Model-View-Controller-Muster unter Verwendung lose gekoppelter vorgefertigter Komponenten. Studieren Sie dieses Muster (Entwurfsmuster werden weiter unten besprochen) und die Logik von Spring MVC. In der Praxis wird es häufig verwendet.

Frühlingsstiefel

Mit den richtigen Fähigkeiten erleichtert Spring die Erstellung einer Java-Anwendung. Spring Boot wiederum erleichtert die Erstellung einer Java-Anwendung auf Basis von Spring. Mit Spring Boot können Sie ganz einfach vollwertige Enterprise Spring-Anwendungen erstellen, die mit minimalem Aufwand gestartet werden können: Durch die automatische Konfiguration entfallen die meisten Probleme, die mit der Konfiguration von Spring-Anwendungen verbunden sind.

6. Bibliotheken und Frameworks zum Testen

Einige zukünftige Entwickler sind sich sicher, dass das Testen von Code überhaupt nicht ihre Angelegenheit ist, sondern die Sache besonderer Leute, die Tester genannt werden. In der Praxis ist dies nicht ganz der Fall. Testen, insbesondere Unit-Tests (am häufigsten als Unit-Tests bezeichnet), ist eine sehr wichtige Fähigkeit für jeden Programmierer. Darüber hinaus haben Neulinge, die gerade erst ihre Tätigkeit aufgenommen haben, oft die Aufgabe, den Code einer anderen Person mit Unit-Tests abzudecken. Wir empfehlen daher dringend, sich mit der JUnit-Bibliothek vertraut zu machen und es sich zur Gewohnheit zu machen, Unit-Tests für Ihren Code zu schreiben. Schauen Sie sich auch das Mockito-Framework an, das mit JUnit zum Erstellen simulierter Abhängigkeitsklassen verwendet werden kann.

7. Servicebibliotheken

Java verfügt über eine große Anzahl von Servicebibliotheken, die dabei helfen, fast jedes Problem zu lösen, mit dem ein Entwickler konfrontiert ist. Es ist unmöglich, sie alle zu studieren, und es hat auch keinen besonderen Sinn, dies zu tun. Aber durch sie zu navigieren ist eine tolle Idee. Hier möchten wir nur einige davon hervorheben, die in der Praxis sehr häufig verwendet werden.

Bibliotheken für die Protokollierung

Zunächst können wir log4j und Slf4j erwähnen . Diese Bibliotheken sollen die Implementierung routinemäßiger Protokollierungsvorgänge verbergen, die während der Ausführung von Java-Anwendungen auftreten.

Bibliotheken für JSON

JSON, das Format zur Übertragung von Informationen vom Client zum Server, ist heute das am häufigsten verwendete Format. Es gibt mehrere gute Bibliotheken, die mit JSON arbeiten. Die beliebtesten sind Jackson und google-gson .

Google Guave

Guava ist ein von Google entwickeltes Projekt mit Java-Kernbibliotheken. Hier finden Sie neue Arten von Sammlungen (Multimap, Multiset und andere), unveränderliche Sammlungen, Diagramme, funktionale Sammlungen, Dienstprogramme für Parallelität, I/O, Hashing, String-Verarbeitung und vieles mehr.

Apache Commons

Commons ist ein riesiges Projekt, das viele nützliche Java-Dienstprogramme für verschiedene Zwecke enthält. Somit liegen Tomcat, Hibernate und einer Reihe anderer großer Projekte die Apache-Commons-Bibliotheken zugrunde. Es gibt viele Bibliotheken in Apache Commons. Erwähnen wir Commons IO, das I/O-Vorgänge vereinfacht, Commons CSV für die Arbeit mit CSV-Dateien, Commons Math für die Arbeit mit komplexen mathematischen und statistischen Operationen und Berechnungen, Commons CLI für die Analyse von Befehlszeilenargumenten.

8. API-Clients

REST ist ein Benennungsstil für Endpunkte für den Zugriff auf Ressourcen über das Netzwerk in einem für Menschen lesbaren Format. Für einen modernen Java-Entwickler ist es besser, die REST-Ideologie zu verstehen und auch Spring RestTemplate zu kennen , eine sehr nützliche Bibliothek zum Erstellen eines REST-Clients.

9. Designmuster

Wenn ein unerfahrener Entwickler mit Design Patterns, also den Verhaltensregeln in der Java-Programmierung, vertraut ist und diese sogar in der Praxis anwenden kann, wird er seinen Wert auf dem Arbeitsmarkt sofort steigern. Anfänger unterschätzen oft Muster, weil sie während des Lernens selten komplexe Anwendungen erstellen. Wenn Muster jedoch nicht auf ernsthafte Projekte angewendet werden, wird die Pflege und Anpassung des Codes zu einer äußerst schwierigen Aufgabe. Seien Sie also nicht faul, studieren Sie die Muster und wenden Sie sie in Ihren persönlichen Projekten an. Ihr zukünftiger Arbeitgeber wird Ihnen dafür sehr dankbar sein.

10. Zusätzliches Wissen

Algorithmen und Datenstrukturen

„Algorithmen und Datenstrukturen“ ist der Name eines ganzen Studiengangs, der an technischen Universitäten gelehrt wird. Es enthüllt die theoretischen Grundlagen für den Aufbau verschiedener Datenstrukturen. Und im praktischen Unterricht lernen sie, damit zu arbeiten – Daten einzugeben und abzurufen, zu suchen und zu sortieren. Tatsächlich bedeutet „Algorithmen“ in diesem Ausdruck genau das Sortieren und Suchen. Im Laufe der Jahre haben Informatiker viele Algorithmen entwickelt. Einige von ihnen sind pädagogischer Natur, da sie trotz der relativ einfachen Umsetzung in der Praxis nicht sehr effektiv sind. Sie arbeiten beispielsweise langsam, was sich bei großen Datenbeständen bemerkbar machen kann. Oder sie verbrauchen viel Speicher. Andere Algorithmen haben sich als sehr effektiv erwiesen. So sehr, dass sie in die offiziellen Bibliotheken der meisten Programmiersprachen aufgenommen wurden. Dementsprechend ist es heute nicht mehr notwendig, solche Algorithmen eigenständig zu entwickeln. Es genügt zu wissen, wo sie sind. Dennoch empfehlen die meisten erfahrenen Entwickler Anfängern, die „Algorithmenschule“ zu absolvieren und sie während des Lernens selbst zu implementieren. Dies entwickelt das Programmierdenken. Es hilft auch bei Vorstellungsgesprächen; sie stellen wirklich gerne Sortier- und Suchprobleme.

Servlets

Ein Servlet ist eine Möglichkeit, eine Benutzeranfrage zu bearbeiten. Heutzutage werden sie nicht überall und nicht immer verwendet, aber es wird nützlich sein, sich ein Bild über sie zu machen.

HTML und CSS

Jeder sollte die Grundlagen des Layouts kennen. Dieses Wissen ist recht einfach zu erlangen, und wenn Sie es noch nicht getan haben, nehmen Sie sich ein paar Tage Zeit für diese Aktivität. Gleichzeitig gönnen Sie sich eine Pause von komplexeren Themen.

XML

Extensible Markup Language war früher in der Java-Entwicklung allgegenwärtig. Es wird nach und nach durch JSON ersetzt, XML wird jedoch auch heute noch verwendet. Es ist nicht schwer zu lernen, daher können Sie dieser Sprache ein wenig Aufmerksamkeit schenken.

JavaScript

Umfragen unter Entwicklern zeigen, dass auch diejenigen, die überhaupt nichts mit der Frontend-Entwicklung zu tun haben, ab und zu Skripte in JavaScript geschrieben haben. Die Kenntnis der Grundlagen dieser Sprache kann als gute Manierenregel angesehen werden. Seien Sie also nicht faul, lesen Sie sich darüber durch und erstellen Sie ein Dutzend oder zwei Skripte. Es wird nicht überflüssig sein.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION