Open personinblack opened 6 years ago
Öneriler için teşekkürler. Söylediklerinizin bir kısmı v1.2'de düzeltildi. Değişken isimlerinde haklısınız, üşengeçlik meselesi. Özellikle gece kodlama yaptığım için bazı şeyler gözümden kaçabiliyor, dikkate alacağım teşekkürler.
Java'ya yeni başladığını tahmin ediyorum ve sana yaptığın bir kaç hatayı göstermek istiyorum.
Kendi domainin dışarısında paket oluşturmamalısın. Eğer bir başka Spigot/Bukkit eklentisi senin gibi aynı şeyi yaparsa classlarınız çakışır ve sorun çıkar. Paketlerini her ne olursa olsun kendi domainin içerisinde tutmalısın. bknz. Bu durumda
listeners
veutils
paketlericom/mhawthor/ranks
paketi içerisinde bulunmalıdır.Yazdığın eklentinin tüm işlevlerini tek bir class içerisinde biriktirmemelisin. Bu hem okunabilirliği azaltır hem de seni kısıtlar. Eklentini classlara bölüp nesne yönelimli çalışmayı deneyebilirsin.
Import ile beraber wildcard
*
kullanmamalısın. bknzBir classı tanımlarken classın
generic type
ını kullanmalısın. ÖrneğinHashMap<String> myMap = new HashMap<>()
yerineMap<String> myMap = new HashMap<>()
kullanman daha doğrudur. (Map interface'inde olmayıp, HashMap classında bulunan bir metodu kullanman gerekmiyorsa) bknz. Bunun nedenini öğrenmek içintype safety
veliskov substitution principle
üzerine araştırma yapabilirsin.Aynı kodu defalarca kez farklı yerlerde yazmak yerine bu kodu bir metoda çevirip tekrar tekrar kullanabilirsin. Henüz farkına vardın mı bilemiyorum fakat programlama yaparken zamanının çoğu kod yazmaktan ziyade yazdığın kodu okumakla geçer. Dolayısı ile yazdığın kod ne kadar düzenli olursa o kadar verimli çalışırsın.
Bir başka classtan aldığın metodların üzerine
@Override
annotationını koy ki o metodun başka yerden geldiği belirginleşsin.Bir metodu okunamayacak kadar uzun tutmamalısın. Gerekirse metodu parçalara bölmeli veya farklı şekillerde yazmayı denemelisin.
Bir satır bu kadar uzun olmamalı. İki farklı proje üzerinde aynı anda çalıştığını ve ikisini yanyana koyduğunu düşün. Bu tarz uzun satırlar bulunurken bunun ne kadar zor olabileceğini anlamışsındır diye düşünüyorum. Aynı satırı şu şekilde yazabilirsin:
Bir değişken tanımlarken, değişkenin ismini açıklayıcı bir şey olarak belirlemelisin. Sırf daha kısa diye
r
,s
,cfk
tarzı kafa karıştırıcı değişken isimlerini kullanmamalısın.Hiç bir şekilde hiç bir değişkeni
null
olarak tanımlamamalı, elinden geldiğincenull
den uzak durmalısın. Çünkünull
kullandığında compile sırasında hata almasan bile eklenti çalışırken hata ile karşılaşabilirsin. Buruntime
hataları her zaman farkedilemeyebilir ve büyük sorunlara yol açabilirler.Sebebi ne olursa olsun
public static
kullanımından uzak durmalısın.static
sözcüğü sen bir şeylere daha rahat erişebil diye bulunmuyor.static
sözcüğünün bulunma sebebi bir değişkenin her yerde aynı değere sahip olmasını sağlamak veya bir metodun sürekli ve her kullanımda aynı sonucu döndürdüğünden emin olmaktır.Bana ulaşmak istersen...