JavaRush /Java Blog /Random-IT /Pausa caffè #70. Come scrivere codice Java più velocement...

Pausa caffè #70. Come scrivere codice Java più velocemente con Lombok. Elenco di formazione per programmatori principianti

Pubblicato nel gruppo Random-IT

Come velocizzare la scrittura del codice Java con Lombok

Fonte: Dev.to Scriviamo lo stesso codice boilerplate in ogni applicazione. Per esempio:
  • Getter;
  • Setter;
  • Designer;
  • Modello di progettazione del costruttore;
  • e altro ancora…
Non sarebbe bello se questo lavoro di routine potesse essere affidato a qualcuno? Ed è qui che Lombok ci può aiutare.Pausa caffè #70.  Come scrivere codice Java più velocemente con Lombok.  Il mio elenco di formazione per programmatori principianti - 1

Cosa sta facendo?

Genera codice byte per queste attività comuni (getter, setter, ecc.) e li inserisce in un file .class, rendendoli utilizzabili nel codice che scriviamo.

Come avviene questo?

Devi aggiungere la dipendenza Lombok alla tua build Maven. Quindi è necessario annotare le classi e i campi desiderati con alcune annotazioni Lombok. Diamo un'occhiata al codice! Senza Lombok:
public class Human {
    private int id;
    private String name;
    private int ageInYears;

    public Human() { }

    public Human(int id, String name, int ageInYears) {
        this.id = id;
        this.name = name;
        this.ageInYears = ageInYears;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAgeInYears() {
        return ageInYears;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAgeInYears(int ageInYears) {
        this.ageInYears = ageInYears;
    }

    // Builder pattern
  public Human id(int id){
        this.id = id;
        return this;
    }
    public Human name(String name){
        this.name = name;
        return this;
    }
    public Human ageInYears(int ageInYears){
        this.ageInYears = ageInYears;
        return this;
    }

    @Override
  public String toString(){
        return String.format("Human(id=%s, name=%s, ageInYears=%s)",
                this.id, this.name, this.ageInYears);
    }
}
Ora usiamo Lombok:
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
La dipendenza Maven è simile alla seguente:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
Nota: la parte della versione cambierà a seconda dell'ultima versione di Lombok.

Cosa abbiamo fatto?

Abbiamo utilizzato le annotazioni per creare getter, setter, costruttori, il modello di progettazione Builder e l'implementazione toString. Possiamo anche apportare modifiche ad alcune annotazioni, come il setter per il campo id. Impostiamo il suo livello di accesso su None: ciò significa che non creeremo un setter per esso.

Valeva la pena farlo?

Abbiamo scritto 52 righe quando non usavamo Lombok. Abbiamo scritto 8 righe utilizzando Lombok. Lombok ci ha aiutato a ridurre la dimensione del codice di quasi 4 volte . Questo punteggio può essere migliorato se abbiamo più variabili nelle nostre classi. Lombok ha molte più annotazioni con molte informazioni utili. Per visionarli visitate il sito .

Conclusione

Lombok ti aiuta a concentrarti sul codice aziendale e a non preoccuparti dei piccoli dettagli (getter/setter/costruttori/modelli di progettazione generali e altri costrutti Java).

Elenco di formazione per programmatori principianti

Fonte: DZone Il mio amico ha un figlio che presto si diplomerà al liceo. Conosce un po' la programmazione e si chiede se dovrebbe diventare un programmatore. Recentemente mi ha chiesto: “Cosa dovrei insegnare dopo?” Pausa caffè #70.  Come scrivere codice Java più velocemente con Lombok.  La mia lista di formazione per programmatori principianti - 2Quando ho iniziato a imparare a programmare, ho pensato che la risposta alla domanda “Cosa dovrei imparare dopo” sarebbe stata una nuova tecnologia di programmazione, un nuovo linguaggio, una nuova libreria o qualcosa del genere. Man mano che progredivo nella mia carriera, ho cambiato idea. Oltre ad affinare le tue capacità di programmazione e ad apprendere nuove lingue, gli aspiranti programmatori dovrebbero studiare in campi correlati (lo spiegherò di seguito). In questo testo voglio raccogliere un elenco di competenze che consiglierei ai programmatori di padroneggiare. Il mio obiettivo non è elencare tutte le conoscenze attuali o fornire collegamenti a tutorial. Voglio invece aiutare i neofiti a familiarizzare con una serie di strumenti, tecniche e competenze che possono aiutarli a scrivere programmi.

Riga di comando

Immagino di essere già considerato "vecchio" secondo alcuni standard. Ai miei tempi, usare un computer significava sedersi in DOS e digitare comandi. Molto è cambiato da allora. È molto importante imparare come utilizzare la riga di comando. Molti strumenti forniscono solo un'interfaccia a riga di comando. In alcuni casi, puoi lavorare più velocemente dalla riga di comando. Dovresti essere in grado di fare cose basilari come:
  • Attraversamento delle directory.
  • Gestione dei file (copia/sposta/elimina).
  • Compilazione e/o esecuzione del codice sorgente.
Se utilizzi Windows, ti consiglio di acquisire familiarità con Linux, magari utilizzando WSL2 invece di una macchina virtuale completa. Se utilizzi un Mac, puoi utilizzare la shell integrata nel sistema operativo. Puoi anche ottenere una buona esperienza installando una macchina virtuale Linux.

Controllo della versione

Devi imparare come tenere traccia del tuo codice sorgente utilizzando il controllo della versione. Il software di controllo della versione ti consente di tenere traccia della cronologia delle revisioni del tuo progetto, che può essere vitale per il debug. Inoltre semplifica la collaborazione sulla base di codice. GitHub e GitLab sono due siti popolari per l'hosting di progetti open source. Entrambi usano Git (come immagino suggeriscano i nomi). Git è lo strumento più popolare al giorno d'oggi, quindi consiglierei di fare i conti con l'utilizzo di Git sulla riga di comando con GitHub o GitLab come repository.

Reti

La maggior parte dei programmi oggi richiedono almeno un certo livello di networking. Capire come funzionano le reti è importante. Come minimo, dovresti comprendere le nozioni di base come indirizzi IP, porte e protocolli. Imparare a conoscere i firewall, il bilanciamento del carico e i proxy ti ripagherà in seguito. E non solo nella tua carriera di programmatore. D'accordo, è bello capire la domanda "perché il Wi-Fi non funziona?" Consiglierei anche di apprendere le basi dei servizi cloud come AWS e Azure. Provare a configurare un AWS Virtual Private Cloud con sottoreti, regole di accesso e gateway ti offrirà esperienza di rete.

Test

Una parte integrante della scrittura di un buon software è imparare a testare il software. Molti di noi imparano a programmare e poi a “testare” il nostro codice. I test unitari e di integrazione sono competenze essenziali che possono essere applicate a quasi tutti i software su cui lavori. Sebbene all'inizio i test possano sembrare noiosi, questa abilità ti ripagherà e ti consentirà di lavorare più velocemente e con maggiore sicurezza.

Integrazione continua

L'integrazione continua, o CI, combina test e controllo della versione. Ogni volta che crei una nuova iterazione di codice, hai una serie di test che vengono eseguiti automaticamente. Gli strumenti CI sono migliorati significativamente negli ultimi 10 anni. GitHub e GitLab dispongono di soluzioni CI integrate (GitHub Actions e GitLab CI, rispettivamente) e sono facili da utilizzare. Come con i test, iniziare con la CI sarà difficile. Ma una volta apprese le basi, troverai i problemi molto più facili e veloci. Consiglierei di cercare un tutorial dettagliato con esempi per il linguaggio di programmazione che stai utilizzando.

Capacità di scrittura

Questo è probabilmente l'ambito che ho sottovalutato maggiormente quando ho iniziato a lavorare come programmatore. Non sto esagerando: ormai credo che la capacità più importante che un programmatore possa aggiungere al proprio arsenale sia la scrittura. Buone capacità di scrittura significano che puoi spiegare chiaramente un'idea utilizzando un numero minimo di parole. Quando impari a programmare, di solito lavori da solo, quindi scrivere non è necessario. Ma quando inizierai a lavorare in team, dovrai scrivere:
  • Documentazione;
  • Segnalazioni di bug;
  • Richieste di funzionalità;
  • Suggerimenti dei clienti;
  • Documenti con requisiti;
  • E-mail (tante e-mail!);
  • Messaggi di testo;
  • Post del blog (possibilmente);
Impara a scrivere. Esercizio. Segui un corso di scrittura. Pagherà dividendi per il resto della tua vita. Inoltre: impara a leggere bene. Quando ho iniziato lo sviluppo professionale, ero intimidito dai documenti sui requisiti. Ora mi rendo conto che dedicare qualche ora a studiare attentamente queste informazioni ti farà risparmiare mesi sprecati a costruire la cosa sbagliata.

Altri linguaggi di programmazione

Al giorno d’oggi non è sufficiente conoscere un solo linguaggio di programmazione. Quasi ogni programmatore dovrebbe conoscerne almeno alcuni. È importante studiare altre lingue per apprendere nuove tecniche. Consiglio di imparare alcune diverse categorie di lingue. In ordine decrescente di priorità: Programmazione funzionale. La maggior parte delle scuole ancora non insegna la programmazione funzionale (FP). FP è un approccio potente che semplifica la scrittura di molti tipi di codice. Sono di parte, ma consiglierei Haskell come lingua migliore da imparare poiché ti aiuterà a comprendere FP meglio di molte altre lingue. È anche utile imparare una lingua della famiglia LISP. Imparare la programmazione funzionale ti aiuterà a scrivere codice migliore in quasi tutte le lingue. Programmazione del sistema. I linguaggi di sistema appartengono ad un livello inferiore e consentono un migliore controllo sul funzionamento del programma. Studiandoli imparerai come funziona il programma sul sistema, il che può essere molto utile per comprendere ed eseguire il debug dei problemi in altri linguaggi. Consiglio di imparare Rust, poi C e C++. Linguaggi orientati agli oggetti. Java e C# sono i due linguaggi orientati agli oggetti più popolari di questa famiglia. (Sì, anche Python e C++ sono popolari, ma li evidenzierò separatamente). L'OOP ha introdotto molti nuovi paradigmi ed è probabilmente ancora l'approccio di programmazione più popolare, anche se personalmente preferisco gli approcci di programmazione funzionale. Tuttavia, c'è molto da imparare dalla programmazione orientata agli oggetti ed è probabile che finirai per scrivere codice orientato agli oggetti nella tua carriera. Sceneggiatura. Python e Ruby sono due linguaggi di scripting popolari nella famiglia delle applicazioni orientate agli oggetti. In particolare, Python è ampiamente utilizzato in campi correlati come DevOps e data science. Inoltre, è un linguaggio semplice con cui è abbastanza facile iniziare.

Metodi di programmazione

Indipendentemente dal linguaggio di programmazione che utilizzi, vale la pena familiarizzare con alcune tecniche aggiuntive che vanno oltre il tuo linguaggio specifico, tra cui:
  • Programmazione di banche dati. Consiglio vivamente di imparare SQL. SQLite e PostgreSQL sono due DBMS open source da esplorare.
  • Parallelismo e programmazione asincrona. Questo sta diventando sempre più importante oggi.
  • Programmazione di rete , in particolare creazione di server e client HTTP.
  • Creazione di un'interfaccia web utilizzando HTML/CSS/JavaScript.
  • Serializza i dati in formati come JSON, YAML e file binari.

Conclusione

Le informazioni di cui sopra possono sembrare complicate. Non devi pensare di dover imparare tutto questo per diventare un programmatore. Questo è sbagliato. Diventare un grande programmatore richiede tempo e pratica professionale. Se non hai ancora iniziato a programmare, ti consiglio di iniziare con alcuni progetti per animali domestici. Prendi in considerazione la possibilità di contribuire a progetti open source: questo ti aiuterà a sentirti a tuo agio e a imparare da programmatori esperti. Molti programmatori amano condividere le proprie conoscenze con i principianti.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION