| « iyi ama ben kimim? | Equals ve == » |
button1_click
arayüz geliştirme ile ilgili her ne çeşit uygulama olursa olsun uzak durulması gereken bir ifadedir bu. görünüş olarak çok masum olarak dursada ne zaman bu ifadeyi görsem kafamda yüzlerce sorun belirir. bu ifadeden neden bu kadar nefret ettiğimin nedenleri aşağıda ama bu nedenlerden bir kaç tanesini kendinizde görüyorsanız çalışma düzeninizi gözden geçirmenizde fayda vardır.
mimari sorunları
uygulamanın mimarisi ile ilgili bir component based geliştirilmemiş, arayüz üzerindeki bileşenler arasında bağımlılığın son derece yüksek olduğunun işaretidir ve yapılacak en ufak değişiklikte yan etkilerinin ne olacağı kestirilemez. geliştiren kişinin command pattern'in ne olduğunu bildiğini varsayarak bu konuları pekte takmadığı söylenebilir. yaş olarak 2-3 ay'ı geçmiş kodlarda sistemin diğer kısımlarında dailywtf'dakilerle yarışabilecek yamalar görmeniz beklenmeyecek bişey değildir.
kod kalitesi
bu metod (yada event handler) içerisindeki satır adedi direkt olarak kod kalitesini gösterir. "button1_click" ifadesinden kodu okuyan kişinin hiç bir şey anlamayacağı üzerinden gidersek devam eden satırlarda "combox37_SelectedValueChanged" gibi bir başka bir metod çağrısı beklenebilir ve önünüzde duran kodun ne iş yaptığı konusunda hiç bir fikriniz yoktur. bu durumda uygulamaya bakım yapan kişinin kodu anlamaktan öte random testlerle "allahın belası uygulamayı çalıştırmak" gibi bir derdi vardır. test'lerden birinin istenilen sonucu vermesi sonucunda öncekinden daha kötü bir harabe ile sistem production'a alınır.
geliştiren ekip
uygulamadan sorumlu "lead developer" arayüz ile ilgili kodları pek umursamıyor yada "lead developer" yoksunluğundan uygulamanın modülleri ekip içerisinde paylaşılmış, herkesin kafasına göre takıldığı bir ortam sezilebilir. bu tür kodlar bulunan bir uygulamanın yazıldığı şirkette genellikle 3-9 ay arasında tüm ekip değiştiği için her 1 yıl içerisinde uygulama yeniden yazılır. yeni gelenlerinde bu yolu takip etmeleri durumunda bir osmanlı yürüyüşü (2 ileri 1 geri) uzaktan bakıldığında görülebilir.
en iyi durumda stress altında yazılmış bir koddur ve takvime göre gecikmiş bir uygulamadır. süregelen bu tür kodlar uygulamayı daha kötü bir hale sokar ve uygulama bitse bile herkesin dokunmaya korktuğu bir doğarken ölmüş bir uygulama olarak şirket tarihine geçer.
arge & re-enginerring
arge faaliyetleri olmadan geliştirilmiş yada ekip içerisindeki en az 1 kişinin bile (bazı durumlarda "lead developer") kod kalitesi gibi konuları üstlenmediği söylenebilir. ekip geliştirilen uygulama hakkında gün içerisindeki 1 saat bile "daya iyi" konusu etrafında düşünmek yerine "make it work" hedefiyle ilerler. optimizasyon kod yazılırken on-the-fly yapıldığı için uygulamanın vereceği performans cpu&ram gibi değerler yerine bilinmezliklerle doludur.
en iyi ihtimalle geliştirilen kodlar source control tool'u olarak projenin başlangıcında bir kaç kez commit yapılmış source safe üzerinde durur ancak şu an pek kimse kullanmıyordur.
neden ?
şu anda üzerinde çalıştığınız uygulama sizin eserinizdir. tüm bu maddelerin hiç birinin iyi tarafı yok ve dönüp dolaşıp sizin başınızı ağrıtacaktır.
bu eziyeti kendinize yapmanızın anlamı yok, bu yüzden işe kodunuz içerisindeki "button1_click"leri kaldırarak başlayın.
arge faaliyetlerine önem verin, ofis içerisinde zaman ayıramıyorsanız akşam eve gittiğinizde televizyonda bülent ersoy'u seyretmek yerine 1 saatinizi ayırarak dünyadaki diğer bu işi yapanların bu işi nasıl çözdüğünü öğrenmeye çalışın.
tüm bunlar için geç olduğunu düşünüyor olsanız bile bir sonraki yapacağınız projede bu hataları tekrar etmemeniz şirketiniz bir yana sizin için iyidir.