JavaRush /Blog Java /Random-FR /Pause café #70. Comment écrire du code Java plus rapideme...

Pause café #70. Comment écrire du code Java plus rapidement avec Lombok. Liste de formation pour les programmeurs débutants

Publié dans le groupe Random-FR

Comment accélérer l'écriture de code Java avec Lombok

Source : Dev.to Nous écrivons le même code passe-partout dans chaque application. Par exemple:
  • Getteurs ;
  • Passeurs ;
  • Concepteurs ;
  • Modèle de conception du constructeur ;
  • et beaucoup plus…
Ne serait-il pas bien si ce travail de routine pouvait être confié à quelqu'un ? Et c'est là que Lombok peut nous aider.Pause café #70.  Comment écrire du code Java plus rapidement avec Lombok.  Ma liste de formations pour programmeurs débutants - 1

Que fait-il?

Il génère du code d'octet pour ces tâches courantes (getters, setters, etc.) et les place dans un .class, les rendant utilisables dans le code que nous écrivons.

Comment cela peut-il arriver?

Vous devez ajouter la dépendance Lombok à votre build Maven. Ensuite, vous devez annoter les classes souhaitées, les champs avec quelques annotations Lombok. Regardons le code ! Sans 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);
    }
}
Utilisons maintenant 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 dépendance Maven ressemble à ceci :
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
Remarque : La partie version changera en fonction de la dernière version de Lombok.

Qu'avons-nous fait?

Nous avons utilisé des annotations pour créer des getters, des setters, des constructeurs, le modèle de conception Builder et l'implémentation de toString. Nous pouvons également apporter des modifications à certaines annotations, telles que le paramètre du champ id. Nous définissons son niveau d'accès sur Aucun : cela signifie que nous ne créons pas de setter pour lui.

Cela valait-il la peine de le faire ?

Nous avons écrit 52 lignes lorsque nous n'utilisions pas Lombok. Nous avons écrit 8 lignes en utilisant Lombok. Lombok nous a aidé à réduire la taille du code de près de 4 fois . Ce score peut être amélioré si nous avons plus de variables dans nos classes. Lombok a beaucoup plus d'annotations avec beaucoup d'informations utiles. Pour les consulter, visitez le site Web .

Conclusion

Lombok vous aide à vous concentrer sur votre code métier et à ne pas vous soucier des petits détails (getters/setters/constructeurs/modèles de conception généraux et autres constructions Java).

Liste de formation pour les programmeurs débutants

Source : DZone Mon ami a un fils qui va bientôt terminer ses études secondaires. Il connaît un peu la programmation et se demande s'il devrait devenir programmeur. Récemment, il m’a demandé : « Que devrais-je enseigner ensuite ? » Pause café #70.  Comment écrire du code Java plus rapidement avec Lombok.  Ma liste de formations pour programmeurs débutants - 2Lorsque j’ai commencé à apprendre la programmation, je pensais que la réponse à la question « Que devrais-je apprendre ensuite » serait une nouvelle technologie de programmation, un nouveau langage, une nouvelle bibliothèque ou quelque chose comme ça. Au fur et à mesure que j’avançais dans ma carrière, j’ai changé d’avis. En plus de perfectionner vos compétences en programmation et d'apprendre de nouveaux langages, les aspirants programmeurs devraient étudier dans des domaines connexes (je l'expliquerai ci-dessous). Dans ce texte, je souhaite rassembler une liste de compétences que je recommanderais aux programmeurs de maîtriser. Mon objectif n'est pas de lister toutes les connaissances actuelles ni de proposer des liens vers des tutoriels. Au lieu de cela, je souhaite aider les débutants à se familiariser avec un ensemble d'outils, de techniques et de compétences qui peuvent les aider à écrire des programmes.

Ligne de commande

Je suppose que je suis déjà considéré comme « vieux » selon certaines normes. À mon époque, utiliser un ordinateur signifiait s'asseoir sous DOS et taper des commandes. Beaucoup de choses ont changé depuis. Il est très important d'apprendre à utiliser la ligne de commande. De nombreux outils fournissent uniquement une interface de ligne de commande. Dans certains cas, vous pouvez travailler plus rapidement sur la ligne de commande. Vous devriez être capable de faire des choses de base comme :
  • Parcours de répertoire.
  • Gestion de fichiers (copier/déplacer/supprimer).
  • Compilation et/ou exécution du code source.
Si vous utilisez Windows, je vous recommande de vous familiariser avec Linux, en utilisant peut-être WSL2 au lieu d'une machine virtuelle complète. Si vous êtes sur un Mac, vous pouvez utiliser le shell intégré au système d'exploitation. Vous pouvez également vivre une bonne expérience en installant une machine virtuelle Linux.

Contrôle de version

Vous devez apprendre à suivre votre code source à l'aide du contrôle de version. Le logiciel de contrôle de version vous permet de garder une trace de l'historique des révisions de votre projet, ce qui peut être vital pour le débogage. Cela facilite également la collaboration sur la base de code. GitHub et GitLab sont deux sites populaires pour l'hébergement de projets open source. Ils utilisent tous les deux Git (comme leurs noms le suggèrent, je suppose). Git est l'outil le plus populaire de nos jours, je vous recommande donc de vous familiariser avec l'utilisation de Git sur la ligne de commande avec GitHub ou GitLab comme référentiel.

Réseaux

Aujourd’hui, la plupart des programmes nécessitent au moins un certain niveau de réseautage. Comprendre le fonctionnement des réseaux est important. À tout le moins, vous devez comprendre les bases telles que les adresses IP, les ports et les protocoles. L'apprentissage des pare-feu, de l'équilibrage de charge et des proxys sera payant plus tard. Et pas seulement dans votre carrière de programmeur. D'accord, c'est formidable de comprendre la question « pourquoi le Wi-Fi ne fonctionne pas ? » Je recommanderais également d'apprendre les bases des services cloud tels qu'AWS et Azure. Essayer de configurer un cloud privé virtuel AWS avec des sous-réseaux, des règles de connexion et des passerelles vous offrira une expérience de mise en réseau.

Essai

Une partie intégrante de l’écriture d’un bon logiciel consiste à apprendre à tester des logiciels. Beaucoup d’entre nous apprennent à programmer puis à « tester » notre code. Les tests unitaires et d'intégration sont des compétences essentielles qui peuvent être appliquées à presque tous les logiciels sur lesquels vous travaillez. Même si les tests peuvent sembler fastidieux au début, cette compétence s’avérera payante et vous permettra de travailler plus rapidement et avec plus de confiance.

Intégration continue

L'intégration continue, ou CI, combine tests et contrôle de version. Chaque fois que vous créez une nouvelle itération de code, vous disposez d’un ensemble de tests qui s’exécutent automatiquement. Les outils CI se sont considérablement améliorés au cours des 10 dernières années. GitHub et GitLab disposent de solutions CI intégrées (GitHub Actions et GitLab CI, respectivement) et sont faciles à utiliser. Comme pour les tests, démarrer avec CI sera difficile. Mais une fois que vous aurez appris les bases, vous trouverez des problèmes beaucoup plus facilement et plus rapidement. Je recommanderais de rechercher un didacticiel détaillé avec des exemples pour le langage de programmation que vous utilisez.

Compétences en écriture

C’est probablement le domaine que j’ai le plus sous-estimé lorsque j’ai commencé à travailler comme programmeur. Je n'exagère pas : je crois désormais que la compétence la plus importante qu'un programmeur puisse ajouter à son arsenal est l'écriture. De bonnes compétences rédactionnelles signifient que vous pouvez expliquer clairement une idée en utilisant un minimum de mots. Lorsque vous apprenez à programmer, vous travaillez généralement seul, il n’est donc pas nécessaire d’écrire. Mais lorsque vous commencerez à travailler en équipe, vous devrez écrire :
  • Documentation;
  • Rapports de bogues ;
  • Requêtes de nouvelles fonctionnalités;
  • Suggestions des clients ;
  • Documents avec exigences ;
  • E-mails (beaucoup d’e-mails !) ;
  • Des messages texte;
  • Articles de blog (éventuellement) ;
Apprendre à écrire. Exercice. Suivez un cours d'écriture. Cela rapportera des dividendes pour le reste de votre vie. Aussi : apprenez à bien lire. Lorsque j’ai commencé le développement professionnel, j’étais intimidé par les documents d’exigences. Je me rends compte maintenant que prendre quelques heures pour étudier attentivement ces informations vous évitera des mois de gaspillage à construire la mauvaise chose.

Autres langages de programmation

De nos jours, il ne suffit plus de connaître un seul langage de programmation. Presque tous les programmeurs devraient en connaître au moins quelques-uns. Il est important d’étudier d’autres langues pour apprendre de nouvelles techniques. Je recommande d'apprendre quelques catégories différentes de langues. Par ordre décroissant de priorité : Programmation fonctionnelle. La plupart des écoles n'enseignent toujours pas la programmation fonctionnelle (FP). FP est une approche puissante qui facilite l’écriture de nombreux types de code. Je suis partial, mais je recommanderais Haskell comme la meilleure langue à apprendre car elle vous aidera à mieux comprendre FP que de nombreuses autres langues. Il est également utile d'apprendre un langage de la famille LISP. L'apprentissage de la programmation fonctionnelle vous aidera à écrire un meilleur code dans presque tous les langages. Programmation système. Les langages système appartiennent à un niveau inférieur et permettent un meilleur contrôle sur le fonctionnement du programme. En les étudiant, vous apprendrez comment le programme fonctionne sur le système, ce qui peut être très utile pour comprendre et déboguer des problèmes dans d'autres langages. Je recommande d'apprendre Rust, puis C et C++. Langages orientés objet. Java et C# sont les deux langages orientés objet les plus populaires de cette famille. (Oui, Python et C++ sont également populaires, mais je vais les souligner séparément). La POO a introduit de nombreux nouveaux paradigmes et reste probablement l'approche de programmation la plus populaire, même si je préfère personnellement les approches de programmation fonctionnelle. Cependant, il y a beaucoup à apprendre de la programmation orientée objet, et il est probable que vous finirez par écrire du code orienté objet au cours de votre carrière. L'écriture de scénario. Python et Ruby sont deux langages de script populaires dans la famille des applications orientées objet. Python est notamment largement utilisé dans des domaines connexes tels que le DevOps et la science des données. De plus, il s’agit d’un langage simple avec lequel il est assez facile de démarrer.

Méthodes de programmation

Quel que soit le langage de programmation que vous utilisez, il est utile de vous familiariser avec certaines techniques supplémentaires qui vont au-delà de votre langage spécifique, notamment :
  • Programmation de bases de données. Je recommande fortement d'apprendre SQL. SQLite et PostgreSQL sont deux SGBD open source à explorer.
  • Parallélisme et programmation asynchrone. Cela devient de plus en plus important aujourd’hui.
  • Programmation réseau , notamment création de serveurs et clients HTTP.
  • Création d'une interface web en HTML/CSS/JavaScript.
  • Sérialisez les données dans des formats tels que JSON, YAML et fichiers binaires.

Conclusion

Les informations ci-dessus peuvent sembler compliquées. Vous n’êtes pas obligé de penser que vous devez apprendre tout cela pour devenir programmeur. C'est faux. Devenir un grand programmeur demande du temps et de la pratique professionnelle. Si vous n'avez pas encore commencé à programmer, je vous recommande de commencer par quelques projets favoris. Envisagez de contribuer à des projets open source. Cela vous aidera à vous familiariser et à apprendre auprès de codeurs expérimentés. De nombreux programmeurs aiment partager leurs connaissances avec les débutants.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION