Son 2-3 haftada oldukça fazla kod ile iç içe oldum. Dolayısıyla bazı merak ettiğim noktaları inceledim ve kendimce sonuçlar çıkardım. Kendi kodunuz üzerinde çalışırken bir noktadan sonra hatalarınız gözden kaçmaya başlıyor. Başka bir yazılımcının kodu üzerinde çalışırken yorum yapma şansınız da oluyor. Bu yazımı iyi bir yazılım için kodlama sırasında dikkat edilecek bazı noktalara ayırmak istedim. Aslında belli bir kapsamı yok. Onun için madde madde giderek dikkatimi çeken noktalara değinmeye çalışacağım.

Anlamlı değişken ve metot adları

Genellikle bu konu ilk sırada gelir. Özellikle acil ve hızlı kodlama gereken durumlarda bu konu hemen hemen göz ardı edilir. Bir değişken düşünün ki “var1” olarak adlandırılmış. Böyle bir durumda kodu yazan kişi bile “Bu ne işe yarıyordu yahu?” diyebilir veya “check”, “process” adında metotlar. Dolayısıyla mümkün olduğunda kısa; ama amacı belli eden kelimeler seçilmeli. Bu yöntem hem kodu yeniden okuyacak kişiye hem de yazılımcının kendisine yardımcı olacaktır.

Uzun metot gövdeleri

Yine telaş anında veya iyi tasarlanmamış bir sınıfta yapılan yanlışlardan birisi, metodu şişirip yüzlerce satıra çıkarmaktır. Yeni bir sınıfta karşılaştığımda önce sınıfın uzunluğuna, içindeki metot sayısına bakıyorum. Uzun metotlar hem yazılımcıyı yormak da hem de debug işlemini zorlaştırmaktadır. Mümkün olduğunca metotları kısa tutup, içerisinde başka metotları kullanmak daha anlaşılır bir yapı sağlar.

Sınıf yapısı

Tıpkı metotlar gibi sınıflar da çok karışık ve uzun tutulmalıdır. Bu durum genel de dikkate alınmaz; çünkü pek kolay olmamaktadır. Bir sınıf hakkında en önemli nokta, sadece ve sadece bir amaca yönelik olmalıdır. Yani eğer bir sınıf file I/O işlemleri için tasarlanmışsa sadece bunu yapmalıdır. Ayrıca hesaplama, database vb işlemleri yapmamalıdır. Farklı görevler farklı sınıflara verilmelidir.

Veri bağımlılığı

Veri bağımlılığından kastım, metotların çalışmaları için parametreye ihtiyaç duymasıdır. Bu tür durumlarda metotların çalışması için ihtiyaç duyduğu veriyi kendi içinde new etmemesidir. Gerekli veri dışarıda new edilip, parametre olarak gönderilmelidir.

Set ve Get metotları

Bu konu da göz ardı edilen önemli konulardan birisidir. Aynı sınıf içerisinde bile olsa, bir değişkene değer atarken set metotları kullanılmalıdır. Yine veri çekilirken mümkün olduğunca get metotları kullanılmalıdır. En büyük amaç kontrollü veri erişimini sağlamaktır. Bunun yanı sıra yine debug işlemleri sırasında yardımı olmaktadır.

Design Patterns

Bir yazılımda mümkün olduğunca uygun tasarım şablonları uygulanmalıdır. Böylece ortak bir yöntem sağlanmış olunur ve geliştirme, hata tespiti, düzeltme ve test daha kolay olur.

Override

İncelediğim kodlarda override konusu dikkatimi çekti. Kodu yazan kişi override ettiği metodu kendi amacına yönelik olarak doldurmuş. Adeta makarnaya dönmüş. Sonradan ben kendi amacıma uygun olarak ekleme yapmak istediğimde, önce var olan akışı çözmekle cebelleştim. Dolayısıyla override metotların içerisi yine kısa metotlarla doldurulmalı. Böylece ekleme sırasında daha anlaşılır bir yapı ortaya çıkar.

Import

Bir sınıfta hoşuma gitmeyen en büyük konu kullanılmayan importlardır. Bir de editörün kenarında sarı sarı uyarılar çıkmaz mı 😀

Güncellik

Eğer ekip halinde çalışıyor ve SVN, Mercurial gibi ortamlar kullanıyorsanız, mümkün olduğunca update kalmaya bakın. Yazdığınız koddan hata dönmesi; ama sizde gerçekleşmemesinin nedeni güncel olmamanız olabilir.

Şimdilik dikkatimi çekenler bunlar. Daha fazla kod daha fazla tecrübe demek 😀

Bol Java’ lı günler dileğiyle…

No responses yet

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.