Lombok Kullanımı

0 2,664

Uygulama geliştirirken belki en çok sıkıldığımız fakat en çok çıktı ürettiğimiz kod parçalarının çok olduğu bazı zamanlar olabilir. Özellikle her proje başlangıcında yazılan boilerplate kodlar yazılımcıların en sıkıldığı dönem olabiliyor.

Bence asıl işi zorlaştıran ve sıkıcı olan kısım ise entitylerde ekleme çıkarma ve isim değişiklikleri. Çünkü bir özelliğin ismini değiştirdiğinizde, eski getter / setter silip yenisini oluşturmak zaman zaman sıkıcı olabilmekte. İsminde veya tipinde bir değişiklik yapmamız durumunda bu metodlarda da yapmamız gerekiyor. Özellikle entity class’ları için boilerplate koddan sıyrılmak mümkün.

Lombook, bahsettiğimiz boilerplate kodlardan kurtulmak için bazı annotation’lara sahip.

  • @Getter
  • @Setter
  • @NonNull
  • @Data
  • @ToString
  • @NoArgsConstructor
  • @AllArgsConstructor
  • @Equals
  • @HashCode
  • @Builder
  1. Getter / Setter

Getter ve Setter metodları olmazsa olmazlarımız durumda. Peki bu annotation’ları kullanmazsak ne olur?Bu durumu bir model class’ı yazarak göstermek istedim fakat uzun bir kod bloğu olduğu için buraya yazmak yerine github üzerinden erişebilirsiniz. Bu özellikler ilk aklıma gelenler. Eminim ki çok fazla özelliğe sahip olan model class’ları görmüşsünüzdür. Tam olarak bu noktada okunabilirliği ne kadar arttırdığını rahatlıkla görebiliriz.

Peki ya boilerplate kodlar olmadan nasıl gözüküyor?

 

 2. NonNull

Değişkenin null olmamasını sağlar. NullPointerException hatası alırsınız.

 3. Data

Class annotation’dır. getter(), setter(), equals(), canEqual(), hashCode(), toString() metodlarını ve boş constructor oluşturur.

 4. ToString

Class annotation’dır. toString() metodunu override eder. Hangi alanların olmayacağını söyleyebilirsiniz.

  5. NoArgsConstructor

Boş bir constructor oluşturur. Parametre olarak access verebilirsiniz.

Böylece boş constructor üzerinden nesne oluşturamazsınız.

  6. AllArgsConstructor

Entity’de bulunan bütün alanlar ile bir constructor oluşturur. Parametre olarak access verebilirsiniz.

  7. Equals & HashCode

equals() ve hashCode() metodlarını oluşturur.

  8. Builder

Lombok ile builder design pattern’ı da kullanabilirsiniz. Aşağıdaki implementation yerine @Builder annotation’ı kullanılabilir.

Lombok kullanılan class’a buradan, kullanılmayan class’a buradan ulaşıp karar verebilirsiniz.

Projeye Github üzerinden ulaşabilirsiniz.

Kaynak;

Email adresiniz yayınlanmayacaktır.