Mihai Surdeanu

Lombok – clean code mai presus de orice!

Așa cum am promis, săptămână de săptămână voi scrie un articol din domeniul IT, un articol menit să ajute programatorii aflați la început de drum să afle mai multe lucruri și de ce nu, să își facă viața mai ușoară. Articolele de acest gen vor fi publicate în general, în ziua de vineri, a fiecărei săptămâni.

Asta vom vorbi despre Lombok. Ce este Lombok? Răspunsul este cât se poate de simplu – este o librărie Java prin intermediul căreia se dorește îmbunătățirea calității codului sursă, prin faptul că acesta devine ceva mai clean.

Probabil că deja știți că unul dintre motivele folosirii unui framework sau a unei librării este acela de a spori productivitatea programatorului, prin faptul că acesta va scrie ceva mai puțin cod pentru implementarea task-ului său, prin faptul că va reutiliza o serie de algortimi sau structuri de date deja existente. Această librărie se încadrează perfect în ideea prezentată mai sus.

Prin intermediul unor adnotări, programatorul este ajutat în a genera cod sursă pentru clasa sa. Poate cea mai întâlnită funcționalitate expusă de această librărie este să genereze getterii si setterii pentru clasele model. Dacă ați terminat o facultate de profil, ați auzit cu siguranță că getterii și setterii sunt importanți în definirea interacțiunii cu respectiva clasă. Și primul pas pe care îl faceați după definirea variabilelor de clasă, era să generați getteri, setteri și contructori folosind click-dreapta din IDE. Acum lucrurile sunt și mai simple…

Pentru început va trebui să imporți dependența în POM-ul asociat proiectului tău:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

Apoi, vei putea să pui adnotările de Lombok pe clasa sau variabilele din clasa ta:

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Model {

  private String a;

  private String b;

}

În momentul compilării codului sursă (adică al transformării codului sursă în bytecode), clasa de fapt va arată în genul:

public class Model {

  private String a;

  private String b;

  public String getA() {
    return a;
  }

  public String getB() {
    return b;
  }

  public void setA(String a) {
    this.a = a;
  }

  public void setB(String b) {
    this.b = b;
  }

}

Cu alte cuvinte, clasa noastră va oferi fix aceeași funcționalitate, cu diferența că vom scrie mai puțin cod. Să vă amintesc și de ce limbajul de programare Java nu este atât de iubit de anumiți programatori?

O altă utilizare des întâlnită este pentru a genera metodele equals și hashCode. Pentru aceasta vei avea la dispoziție adnotarea – @EqualsAndHashCode. Nice nu? Apoi, din când în când avem nevoie și de a face clasa noastră să respecte design pattern-ul Builder – adnotarea @Builder este perfectă în acest caz.

Și mai sunt multe altele! Toate feature-urile aduse de această librărie le poți găsi aici: https://projectlombok.org/features/all .

Happy coding! 😉

Mihai

Pasionat de IT. Pasionat de viață. Pasionat de tot ceea ce înseamnă a face o viață mai bună, plină de înțelegere, ajutor reciproc și iubire de aproape.

Adaugă comentariu

Arhive

Arhiva personală