Ich habe von Programmiersprachen gehört und 20 % der darin enthaltenen Technologien werden häufig verwendet. Was beinhalten diese 20 % in der Sprache Java? Es ist zwei Monate her, seit ich an der Schulung teilgenommen habe, und es bleiben noch zwei Monate. Wenn ich in zwei Monaten einen Job als Junior-Java-Programmierer finden möchte, welche Dinge muss ich beherrschen und was kann ich? Jetzt lernen und verkaufen? Was sind die spezifischen Module eines vollständigen Javaweb-Projekts und welche Technologien werden in jedem Modul verwendet?
Häufig verwendete APIs (String, StringBuffer/StringBuilder usw.)
1. Servlet (selten verwendet). reines Servlet-Schreiben, aber Sie müssen verstehen, da viele Frameworks auf Servlet-Kapselung basieren)
3.json, XML-Lesen und -Schreiben
4. Datenbankzugriff (CRUD, Transaktionen, Verbindungspool). )
5.http-Anfrage (HttpClient)
6 Andere, einschließlich allgemeiner Frameworks, Entwurfsmuster, objektorientiert
Nachwuchsprogrammierer Kennen Sie diese? Dann können Sie das Projekt schreiben. Später auftretende Probleme werden viel komplizierter sein und von der Anhäufung verschiedener Erfahrungen und Kenntnisse abhängen.
Welche Kenntnisse müssen Sie zusätzlich zu den 20 %, die Sie beherrschen müssen, beherrschen, um es mit Leichtigkeit tun zu können? Lassen Sie mich über die Dinge sprechen, mit denen ich in Kontakt gekommen (gebraucht) bin.
Java ist für sein reichhaltiges Ökosystem verteilter Anwendungen bekannt und kann sich der CAP-Entscheidung in verteilten Systemen nicht entziehen. Machen Sie sich frühzeitig mit einigen verteilten Konsistenzprotokollen wie Paxos, Raft usw. vertraut. Lernen Sie die Prinzipien und Nutzungsszenarien von Zookeeper kennen (Metadaten, verteilte Sperren, LeaderEletion ... usw.)
Das RPC-Framework spielt eine wichtige Rolle in der SOA-Architektur. Ich empfehle Alibaba hier Dubbo-Framework und auch Netzwerkbibliotheken wie Netty und Mina
Hadoop-Serie Storm Spark und andere Offline-Echtzeit-Computing-Frameworks
ElasticSearchSolrCloud verteilte Suche ELK-Protokollbezogene Dinge reagieren empfindlicher auf diese, Natürlich gibt es noch mehr Es gibt viele Szenarien, in denen ES verwendet wird
Nachrichtenwarteschlange kafkaMetaQ RabbitMQ Nun, gestern hat sich der Autor von ZeroMQ (nicht vollständig als MQ gezählt) für die Euthanasie entschieden
Dann gibt es noch diverse Grundlagenkenntnisse, Programmiersprachen, Vernetzungsaspekte, Datenbanken, Datenstrukturen und Algorithmen. Denken Sie nicht, dass Sie irgendetwas davon beherrschen. Ich wage zu behaupten, dass es ein paar Zhihu gibt, die sich damit auskennen.
Programmierer Xiaobai trat dem Unternehmen im Juli 2015 bei. Es ist möglicherweise nicht korrekt, da es wächst. Ich werde nur den aktuellen Wachstumsprozess teilen
Mai 2015 Bai (mit einem C-Hintergrund) beschäftigte sich mehr als einen Monat lang mit dem Erlernen von Java, da er kein Interesse an seinem Universitätsfach hatte. Seitdem er zu JavaWEB Development kam, hat er an zwei großen Projekten gearbeitet und n Funktionen unabhängig voneinander entwickelt (große Jungs). Sie machen Witze), ich habe die vom Fragesteller erwähnte 20-Prozent-Aussage noch nicht gehört.
Erzählen Sie mir von Ihren Gefühlen, wenn Sie zum ersten Mal mit der Arbeit beginnen, sollten Sie nicht die Erlaubnis haben, selbstständig neue Projekte zu starten, sondern die Projekte in der Entwicklung verfolgen dürfen
1. Lernen Sie, Eclipse, SVN und andere IDEs und Tools zu verwenden (es hängt natürlich hauptsächlich davon ab, wo Sie arbeiten. Wenn Sie beispielsweise Eclipse verwenden, können Sie IntelliJ IDEA verwenden, müssen es aber tun Wenn Sie zum ersten Mal mit der Arbeit beginnen, verstehen Sie nicht viel. Wenn Sie Fragen haben, stellen Sie diese bitte.
2. Wenn Sie gerade erst in den Job eingestiegen sind und nicht in die Kernarbeit einsteigen können, lassen Sie es mich einfach wissen. Als Webentwickler müssen Sie nicht über Kenntnisse verfügen in HTML, CSS und JavaScript müssen Sie zumindest die Verwendung und Syntax verstehen, aber Sie müssen dies verstehen (das kleine Projektteam meines Unternehmens ist dazu gezwungen). JavaScript ist eigentlich sehr leistungsfähig, aber am Anfang muss man nicht sehr tief schreiben. Es gibt viele Räder, die verwendet werden können, wie zum Beispiel easyui, er wird die offiziellen Dokumente überprüfen Nutzung, betten Sie es in die Webseite ein und formatieren Sie die Daten dann im Hintergrund. Geben Sie es einfach an die Rezeption weiter.
3 Dann begann ich, nach und nach in den Hintergrund zu schreiben und mich mit den Designmustern vertraut zu machen Factory-Muster, schreiben Sie eine Schnittstelle und verwenden Sie dann eine oder mehrere. Jede Implementierungsklasse implementiert diese Schnittstelle. Bestimmen Sie bei Bedarf, welche Implementierungsklasse je nach Bedarf verwendet werden soll. (Ich verstand zunächst nicht, welchen Sinn es hat, dies auf so komplizierte Weise zu tun, aber seit die Datenbank des letzten Projekts von Oracle auf MySQL umgestellt wurde, weiß ich, dass es tatsächlich sehr nützlich ist.) Im Allgemeinen werden Entwurfsmuster verwendet Wenn Sie es nicht verstehen, können Sie es möglicherweise nicht verstehen. Es gibt keine Möglichkeit, mit der Struktur des gesamten Projekts zu beginnen.
4. Verschiedene Unternehmen verwenden unterschiedliche Rahmen, aber Streben und Federn werden immer noch häufiger verwendet, daher ist es besser, mit diesen beiden Dingen vertraut zu sein, sonst kann ich es nicht tun Ich kenne nicht einmal die Struktur des gesamten Projekts, geschweige denn, es selbst zu schreiben, es ist schwierig, es überhaupt zu ändern. Beispielsweise, wie man Projektsprünge konfiguriert und welche Konfigurationsdatei was darstellt. (Nachdem ich angefangen hatte, das Projekt lokal auszuführen, wusste ich nicht einmal, wo die Homepage war und welche Datei eingegeben wurde. Ich suchte weiter nach index.jsp und stellte dann fest, dass das Projekt mit Freemarker erstellt wurde und eine FTL-Datei war)
5. Das Projekt, an dem ich arbeite, verwendet hauptsächlich StringBuffer, um SQL zu verbinden. SQL muss noch verglichen werden. Der kleine Bruder, der mich angeleitet hat, sagte, dass SQL so leistungsfähig ist, dass es nichts gibt, was SQL nicht erreichen kann.
29. Webanwendungsserver (Tomcat, Weblogic)
30.linux
31. Datenbankverbindungspool
33.maven
34.svn
35. Verwendung von Modellierungstools (Powerdesiner, Axure)
36.TCP/IP