JavaRush /Java Blog /Random-IT /Giava. Piano d'azione

Giava. Piano d'azione

Pubblicato nel gruppo Random-IT
Giava.  Piano d'azione - 1

Contenuto:

  1. Sezione Zero - Java Core
  2. Utensili
  3. API JDK
  4. Novità di Java 8
  5. SQL, database, JDBC
  6. Quadri
  7. Librerie e framework per i test
  8. Biblioteche di servizio
  9. Client API
  10. Modelli di progettazione
  11. Conoscenza aggiuntiva
Cosa dovrebbe sapere un potenziale Java Junior per ottenere un primo lavoro o almeno candidarsi per una posizione di Trainee in una buona azienda? Quali strumenti aiuteranno un programmatore Java a raggiungere il livello successivo? Quali tecnologie studiare e quali lasciare per dopo? Non esiste una risposta standard a queste domande, così come non esiste un unico piano d’azione adatto a tutti. Alcune aziende si battono per lo sviluppo, introducendo costantemente nuove tecnologie e testando le capacità di nuove versioni del linguaggio, mentre altre si aggrappano ostinatamente a quelle vecchie. Ci sono anche opzioni "intermedie" e, forse, ce ne sono di più. Tuttavia, abbiamo messo insieme una tabella di marcia o una tabella di marcia per un aspirante sviluppatore Java. Nel tentativo di renderlo il più semplice possibile, abbiamo indicato solo le tecnologie e gli argomenti necessari per la stragrande maggioranza degli “javistes”. Va ricordato che non tutto deve essere studiato in dettaglio (alcuni di questi possono essere padroneggiati solo lavorando in squadra), ma non farà male averne una comprensione generale.

0. Sezione Zero - Java Core

Abbiamo inserito la sezione zero nell'articolo per ogni evenienza, nel caso in cui una persona che sta progettando di imparare Java e non sa da dove cominciare venga qui. Java Core è qualcosa che anche un principiante dovrebbe conoscere molto bene. Cioè conoscere le cose di base, capire cosa offre la lingua per risolvere un particolare problema e, in casi semplici, saper applicare questa conoscenza. Puoi esercitarti con Java Core su JavaRush e, se non l'hai ancora fatto, ti invitiamo a seguire il corso ! Bene, per tutti gli altri ricordiamo le principali tappe fondamentali di Java Core:
  • Costrutti Java di base, operatori e tipi di dati
  • OOP e sua implementazione in Java
  • Eccezioni
  • Collezioni Java
  • Generici
  • Multithreading

1. Strumenti

IDE o ambiente di sviluppo integrato

Lo strumento principale di uno sviluppatore moderno è un IDE. Oggi ce ne sono molti sul mercato, ma nello sviluppo Java professionale di solito ci sono solo due nomi. Questo è il gratuito Eclipse , basato su plugin , che ha tenuto la palma per molti anni consecutivi, e IntelliJ IDEA , che ha attivamente sostituito Eclipse negli ultimi anni, e questo nonostante il fatto che un abbonamento alla versione Ultimate sia necessario per i professionisti costano soldi. Ricordiamo che nel corso JavaRush utilizziamo la versione gratuita di Community IntelliJ IDEA, che presenta alcune limitazioni funzionali rispetto a Ultimate. La frase "Conosco l'IDE" significa che hai familiarità con le funzionalità di base dell'ambiente di sviluppo, sai come compilare, eseguire, eseguire il debug e testare i file e refactoring del codice. Padroneggiare i tasti di scelta rapida sarà di grande aiuto per accelerare il tuo lavoro. Non essere pigro, trascorri qualche ora imparando le funzionalità IDE che non conoscevi e inizia a usarle nella pratica. E non trascurare il debug, è un'abilità molto utile. Tutte queste azioni contribuiranno a migliorare significativamente la velocità e la qualità del tuo lavoro.

Strumenti per l'assemblaggio automatico

Oggi, i progetti Java utilizzano molto spesso strumenti come Maven e Gradle. Non è necessario studiarli a fondo, ma sarà utile capire in cosa differiscono tra loro, su cosa si basano, quali sono i compiti (in Gradle) e le fasi con obiettivi in ​​Maven. Sarà sufficiente leggere i sistemi e implementare un paio di piccoli progetti su di essi. Questo è abbastanza semplice da fare e capirai i dettagli in condizioni di lavoro reali.

Sistemi di controllo della versione e servizi di hosting online

Un sistema di controllo della versione è ciò che aiuta i programmatori a lavorare in gruppo su un progetto comune senza “interromperlo”, a sincronizzare pezzi di codice disparati realizzati da persone diverse, a ripristinare gli aggiornamenti non riusciti e ad aggiungerne di nuovi. I più comuni sono due sistemi di controllo della versione. Uno di questi è distribuito e si chiama Git, il secondo è centralizzato, chiamato SVN (aka Subversion). Oggi Git è lo standard de facto. Lavorare con questo sistema è più comodo e più semplice; è supportato da tutti gli IDE (così come SVN). È possibile provare a lavorare con Git in modo semplice e veloce, fortunatamente in Internet si trovano molte informazioni su questo argomento. Ad esempio, il libro di testo interattivo GitHowTo, disponibile in russo (viene letto molto rapidamente). È molto importante che uno sviluppatore alle prime armi padroneggi i servizi di hosting online per i sistemi di controllo della versione. Molto spesso sono basati su Git e sono chiamati piattaforme Git (anche se alcuni di essi possono funzionare con diversi sistemi di controllo della versione). Il più popolare di questi è GitHub. Anche BitBucket e GitLab sono abbastanza comuni. Questi sistemi ti aiutano a memorizzare e recuperare il codice e anche a fare ciò che Git può fare, solo non attraverso la riga di comando, ma attraverso l'interfaccia. GitHub permette anche di controllare il codice e offrire soluzioni ai problemi direttamente sul sito. Lì puoi anche trovare il progetto open source di qualcun altro e provare a offrire le tue soluzioni per migliorarlo. Essenzialmente, GitHub è una sorta di social network per sviluppatori. Quindi, se non l'hai già fatto, assicurati di creare un account su GitHub e ospitare lì i tuoi progetti. Leggi anche di GitLab e BitBucket e, se hai tempo, puoi provarli, hanno versioni gratuite. A proposito, tutte queste piattaforme sono completamente integrate con gli IDE moderni. Giava.  Piano d'azione - 2

2.API JDK

Questa sezione evidenzia le API JDK che un moderno sviluppatore Java deve conoscere con sufficiente sicurezza. Non sarebbe male per un programmatore esaminare di tanto in tanto il codice sorgente di queste librerie, esplorarle e capire quando è necessario utilizzarle e perché. Effetto collaterale: se sei esperto di queste API, probabilmente ti sarà molto più facile affrontare il colloquio.

Framework delle raccolte Java

Il Java Collection Framework è una delle API più importanti del linguaggio Java e ogni sviluppatore dovrebbe conoscerlo. Rappresenta una gerarchia di interfacce e implementazioni di strutture dati standard in Java come elenco, elenco collegato, set, stack, coda, tabella hash e molti altri. Lo sviluppatore deve avere una buona conoscenza delle classi ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet e altre e conoscere le loro proprietà. In particolare, è necessario comprendere i costi in termini di tempo e memoria di una determinata raccolta per operazioni standard (indicizzazione, ricerca, inserimento, cancellazione) e, in base a ciò, applicarle correttamente nei propri progetti. Le raccolte in Java sono implementate molto bene, ma se ce n'è bisogno, lo sviluppatore può offrire la propria implementazione. Un programmatore esperto nelle raccolte può estendere o ridefinire la logica in classi già scritte o implementare tutto da zero.

API di concorrenza Java

Java è stato originariamente progettato per supportare la programmazione parallela e, a partire dalla versione 5.0, il linguaggio include API di alto livello per thread paralleli. Pertanto uno sviluppatore Java competente deve semplicemente avere una buona conoscenza del multithreading e comprendere le principali API dei pacchetti java.util.concurrent.* . Come minimo, è necessario conoscere e comprendere chiaramente cosa sono Thread, Runnable, blocco degli oggetti e sincronizzazione. Assicurati di comprendere i concetti di stallo, livelock, condizioni di gara e cosa fare con tutto questo. Per sentirti sicuro, impara i sincronizzatori da java.util.concurrent.*, come Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture e così via. E anche le interfacce Callable e Future.

API I/O Java

Gli sviluppatori alle prime armi spesso ignorano lo studio approfondito dell'I /O Java e dell'I/O non bloccante Java . Ma invano: queste API Java facilitano il lavoro con i thread e vengono utilizzate regolarmente in applicazioni reali. Soprattutto classi come File, InputStream, OutputStream, Reader e Writer dal pacchetto java.io, che è il nucleo dell'API Java IO. Java Non-blocking I/O (java.nio) è una raccolta di interfacce di programmazione delle applicazioni progettate per implementare operazioni di I/O ad alte prestazioni. Questi includono, tra gli altri, ByteBuffer, FileChannel e Selector. Prenditi la briga di comprendere queste API, non te ne pentirai.

Oggetto classe dispositivo

Una volta compresa la superclasse Object, in un certo senso diventi un “madrelingua Java”, molto più consapevole della struttura OOP e di molti processi. La classe java.lang.Object si trova al vertice della gerarchia delle classi. Oltre a una migliore comprensione di ciò che sta accadendo, conoscere i metodi della classe renderà il colloquio molto più semplice: gli intervistatori adorano testare i candidati con la classe Object e i suoi oggetti.

3. Nuove funzionalità in Java 8

Nonostante sia passato del tempo dal rilascio di Java 8 e siano già apparsi altri aggiornamenti numerati, è stata l'ottava versione a diventare iconica. Ha introdotto importanti innovazioni che semplificano, e in un certo senso cambiano, l'approccio alla programmazione in Java. È necessario comprendere come utilizzare le espressioni lambda, nonché l'API Stream in Java 8 e le nuove API di data e ora.

4. SQL, database, JDBC

Pochi sviluppatori Java non incontrano query e database SQL nel loro lavoro. Pertanto, è importante capire cosa sono i database SQL e relazionali, come funzionano ed essere in grado di scrivere semplici query per unire due tabelle. Per la formazione, puoi provare a lavorare con uno dei DBMS, ad esempio PostgreSQL o MySQL . Sarebbe anche bello acquisire una conoscenza di base di database non relazionali, approcci noSQL e una familiarità superficiale con il DBMS orientato ai documenti MongoDB . Per lavorare con i database in puro Java, puoi utilizzare lo standard JDBC insieme all'API con lo stesso nome. È implementato come pacchetto java.sql, incluso nel JDK. Oggi viene utilizzato raramente nella sua forma pura, ma spesso può essere trovato in applicazioni di supporto più vecchie e gli strumenti più moderni e generalmente accettati sono spesso basati su questo standard.

5. Quadri

Tra i requisiti per uno Sviluppatore Java Junior oggi si trovano sempre più spesso “conoscenze di Spring, Hibernate, Spring Boot”. Imparare da soli queste tecnologie è un compito molto difficile, ma tuttavia è possibile, soprattutto a livello superficiale. Una comprensione più profonda arriverà mentre lavori. COSÌ.

Quadro primaverile

Quasi tutte le applicazioni create in Java oggigiorno utilizzano Spring Framework. Questo potente framework fornisce un sistema di coordinate specifico, la spina dorsale con cui viene creata l'applicazione. Un'applicazione Spring è molto più semplice da testare e mantenere. E tutto grazie all'iniezione di dipendenza.

Ibernazione

Un altro framework molto importante per gli sviluppatori Java è Hibernate. Implementa la specifica JPA (Java Persistence API), che risolve i problemi di mappatura relazionale degli oggetti (ORM). La maggior parte delle applicazioni Java interagiscono con i database e, se parliamo di database relazionali, lavorare con essi senza Hibernate è scomodo. Questo framework fornisce agli sviluppatori una serie di funzionalità importanti, in particolare il caching e le transazioni pronte all'uso, che a loro volta consentono loro di concentrare i propri sforzi sullo sviluppo della logica dell'applicazione e liberano il programmatore da molte attività di basso livello quando lavora con database relazionali . Ciò migliora significativamente la produttività degli sviluppatori.

Primavera MVC

Questo framework garantisce lo sviluppo dell'applicazione secondo il modello Model - View - Controller, utilizzando componenti già pronti liberamente accoppiati. Studia questo modello (i modelli di progettazione sono discussi di seguito) e la logica di Spring MVC. In pratica viene utilizzato abbastanza spesso.

Stivale primaverile

Con le giuste competenze, Spring semplifica la creazione di un'applicazione Java. A sua volta, Spring Boot semplifica la creazione di un'applicazione Java basata su Spring. Spring Boot ti consente di creare facilmente applicazioni Enterprise Spring complete che possono essere avviate con il minimo sforzo: la configurazione automatica elimina la maggior parte dei problemi associati alla configurazione delle applicazioni Spring.

6. Librerie e framework per i test

Alcuni futuri sviluppatori sono sicuri che testare il codice non sia affatto una loro preoccupazione, ma quella di persone speciali chiamate tester. In pratica, non è proprio così. Il test, in particolare il test unitario (più spesso chiamato test unitario), è un'abilità molto importante per ogni programmatore. Inoltre, i nuovi arrivati ​​che hanno appena iniziato il loro incarico hanno spesso il compito di coprire il codice di qualcuno con test unitari. Pertanto consigliamo vivamente di apprendere la libreria JUnit e di sviluppare l'abitudine di scrivere unit test per il proprio codice. Controlla anche il framework Mockito, che può essere utilizzato con JUnit per creare classi di dipendenza fittizie.

7. Biblioteche di servizio

Java ha un numero enorme di librerie di servizi che aiutano a risolvere quasi tutti i problemi che uno sviluppatore deve affrontare. È impossibile studiarli tutti e non ha senso farlo. Ma esplorarli è un'ottima idea. Qui ne evidenzieremo solo alcuni di quelli che vengono utilizzati molto spesso nella pratica.

Librerie per la registrazione

Innanzitutto possiamo citare log4j e Slf4j . Queste librerie sono progettate per nascondere l'implementazione delle operazioni di registrazione di routine che si verificano durante l'esecuzione delle applicazioni Java.

Librerie per JSON

JSON, il formato per il trasferimento delle informazioni dal client al server, è oggi il formato più comunemente utilizzato. Esistono diverse buone librerie che funzionano con JSON, le più popolari sono Jackson e google-gson .

Google Guava

Guava è un progetto con librerie Java principali sviluppate da Google. Qui puoi trovare nuovi tipi di collezioni (multimap, multiset e altre), collezioni immutabili, grafici, funzionali, utilità per il parallelismo, I/O, hashing, elaborazione di stringhe e molto altro.

Apache Commons

Commons è un enorme progetto contenente molte utili utilità Java per vari scopi. Pertanto, le librerie Apache Commons sono alla base di Tomcat, Hibernate e di una serie di altri grandi progetti. Ci sono molte librerie in Apache Commons. Citiamo Commons IO, che semplifica le operazioni di I/O, Commons CSV per lavorare con file csv, Commons Math per lavorare con operazioni e calcoli matematici e statistici complessi, Commons CLI per analizzare gli argomenti della riga di comando.

8. Client API

REST è uno stile di denominazione per gli endpoint per l'accesso alle risorse sulla rete in un formato leggibile dall'uomo. È meglio per uno sviluppatore Java moderno comprendere l'ideologia REST e conoscere anche Spring RestTemplate , una libreria molto utile per creare un client REST.

9. Modelli di progettazione

Se uno sviluppatore alle prime armi ha familiarità con i design pattern, cioè le regole delle buone maniere nella programmazione Java, e sa anche come applicarle nella pratica, aumenterà immediatamente il suo valore sul mercato del lavoro. I principianti spesso sottovalutano i modelli perché raramente creano applicazioni complesse mentre studiano. Tuttavia, se i modelli non vengono applicati a progetti seri, il mantenimento e l’adattamento del codice diventa un compito estremamente difficile. Quindi non essere pigro, studia gli schemi e applicali nei tuoi progetti personali. Il tuo futuro datore di lavoro te ne sarà molto grato.

10. Ulteriori conoscenze

Algoritmi e strutture dati

“Algoritmi e strutture dati” è il nome di un intero corso insegnato nelle università tecniche. Rivela le basi teoriche per la costruzione di varie strutture dati. E nelle lezioni pratiche imparano a lavorare con loro, inserendo e recuperando dati, cercandoli e ordinandoli. In realtà, “Algoritmi” in questa frase significa esattamente ordinamento e ricerca. Nel corso degli anni, gli informatici hanno sviluppato numerosi algoritmi. Alcuni di essi sono di natura educativa, poiché nonostante la relativa facilità di implementazione, non sono molto efficaci nel funzionamento. Ad esempio, funzionano lentamente, il che può essere evidente su pool di dati di grandi dimensioni. Oppure consumano molta memoria. Altri algoritmi si sono rivelati molto efficaci. Tanto che sono stati inseriti nelle librerie ufficiali della maggior parte dei linguaggi di programmazione. Di conseguenza, oggi non è necessario sviluppare tali algoritmi in modo indipendente. Basta sapere dove si trovano. Eppure, gli sviluppatori più esperti consigliano ai principianti di seguire una “scuola di algoritmi”, implementandoli da soli mentre studiano. Questo sviluppa il pensiero del programmatore. Aiuta anche con le interviste; a loro piace molto porre problemi di ordinamento e ricerca.

Servlet

Un servlet è un modo per gestire una richiesta dell'utente. Oggi non vengono utilizzati ovunque e non sempre, ma sarà utile farsi un'idea al riguardo.

HTML e CSS

Tutti dovrebbero conoscere le basi del layout. Questa conoscenza è abbastanza facile da ottenere e, se non l'hai ancora fatto, dedica un paio di giorni a questa lezione. Allo stesso tempo, ti prenderai una pausa da argomenti più complessi.

XML

Extensible Markup Language era onnipresente nello sviluppo Java. Viene gradualmente sostituito da JSON, ma XML è ancora utilizzato oggi. Non è difficile da imparare, quindi puoi prestare un po' di attenzione a questa lingua.

JavaScript

I sondaggi tra gli sviluppatori mostrano che anche coloro che non hanno assolutamente nulla a che fare con lo sviluppo front-end di tanto in tanto scrivono script in JavaScript. Conoscere le basi di questa lingua può essere considerata una regola di buona educazione, quindi non essere pigro, leggilo e crea una dozzina o due script. Non sarà ridondante.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION