Java - Kullandığım ve önerdiğim araçlar

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
Merhabalar!
Her konuma merhabalar ile girmek istiyorum nedense .D
Bu konumda hem daha kolay hemde daha hızlı kod yazabilmeniz için önerdiğim eklentileri ve araçları tanıtacağım.

Hemen geçelim öyleyse;

Lombok
Bu eklenti Java'ya bazı güzel özellikler ekliyor ve işimizi kolaylaştırıyor.
Öne çıkan özellikleri:

- Var / Val ile local değişkenlerin type'ını girmemize gerek kalmaması.
- @NonNull ile otomatik null kontrolleri ekleyebilme.
- @Cleanup ise Java 7'nin Try-With resources sistemine benzer, kaynakları otomatik kapatan özellik.
- @Getter / @Setter ile X getX() ve setX(final X x) tarzı methodları otomatik oluşturmak.
- @ToString ile otomatik java.lang.Object#toString methodunu override / implement edebilme.
- @EqualsAndHashCode ile otomatik java.lang.Object#hashCode ve java.lang.Object#equals override / implement edebilme.
- @SneakyThrows Checked exceptionların gereksiz olduğu yerlerde kullanabilirsiniz, onları arka planda otomatik yakalayıp throwlar.

.. ve daha birçok özellik.

Resmi sitesi:
Project Lombok

SpotBugs
Bu eklenti önceden FindBugs olarak geçiyordu fakat sanırım durduruldu veya IDE için olan eklentilerine güncelleme getirmeyi bıraktılar, tam bir bilgim yok fakat SpotBugs FindBugs'un yeni sürümü olarak geçiyor.

- Kodunuz da ki birçok bugu veya hatayı tespit edip sizi önceden uyarıyor.
- Direk bytecode üzerinde işlem yapıyor ve kodlama stilinize fazla karışmıyor.
- Özellikleri açılıp kapatılabilir ve her uyarının bir öncelik seviyesi var.

Resmi sitesi:
SpotBugs

SonarLint
Bu eklenti kodlama stilinizi kontrol ediyor ve size öneriler sunuyor. Tabii sadece bu değil birçok güvenlik açığını, hatayı, bugu önceden tespit etmenizi sağlıyor. SpotBugs gibi fakat biraz daha katı kuralları olduğunu söyleyebilirim.

- Uyarılarına örnek vermek gerekir ise, eğer java.util.Collection#size() == 0 kullandıysanız bunun yerine isEmpty kullanmanızı öneriyor.
- Veyahut bir önceki NPE ile alakalı konumda bahsettiğim NPE ile alakalı uyarılar verebiliyor.
- Yine aynı şekilde özellikleri açık kapatılabiliyor ve her uyarının bir öncelik seviyesi var. Bunlara göre çözmeniz gereken sorunları önceliklerine göre sıralayıp önce en önemlilerini çözebilirsiniz.

Resmi sitesi:
SonarLint | Fix issues before they exist

Enchanced Null Analysis
Bu benim bildiğim iki IDE'de var, diğer IDE'ler için bir şey diyemeyeceğim.
Daha iyi null analizi sağlıyor ve methodları, fieldleri vb. @Nullable, @NonNull olarak işaretlemenizi sağlıyor.


Lombok'da bulunan @NonNull ile karıştırılmamalıdır, Lombok bu annotation kullanıldığında otomatik null kontrolü ekler fakat bu eklentiler sadece IDE'de bir derleme zamanı uyarısı verir.

Eclipse:

Wiki: JDT Core/Null Analysis - Eclipsepedia
Maven: Maven Repository: org.eclipse.jdt > org.eclipse.jdt.annotation

IntelliJ:

Wiki: Annotations - Help | IntelliJ IDEA
Maven: Maven Repository: org.jetbrains > annotations


Konunun sonuna gelmiş bulunmaktayız! Sizinde kullandığınız ve önerdiğiniz araçlar var ise yorum kısmında belirtebilirsiniz, böylece bende unuttuklarımı veya bilmediklerimi konuya ekleyebilirim. Daha sonraki konularda görüşmek üzere!​
 


BorakanT

ben kimim?
Mesajlar
1,753
En iyi cevaplar
7
Beğeniler
1,732
Puanları
4,850
Ruh hali
Güzel Ve Başarılı Bir Konu Olmuş. Hayırlısıyla Skripti Öğreneyim Javaya Geçerim. Java Çok Üst Seviye
@java10 Bekleriz.
 

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
Güzel Ve Başarılı Bir Konu Olmuş. Hayırlısıyla Skripti Öğreneyim Javaya Geçerim. Java Çok Üst Seviye
@java10 Bekleriz.

Ya skripti tamamen öğrenip öyle geç ya da hiç skript öğrenmeden geç, çünkü Java öğrendikten sonra skript sana çok basit gelecek, skript biliyor isen de Java zor veya çok komplike gelebilir. Java öğreneceksen de önce Java'nın kendisini öğrenip ondan sonra eklenti yazmaya başlaman tavsiyem fakat tabii istediğin gibi yapabilirsin sadece yolu uzatmış olursun yine uğraş ile aynı yola çıkabilirsin fakat önce Java'yı öğrenmen çok daha kolaylaştıracaktır işini.


Orası daha çok API'leri vesaire içeriyor ve biraz uzun bir liste, ben öne çıkan ve kullandığım 3-4 aracı söyleyip kısaca ne yaptıklarını anlatmak istedim.
 

Bernard

Бернард
Site Danışmanı
Geliştirici
Mesajlar
1,286
En iyi cevaplar
61
Beğeniler
2,129
Puanları
5,790
Güzel Ve Başarılı Bir Konu Olmuş. Hayırlısıyla Skripti Öğreneyim Javaya Geçerim. Java Çok Üst Seviye
@java10 Bekleriz.
Bir programlama diline girişmeden önce dil ile yapacağın şeylerde kullanacağın şeyleri öğrenmeni tavsiye ederim. Ben 2-3 sene kadar önce bir dil öğrenmeye başlamadan önce mantık ve algoritma olayları üzerinde durarak alıştırmalar yapmıştım. Ardından C# öğrenmeye başladığımda fazla bir zorluk çekmemiştim. Unutmadan, bir şey yapacakken gördüğün kelimelerin anlamını bilmiyorsan hemen öğrenmeni tavsiye ederim. Yoksa ne yaparsan yap bir şey bilmediğini düşündürür.
 

javabey

git add Brain.java in/earth/people/brainless
Mesajlar
176
En iyi cevaplar
0
Beğeniler
180
Puanları
330
Ruh hali
lombok tan nefret ettiğim kadar hiçbir pluginden nefret etmiyorum intellij de, hem bir türlü çalıştıramadım hemde çalıştırdıktan sonra ne kadar gereksiz olduğunu anladım benim kod stilime göre o yüzden 2 kat siniriliyim .-.
 

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
lombok tan nefret ettiğim kadar hiçbir pluginden nefret etmiyorum intellij de, hem bir türlü çalıştıramadım hemde çalıştırdıktan sonra ne kadar gereksiz olduğunu anladım benim kod stilime göre o yüzden 2 kat siniriliyim .-.

Çalışması için hem IDE'ye eklentisini indirmen hem de Maven veya hangi build sistemini kullanıyor isen ordan artifact / dependency olarak eklemen gerek. Benim genelde kullandıklarım @EqualsAndHashCode, @ToString, @Getter / @Setter ve @FieldDefaults(makeFinal=true) tarzı şeyler. Hızlı oluyor. IDE'den de ToString veya HashCode oluşturabiliyorsun fakat yeni field ekleyince tekrar oluşturman gerekiyor vesaire, hızlılık oluyor böyle.

Çoğu zaman kullanmayı unutup getter ve setterları kendim yazarım ama yinede arada kullanıyorum, veya sonradan farkettiğimde silip @Getter @Setter olarak değiştiriyorum :D
 

Üst