Java Entwickler

Einstellungsbemühungen sind ein kontinuierlicher Prozess für ein fortschrittliches Unternehmen.
Ein hochwertiges Netzwerk und eine aktualisierte Interessentenliste sind ein Muss für HR-Experten. Diese Strategie verringert den Bedarf an zahlreichen Stellenausschreibungen auf verschiedenen Plattformen, was Sie eine ganze Summe kosten würde. Ein gesundes Netzwerk würde es Ihnen auch erleichtern, in Zeiten der Not einen freiberuflichen Java-Entwickler zu finden. Java ist eine dominante Programmiersprache, die häufig für die Entwicklung von Unternehmensanwendungen verwendet wird. Die Entwicklung einer Unternehmensanwendung ist eine große Aufgabe und Investition für ein Unternehmen. Weitere Informationen zu Unternehmensanwendungen finden Sie im Artikel von DevsData.

Um Ihnen zu helfen, den am besten geeigneten Freiberufler für den Job zu finden, haben wir unsere sechs wichtigsten Tipps für die Einstellung eines erfahrenen Java-Entwicklers zusammengestellt.
Erfahrene freiberufliche Entwickler müssen Feedback von früheren Kunden oder sogar Testimonials von anderen Entwicklern erhalten.

6 kampferprobte Einstellungstipps, mit denen Sie den besten freiberuflichen Java-Entwickler finden können

Suchen Sie nach relevanten Erfahrungen

Wenn Sie nach einer schnellen und effektiven Lösung suchen, ist es am besten, einen erfahrenen freiberuflichen Java-Entwickler zu finden. Die Erfahrung als Tech-Freiberufler stammt ursprünglich nicht aus ihrer jahrelangen freiberuflichen Tätigkeit, sondern aus ihrer Erfahrung in einem Unternehmen. Viele, wenn nicht alle, haben vor dem freiberuflichen Sprung mit einem Unternehmen zusammengearbeitet. Dies begründet ihre technischen Fähigkeiten und ihre Fähigkeit, professionell zu arbeiten. Graben Sie tief in ihre Amtszeit ein, um zu verstehen, ob sie nur über theoretisches Wissen sprechen oder ob sie über praktische Fähigkeiten verfügen.

Entdecken Sie, welchen Entwicklungsprozess diese Person für ihre Projekte verwendet. Verhaltensweisen werden zu Gewohnheiten. Der Prozess, den er für frühere Projekte verwendet hat, wird höchstwahrscheinlich der gleiche für die nächsten sein. Wenn er ein Projekt durchgeführt hat, das dem ähnelt, was Sie für den Bau benötigen, erhalten Sie eine Vorstellung vom Ergebnis des Projekts.

Schauen Sie sich sein Karrierewachstum als Spezialist an, um das i-Tüpfelchen zu setzen. Gibt es bemerkenswerte Erfolge oder Schulungen, die zum Erfolg des Projekts beitragen könnten?

Überprüfen Sie ihre Referenzen und Testimonials

Erfahrene freiberufliche Entwickler müssen Feedback von früheren Kunden oder sogar Testimonials von anderen Entwicklern erhalten. Gehen Sie zu ihrem Profil, GitHub oder ihrer Website und scannen Sie sie durch. Zufriedene Kunden hinterlassen gute Bewertungen, außergewöhnlich zufriedene Kunden hinterlassen gute Bewertungen und ein Testimonial, während unzufriedene Kunden eine Warnung hinterlassen.

Sprechen Sie mit ihren früheren Kunden

Das nächste, was Sie tun müssen, ist, ihre früheren Kunden zu erreichen. Dies unterstützt die Behauptungen der Testimonials auf ihrer Website. Besprechen Sie sich kurz mit ihnen und informieren Sie sich über ihre Kommunikationsfähigkeiten, ihr analytisches Denken und ihren Umgang mit ihren Aufgaben. Es ist ratsam, mit ihren Kunden zu chatten, die mindestens 3 Monate mit ihnen zusammengearbeitet haben. Diese Kunden würden höchstwahrscheinlich mehr Informationen über die Person haben als kurzfristige Kunden.

Suchen Sie nach einer Expertenerfahrung

Wenn Sie mit den Nachrichten und der Fachsprache im Technologiebereich nicht vertraut sind, ist es am besten, jemanden zu finden, der dies tut. Lassen Sie einen erfahrenen Java-Entwickler mit dem freiberuflichen Java-Entwickler sprechen, den Sie suchen. Bitten Sie sie, zu validieren oder zu widerlegen, was im Lebenslauf des Bewerbers steht. Wie das alte Sprichwort sagt: “Überlassen Sie es den Experten.”

Habe ein kurzes Tech-Gespräch

Wenn Sie diesen Vortrag durchführen, empfehlen wir Ihnen, einen Experten im Raum zu lassen oder Ihren Senior Java Developer diesen Vortrag durchführen zu lassen. Fragen Sie den Freiberufler nach den neuesten technischen Themen wie den neuesten Nachrichten, die er über Java, Big Data, Spark und Hadoop gelesen hat. Sprechen Sie über seine neuesten Entdeckungen oder über die Fähigkeiten, die er kürzlich in Bezug auf die Java-Entwicklung erworben hat. Bestimmen Sie durch diesen Vortrag sein Interesse an der Branche, denn ihre Leidenschaft für das Lernen spricht auch viel über seine Fähigkeiten.

Testen Sie seine Fähigkeiten und seine Intelligenz

Obwohl Fähigkeiten und Erfahrung ein gutes Maß für Entwickler sind, reicht es einfach nicht aus, um festzustellen, ob sie an schwierigen Projekten arbeiten können. Die Arbeitseinstellung und der Arbeitsfluss einer Person sind für Entwicklungsprojekte von entscheidender Bedeutung. Führen Sie eine zeitgesteuerte Problemlösungsprüfung für Ihren potenziellen Kunden durch und beobachten Sie, wie er unter Druck arbeitet. Dies zeigt Ihnen auch ihre intellektuellen Fähigkeiten.

Wenn sich der Kandidat in der Nähe Ihres Unternehmensbüros befindet, laden Sie ihn zu einer Live-Codierung ein. Dies kann eine hervorragende Gelegenheit sein, den Freiberufler dem Rest Ihres Teams vorzustellen. Wenn Sie persönlich sehen, was Ihr Unternehmen tut und worum es in Ihrem Team geht, können Sie feststellen, ob der freiberufliche Java-Entwickler mit dem Rest des Teams Schritt halten kann.

Vergessen Sie nicht, die Qualität der Arbeit zu bewerten, die der Freiberufler während der Prüfungen geleistet hat. Analysieren Sie seinen Grad an Kreativität und Herangehensweise an die Situation. Denken Sie, dass sie für die Aufgabe bereit sind?

Wenn diese Person für alles, was erwähnt wurde, die Rechnung passt, dann haben Sie gerade einen erstaunlichen freiberuflichen Java-Entwickler gefunden.

Java

Das Lesen von „8 Jahren Erfahrung“ im Lebenslauf eines Bewerbers klingt für viele Personalvermittler vielversprechend. Es mag sein, dass Erfahrung der beste Lehrer ist, aber eine erfahrene Person mit langjähriger Erfahrung spiegelt möglicherweise nicht immer ihre Fähigkeiten und Kompetenzen auf diesem Gebiet wider. Einige bleiben viele Jahre auf dem Feld, sind aber aufgrund mangelnder Motivation, Lernbereitschaft oder Intelligenz nie aufgestiegen. Seien Sie ein bisschen schlauer bei Ihren Einstellungsbemühungen und erfahren Sie mehr darüber, wie viel Wert sie für Ihr Unternehmen bringen können.

5 schwierige Fragen

Wenn Sie das nächste Mal einen freiberuflichen Java-Entwickler beschäftigen, versuchen Sie, ihm diese Fragen zu stellen, die Sie mit Sicherheit in den Bann ziehen werden. Auf diese Weise können Sie Ihren Kandidatenpool um die Hälfte herausfiltern und eine Handvoll erstklassiger Entwickler erhalten.

ArrayList, LinkedList und Vector sind alle Implementierungen der List-Schnittstelle. Welches davon ist am effizientesten zum Hinzufügen und Entfernen von Elementen zur Liste? Erläutern Sie Ihre Antwort, einschließlich aller anderen Alternativen, die Ihnen möglicherweise bekannt sind.

Von den dreien bietet LinkedList im Allgemeinen die beste Leistung. Hier ist der Grund:

ArrayList und Vector verwenden jeweils ein Array, um die Elemente der Liste zu speichern. Wenn ein Element in die Mitte der Liste eingefügt (oder aus dieser entfernt) wird, müssen die folgenden Elemente entsprechend verschoben werden. Vector ist synchronisiert. Wenn keine threadsichere Implementierung erforderlich ist, wird empfohlen, ArrayList anstelle von Vector zu verwenden.

LinkedList hingegen wird mithilfe einer doppelt verknüpften Liste implementiert. Infolgedessen müssen zum Einfügen oder Entfernen eines Elements nur die Verknüpfungen aktualisiert werden, die unmittelbar vor und nach dem Element stehen, das eingefügt oder entfernt wird.

Es ist jedoch anzumerken, dass es bei einer so kritischen Leistung besser ist, nur ein Array zu verwenden und es selbst zu verwalten oder eines der leistungsstarken Pakete von Drittanbietern wie Trove oder HPPC zu verwenden.
Bestimmen Sie durch diesen Vortrag sein Interesse an der Branche, denn ihre Leidenschaft für das Lernen spricht auch viel über seine Fähigkeiten.

Warum ist es sicherer, vertrauliche Daten (wie ein Passwort, eine Sozialversicherungsnummer usw.) in einem Zeichenarray als in einem String zu speichern?

In Java sind Strings unveränderlich und werden im String-Pool gespeichert. Dies bedeutet, dass ein einmal erstellter String im Speicher bleibt, bis er mit Müll gesammelt wird. Selbst nachdem Sie den Zeichenfolgenwert (z. B. das Kennwort) verarbeitet haben, bleibt er daher für einen unbestimmten Zeitraum im Speicher verfügbar (erneut bis zur Müllabfuhr), über den Sie keine wirkliche Kontrolle haben. Daher kann jeder, der Zugriff auf einen Speicherauszug hat, die vertraulichen Daten möglicherweise extrahieren und ausnutzen.

Wenn Sie dagegen ein veränderbares Objekt wie ein Zeichenarray zum Speichern des Werts verwenden, können Sie es auf leer setzen, sobald Sie damit fertig sind, mit der Gewissheit, dass es nicht mehr im Speicher verbleibt.

Was bedeutet es für eine Sammlung, von einer anderen „unterstützt“ zu werden? Geben Sie ein Beispiel dafür, wann diese Eigenschaft nützlich ist.

Wenn eine Sammlung eine andere unterstützt, bedeutet dies, dass Änderungen in einer Sammlung in der anderen wiedergegeben werden und umgekehrt.

Angenommen, wir möchten eine Whitelist-Funktion erstellen, mit der ungültige Schlüssel aus einer Map entfernt werden. Dies wird durch Map.keySet erheblich vereinfacht, das einen Satz von Schlüsseln zurückgibt, die von der ursprünglichen Map unterstützt werden. Wenn wir Schlüssel aus dem Schlüsselsatz entfernen, werden sie auch aus der Hintergrundzuordnung entfernt:

public static Map whitelist(Map map, K… allowedKeys) {

Map copy = new HashMap<>(map);

copy.keySet().retainAll(asList(allowedKeys));

return copy;

}

keepAll schreibt sich in die Hintergrundzuordnung durch und ermöglicht es uns, auf einfache Weise etwas zu implementieren, das andernfalls das Durchlaufen der Einträge in der Eingabezuordnung erfordern würde, um sie mit allowKey usw. zu vergleichen.

Beachten Sie, dass es wichtig ist, die Dokumentation der Hintergrundsammlung zu konsultieren, um festzustellen, welche Änderungen erfolgreich durchgeschrieben werden. Im obigen Beispiel würde map.keySet (). Add (value) fehlschlagen, da der Hintergrundzuordnung kein Schlüssel ohne Wert hinzugefügt werden kann.

Beschreiben und vergleichen Sie ausfallsichere und ausfallsichere Iteratoren. Nenne Beispiele

Der Hauptunterschied zwischen ausfallsicheren und ausfallsicheren Iteratoren besteht darin, ob die Sammlung während der Iteration geändert werden kann oder nicht. Ausfallsichere Iteratoren ermöglichen dies. Fail-Fast-Iteratoren nicht.

  • Fail-Fast-Iteratoren arbeiten direkt mit der Sammlung selbst. Während der Iteration schlagen ausfallsichere Iteratoren fehl, sobald sie feststellen, dass die Sammlung geändert wurde (d. H. Wenn festgestellt wird, dass ein Mitglied hinzugefügt, geändert oder entfernt wurde), und lösen eine ConcurrentModificationException aus. Einige Beispiele sind ArrayList, HashSet und HashMap (die meisten JDK1.4-Sammlungen sind fehlersicher implementiert).
  • Ausfallsichere Iterationen verarbeiten eine geklonte Kopie der Sammlung und lösen daher keine Ausnahme aus, wenn die Sammlung während der Iteration geändert wird. Beispiele wären Iteratoren, die von ConcurrentHashMap oder CopyOnWriteArrayList zurückgegeben werden.

Was ist das flüchtige Schlüsselwort? Wie und warum würden Sie es verwenden?

In Java hat jeder Thread einen eigenen Stapel, einschließlich einer eigenen Kopie der Variablen, auf die er zugreifen kann. Wenn der Thread erstellt wird, kopiert er den Wert aller zugänglichen Variablen in seinen eigenen Stapel. Das flüchtige Schlüsselwort sagt der JVM im Grunde “Warnung, diese Variable kann in einem anderen Thread geändert werden”.

In allen Java-Versionen garantiert das flüchtige Schlüsselwort die globale Reihenfolge beim Lesen und Schreiben in eine Variable. Dies bedeutet, dass jeder Thread, der auf ein flüchtiges Feld zugreift, den aktuellen Wert der Variablen liest, anstatt (möglicherweise) einen zwischengespeicherten Wert zu verwenden.

In Java 5 oder höher stellen flüchtige Lese- und Schreibvorgänge eine Vor-Ort-Beziehung her, ähnlich wie beim Erwerb und Freigeben eines Mutex.

Die Verwendung von flüchtig ist möglicherweise schneller als eine Sperre, funktioniert jedoch in einigen Situationen nicht. Das Spektrum der Situationen, in denen Volatile wirksam ist, wurde in Java 5 erweitert. Insbesondere die doppelt überprüfte Verriegelung funktioniert jetzt ordnungsgemäß.

Das flüchtige Schlüsselwort ist auch nützlich für 64-Bit-Typen wie long und double, da sie in zwei Operationen geschrieben werden. Ohne das flüchtige Schlüsselwort riskieren Sie veraltete oder ungültige Werte.

Ein häufiges Beispiel für die Verwendung von flüchtig ist, dass ein Flag einen Thread beendet. Wenn Sie einen Thread gestartet haben und ihn sicher von einem anderen Thread aus unterbrechen möchten, können Sie den Thread regelmäßig ein Flag überprüfen lassen (d. H. Um ihn zu stoppen, setzen Sie das Flag auf true). Indem Sie das Flag flüchtig machen, können Sie sicherstellen, dass der Thread, der seinen Wert überprüft, erkennt, dass er auf true gesetzt wurde, ohne dass ein synchronisierter Block verwendet werden muss. Zum Beispiel:

public class Foo extends Thread {

private volatile boolean close = false;

public void run() {

while(!close) {

// do work

}

}

public void close() {

close = true;

// interrupt here if needed

}

}

Tipps zur Einstellung eines erfahrenen Java-Ingenieurs

Es ist nicht einfach, neue Talente zu finden. Die Auswahl des Kandidaten hängt weitgehend von Ihren geschäftlichen Anforderungen in Bezug auf zukünftige Entwicklungsprojekte ab. Die Einstellung von Jobs für Java-Entwickler hat für viele Unternehmen eine hohe Priorität, da die Programmiersprache weiterhin eine dominierende Rolle bei der Entwicklung von Unternehmensanwendungen spielt. Um Ihnen dabei zu helfen, die Informationen zu finden, die Sie für die beste Einstellungsentscheidung benötigen, haben wir einige wichtige Tipps für die Befragung Ihres nächsten potenziellen Java-Ingenieurs zusammengestellt.

Zeigen Sie seine Arbeitshistorie, Informationen zu früheren Jobs, Positionen und Verantwortlichkeiten an.

Die Erfahrung in verschiedenen Unternehmen in verschiedenen Positionen spricht für theoretisches Wissen und praktische Fähigkeiten eines Spezialisten, was er mehr als einmal getan hat und wiederholen kann. Die Berufserfahrung zeigt das Karrierewachstum eines Spezialisten, seine Leistungen und beruflichen Erfolge.

Siehe seine / ihre Referenzen, Testimonials

Referenzen und Zeugnisse des Ingenieurs zeigen seine Stärken, Fähigkeiten und Kenntnisse, für die er in früheren Arbeiten geschätzt wurde. Es ist auch eine gute Option, sich mit dem GitHub-Profil eines Kandidaten vertraut zu machen. Oft bewerten Programmierer die Arbeit des anderen anhand von GitHub-Bewertungen.

Kontakt zu früheren Kunden

Wenn Sie frühere Kunden kontaktieren, erhalten Sie viele wichtige Informationen über die Kommunikationsfähigkeiten, das analytische Denken, die Fähigkeit zur Problemlösung und seine Verantwortung für die Aufgaben eines Ingenieurs.

Lassen Sie ihn von einem anderen erfahrenen Java-Entwickler interviewen

Ein professioneller Java-Entwickler kann die Fähigkeiten und Kenntnisse eines Kandidaten genau bewerten, seine Lebenslauffähigkeiten validieren oder widerlegen, auf den Kandidaten schließen und einen echten Fitback geben.

Überprüfen Sie, ob er mit dem neuesten Tech-Stack auf dem neuesten Stand ist

  • Neueste Java
  • Big Data-bezogene Dinge, Spark, Hadoop
  • Benutzte Scala?

Geben Sie ihm eine Herausforderung zur Problemlösung und testen Sie die Gehirnleistung

Dem Lebenslauf zufolge ist es nicht möglich festzustellen, wie eine Person mit Aufgaben umgeht. Hierfür gibt es eine Testaufgabe. Um den Kandidaten nicht abzuschrecken, machen Sie ihn klein (Vorlaufzeit: 15 Minuten – 4 Stunden), aber geräumig. Dies wird dazu beitragen, den Bewerber bei der Arbeit zu sehen, die Qualität des Endprodukts und den Grad der Kreativität des Ansatzes zu bewerten.

Live-Codierung ist eine weitere Möglichkeit, das Codierungswissen eines Entwicklers einzuschätzen, und bietet eine hervorragende Möglichkeit, sie dem Rest Ihres Unternehmens vorzustellen. Wenn Sie Ihrem ausgewählten Kandidaten die Möglichkeit geben, zu sehen, wie Ihr Unternehmen vorgeht, können Sie feststellen, ob er über die erforderlichen Fähigkeiten verfügt, um mit dem Rest des Teams Schritt zu halten.

Überprüfen Sie, ob er über einschlägige Erfahrungen aus Ihrer Branche verfügt oder zuvor an einem ähnlichen Projekt gearbeitet hat

Wenn Sie sich für die Entwicklung einer Software entscheiden, müssen Sie einen Java-Entwickler auswählen, der nicht nur mit Ihrer Entwicklungsmethode vertraut ist, sondern auch den von Ihnen verfolgten Prozess steuern kann. Das Herausfinden, mit welchen Entwicklungsprozessen ein Kandidat vertraut ist, sollte ein wesentlicher Bestandteil des Interview-Szenarios sein. Die meisten haben während ihrer Karriere nur einen benutzt. Indem Sie herausfinden, was sie bevorzugen, können Sie entscheiden, ob sie zu Ihrem aktuellen Geschäftsentwicklungsstil passen.

Warum sind nicht nur jahrelange Erfahrung wichtig?

Kommunikationsfähigkeiten sind in nahezu jeder Rolle von entscheidender Bedeutung, insbesondere in Bezug auf die Entwicklung. Ältere Java-Entwickler müssen nicht nur mit Mitgliedern ihres Teams interagieren, sondern auch mit Stakeholdern, die möglicherweise nicht vollständig verstehen, was eine Technologie leisten kann und ob ein bestimmtes Ergebnis plausibel ist.

Die Fähigkeit, technisch mit Kollegen zu sprechen und komplexe Themen für weniger technisch versierte Stakeholder aufzuschlüsseln, ist ebenso wichtig. Darüber hinaus müssen Sie in der Lage sein, Ihre Gedanken mündlich und schriftlich zu übermitteln, um sicherzustellen, dass Sie an Diskussionen teilnehmen können, wo immer sie stattfinden.

Beharrlichkeit bei der Problemlösung. Während einige Probleme ziemlich einfach zu lösen sind, werden viele erfahrene Java-Entwickler auf Probleme stoßen, die ein tiefes Eintauchen in den Code und viel Sorgfalt erfordern, um sie zu lösen. Ohne Beharrlichkeit können Sie mit der Aufgabe frustriert sein, zumal es viel Konzentration von Ihrer Seite erfordert.

Trends für 2020 bezogen sich auf die Java-Entwicklung

Derzeit ist Java immer noch eine der beliebtesten Programmiersprachen. Java ist eine praktische Wahl für die Entwicklung von Android-Apps, da damit hochfunktionale Programme und Plattformen erstellt werden können.

Diese objektorientierte Programmiersprache erfordert keine spezielle Hardware-Infrastruktur, ist leicht zu verwalten und verfügt über ein gutes Sicherheitsniveau. Darüber hinaus ist es im Vergleich zu Sprachen wie C und C ++ einfacher, Java zu lernen. Kein Wunder, dass sich die meisten Unternehmen für ihre Desktopanwendungen und Backend-Entwicklungsprojekte auf Java verlassen. Obwohl Java in diesem Jahr seinen 24. Geburtstag feiert, wird es immer noch mit neuen Funktionen verbessert. Nachfolgend finden Sie die wichtigsten Trends in Bezug auf Java und worauf Sie achten müssen.

Warum sind nicht nur jahrelange Erfahrung wichtig?

Einige Änderungen im neuesten Java

Pattern Matching zum Beispiel
Durch den Mustervergleich kann die allgemeine Logik in einem Programm, nämlich das bedingte Extrahieren von Komponenten aus Objekten, präziser und sicherer ausgedrückt werden.

Hilfreiche NullPointerExceptions
Verbessern Sie die Benutzerfreundlichkeit von NullPointerExceptions, die von der JVM generiert werden, indem Sie genau beschreiben, welche Variable null war.

Textblöcke
Fügen Sie der Java-Sprache Textblöcke hinzu. Ein Textblock ist ein mehrzeiliges Zeichenfolgenliteral, das die Notwendigkeit der meisten Escape-Sequenzen vermeidet, die Zeichenfolge automatisch auf vorhersehbare Weise formatiert und dem Entwickler bei Bedarf die Kontrolle über das Format gibt.

Aufzeichnungen
Datensätze bieten eine kompakte Syntax zum Deklarieren von Klassen, die transparente Halter für flach unveränderliche Daten sind.

Scala

Die komplexen Funktionen von Scala fördern eine bessere Codierung und bieten eine Leistungssteigerung. Funktionen, Makros und Tupel sind nur einige der Verbesserungen, die Scala bietet. Scala integriert funktionale Programmierung und objektorientierte Programmierung in eine leistungsstarke Sprache.

Entwickler und diejenigen, die sie einstellen, müssen die Stärken von Scala als Sprache nutzen, um die angebotenen Funktionen voll zu nutzen. Die Sprache wurde entwickelt, um die Restriktivität von Java zu beseitigen und bietet eine gut organisierte und sauberere Sprache.

Microservice-Architektur gegen Monolith

Das Erstellen komplexer Anwendungen ist von Natur aus schwierig. Eine monolithische Architektur eignet sich besser für einfache, leichte Anwendungen. Es ist wichtig, die monolithische Architektur zu verstehen, da sie die Grundlage für die Microservices-Architektur darstellt, bei der jeder Dienst für sich gemäß der monolithischen Architektur implementiert wird. Das Microservices-Architekturmuster ist die bessere Wahl für komplexe, sich entwickelnde Anwendungen. Eigentlich dreht sich beim Microservices-Ansatz alles um die Handhabung eines komplexen Systems, aber um dies zu erreichen, bringt der Ansatz seine eigenen Komplexitäten und Implementierungsherausforderungen mit sich.

Hadoop-, Spark- und Big Data-Ökosystem - Entwicklung kundenspezifischer Big Data-Lösungen

Java-Entwickler haben Zugriff auf eine Vielzahl von Open-Source-Big-Data-Tools: Apache Hadoop, Apache Spark und viele mehr. Die meisten Java-Entwickler können problemlos ein neues Big-Data-Tool übernehmen, da es sich um das Erlernen einer neuen API handelt. Außerdem sind einige der Kernmodule der Big-Data-Tools in Java geschrieben.

Weitere Informationen zu Big Data-Trends finden Sie in unserem Artikel.

Darüber hinaus können Sie die grundlegenden Begriffe zu Big Data lesen.

Integration in Systeme und Anwendungen, die in anderen Sprachen als Java geschrieben sind

Es gibt drei Hauptansätze, um mehrere Sprachen zu einem einzigen Problem zu kombinieren.

Einbettung der Syntax

In vielen Sprachen kann eine Sekundärsprache in die Syntax der ersten Sprache eingebettet werden. Dies erfordert eine Start- und Endmarkierung in der Syntax des äußeren Programms, wobei die Endmarkierung kein gültiges Token der inneren Sprache ist.

Eingebettete Funktionsbindung

In einigen Sprachen können Funktionen aus einer alternativen integrierten Sprache aufgerufen werden. Zum Beispiel kann MATLAB Java-Funktionen direkt aufrufen. Oft gibt es Bindungsbibliotheken zwischen Sprachen, die den VM-Interpreter einer Sprache aus einer anderen Sprache innerhalb desselben Ausführungsprozesses aufrufen.

Interprozessfunktionsbindung

Mit method wird der Teil des Programms in der eingebetteten Sprache als eigenständiger Serverprozess mit einer externen RPC-Schnittstelle (Remote Procedure Call) geschrieben. Eine “Stub-Bibliothek” wird dann in der äußeren Sprache geschrieben, die Interprozesskommunikation (z. B. TCP / IP) verwendet, um die Quellparameter in serialisierte Bytes zu übersetzen, die als Block an den Zielserverprozess gesendet werden. Der Zielserver führt die Funktion mit den Parametern aus und serialisiert die Rückgabeergebnisse, die dann aus dem Quellcode dekodiert werden. Dieser Ansatz ist mit viel Aufwand verbunden und erfordert Kontextwechsel auf CPU-Ebene, sodass die Übergaben viel langsamer sind. Der Vorteil besteht darin, dass es über Servercomputer und sogar über Rechenzentren hinweg skaliert werden kann. “Thrift” ist eine beliebte Technologie zur Bindung und Protokollübersetzung von Sprachen in verschiedenen Sprachen, die zum Erstellen sprachübergreifender Dienste verwendet wird.

Mit DevOps Schritt halten

Versuchen Sie nach Möglichkeit, Docker und Jenkins in Ihren älteren Projekten zu verwenden. In neuen Projekten sollten Sie sie ohne nachzudenken verwenden. Bis 2022 wird der DevOps-Markt 6,6 Milliarden US-Dollar erreichen. Man kann also mit Recht sagen, dass DevOps-Praktiken und -Technologien den Technologiemarkt prägen werden. Möchten Sie schnellere und effizientere Bereitstellungen durchführen? In diesem Fall sollte die Anwendung der Automatisierung auf Ihrer Tagesordnung stehen.

Git - Versionskontrollsystem

Viele Unternehmen haben bereits begonnen, SVN- und CVS-Projekte auf Git zu migrieren. Daher ist es an der Zeit, dass jeder, der die Java-Programmierung ernst nimmt, anfängt, Git zu beherrschen.

Frühlingsrahmen

In den letzten Jahren gab es einige wichtige Releases für Spring, Spring Boot und Spring Security. Heute scheint jeder davon besessen zu sein, die Cloud für die Entwicklung zu nutzen. In Bezug auf die Cloud nimmt die Microservice-Architektur einen besonderen Platz in der Java-Programmiergleichung ein.

Java 8

Wir wissen, dass jeder Java 8 im Herzen hat, aber es ist Zeit, auf die neueste Version von Java umzusteigen. Oracle unterstützt Java 8 nicht mehr. Es liegt also an Ihnen, neu hinzugefügte Funktionen herunterzuladen und zu installieren und Ihr Team zu ermutigen, diesen Schritt jetzt auszuführen. Jede neue Java-Version verfügt über viele Funktionen, die Sie in Ihrem Projekt verwenden können.

Tipps zum Verwalten einer alten Java-Produktionsanwendung

Dokumentation aktuell

Es ist sehr wichtig, dass die Dokumentation ab dem ersten Tag der Anwendungsentwicklung erstellt und regelmäßig aktualisiert wird. Dank dessen enthält die Dokumentation alle notwendigen Informationen, um die Softwareanalyse und die mögliche Implementierung neuer Mitarbeiter zu erleichtern.

Schlucken Sie keine Ausnahmen

Vermeiden Sie es, die Ausnahmen zu verschlucken. Der Stack-Trace ist die wertvollste Information zur Fehlerbehebung. In dem Produktionssystem, in dem es vorrangig darum geht, das System aufzurufen und dann die Grundursache zu finden, sind diese Ausnahmen Gold. Ohne sie können Sie nie feststellen, was in diesem Moment mit Ihrer Anwendung passiert ist. Drucken Sie den Stack-Trace jedoch nicht mehrmals. Das Drucken eines Stack-Trace ist ein ressourcenintensiver Prozess und sollte gesteuert werden, d. H. Sie drucken mehr Informationen, während Sie im DEBUG- oder INFO-Modus ausgeführt werden, und drucken nur wichtige Informationen, während Sie im PRODUCTION-Modus ausgeführt werden.

Schließen Sie die Datenbankverbindungen

Dies ist einer der häufigsten Gründe für Produktionsprobleme im letzten Jahrzehnt. Stellen Sie sicher, dass Sie die Datenbankverbindung immer schließen, damit sie wieder für den Pool freigegeben wird. Dies ist auch eine der Best Practices von JDBC. Ein häufiger Fehler besteht darin, die Verbindung im letzten Block eines Try-Catch nicht zu schließen. Wenn ein Verbindungspoolleck vorliegt, ist Ihr Verbindungspool bald erschöpft und Ihr Benutzer wird sofort langsamer.

Vermeiden Sie das Laden großer Ergebnismengen aus der Datenbank

Dies ist einer der häufigsten Fehler von Anfängern und fortgeschrittenen Java-Programmierern, die nichts über Paging oder Paginierung wissen. Sie können einfach nicht jeden Datensatz laden, z. Bestellung oder Handel aus der Datenbank in einem Anruf. In einigen Fällen geht Ihnen natürlich der Arbeitsspeicher aus, und es ist auch eine Verschwendung von Netzwerkbandbreite, CPU und Speicher, da der Benutzer möglicherweise nicht alle diese Daten benötigt.

Zweitens können Sie die Daten nicht für immer in Ihrer Anwendung behalten, da sie möglicherweise veraltet sind und Sie sie erneut laden müssen.

Implementieren Sie also nicht alle Datensätze auf einmal, sondern eine Art Paginierung oder verzögertes Laden, damit Sie am Anfang nicht alles laden müssen.

Vermeiden Sie eine harte Codierung der Konfigurationsparameter

Es gibt kaum einen Code, in dem etwas nicht fest codiert ist, sondern fest codierte Konfigurationswerte wie URLs, Verzeichnispositionen, Benutzernamen / Kennwörter, Cache-Größen, Protokollstufen usw. im Code zu schwer zu wartenden Java-Anwendungen führen.

Anstatt Konfigurationsparameter fest zu codieren, müssen Sie sie in einer Eigenschaftendatei externalisieren.

Schreiben Sie keinen plattformspezifischen Code

Obwohl Java plattformunabhängig ist, wird Ihre Java-Anwendungsplattform abhängig, wenn Sie nicht vorsichtig sind. Java-Programmierer sollten nichts codieren, was mit dem lokalen Betriebssystem zusammenhängt.

Vermeiden Sie das Packen mehrerer Versionen derselben JAR-Dateien

Das Verpacken von Utility-JAR-Dateien an mehreren Stellen, insbesondere verschiedener Versionen derselben Utility-JAR an verschiedenen Orten, ist die Ursache für viele Produktionsprobleme.

Sie müssen über eine saubere Build- und Versionsverwaltung verfügen, insbesondere für interne Anwendungen. Erwägen Sie die Verwendung von Maven für das Abhängigkeitsmanagement. Dies erleichtert das Leben erheblich, als versionierte JAR-Dateien im lib-Ordner zu speichern.
Vergessen Sie nicht, die Qualität der Arbeit zu bewerten, die der Freiberufler während der Prüfungen geleistet hat. Analysieren Sie seinen Grad an Kreativität und Herangehensweise an die Situation. Denken Sie, dass sie für die Aufgabe bereit sind?

Thank you

We'll get back to you as soon as possible.

Got a project idea?

Fill in an enquiry form and we’ll get back to you as soon as possible.

Acknowledgements

Unbeatable tech experience

“I interviewed about a dozen different firms. DevsData LLC is truly exceptional – their backend developers are some of the best I’ve ever worked with. I’ve worked with a lot of very well-qualified developers, locally in San Francisco, and remotely, so that is not a compliment I offer lightly. Their depth of knowledge and their ability to get things done quickly.
group-139nicholas_circle
Nicholas Johnson

MENTOR AT YC, CEO OF ORANGE CHARGER LLC

Acknowledgements

Acknowledgements