XP'nin temel mantığı, sistemi kullanılabilir en temel seviyede tasarlamak ve işlerlik kazandırmaktır. Bu seviyeye ulaşılıp ulaşılmadığını da, "test unit" adı verilen ve test amaçlı yazdığımız ufak kod parçacıklarını çalıştırarak anlıyoruz. PHP'yi ele alırsak, bu test için oraya buraya yazdığımız echo, print_r komutlarıyla aynı işlevi gören, ancak belli bir sistematiği olan kodların kullanılması anlamına geliyor. Bu sistemin nasıl kurulduğu konusuna girmeyeceğim, onun yerine size bu linki vereceğim. Bu adresten PEAR'daki konu ile ilgili tutorial'in bağlantısına da ulaşabilirsiniz.
Sistemi biraz inceledikten sonra neden echo ile kolayca deneme fırsatı varken bu işlerle uğraşayım diyebilirsiniz. Bunun birkaç cevabı var.
Öncelikle çalışmanıza bir disiplin kazandırmış oluyorsunuz. Sistemin nasıl çalışması gerektiğini yazdığınız birim-testlerle belirliyor, aldığınız sonuçlara göre uygulamanın istediğiniz gibi çalışıp çalışmadığının yüzdesel ölçümünü yapabiliyorsunuz.
Bir grup olarak çalıştığınızı düşünürsek, ki XP kendi içinde pair programming olarak adlandırılan ve grup çalışmasını bir adım öteye taşıyan bir düzeneğe sahiptir, takım arkadaşlarınız sizin ürettiğiniz kodlar için birim-testler yazabilecek ve kodunuzu onlar da test edebilecek imkana sahip olacaklardır.
Çalışmanız büyüdükçe, kodunuzdaki echo'lar, print'ler sorun yaratmaya, kontrolden çıkmaya başlar. Birim-testlerle, çalışmanızı kontrol altında tutarsınız, belirlediğiniz adımlar dahilinde, %100'e ulaşmadan diğer bir adıma geçmez, kodunuzun içindeki echo'ları temizlemekle uğraşmazsınız.
XP ile ilgili unutmamanız gereken, sizin kodunuzun ve tasarımınızın kalitesini değil, genel düzenin işleyiş kalitesini arttırmayı hedefliyor olduğudur. Yolun yarısında tıkanıp kalmamak için bir yazılım metoduna ihtiyacınız olabilir ve XP size ağır metodların altında sayfalarca doküman hazırlayıp bunların altında ezilmeden, kodlamayı el üstünde tuttuğunuz bir disiplin sunar.
Sistemin nasıl işlediğine detaylı olarak girmiyorum, uygulamadaki detaylar konusunda tecrübem yok kimseyi yanlış yönlendirmek istemem. XP üzerine verdiğim linklerde uygulama aşamasında işinize yarayacak örnekler ve bilgiler bulabilirsiniz, phpbuilder.com'daki yazının amacı da bu zaten. Bunların haricinde XP'nin diğer önemli bacaklarından biri olan Refactoring konusunda da bu adresi ziyaret edip bilgi toplayabilirsiniz.
Extreme Programming, bir anlamda geleneksel yazılım geliştirme metodolojilerine tepki olarak ortaya çıkmış, kodlamayı ön planda tutan, planların her zaman değişikliğe uğramaya mahkum oldukları tecrübesinden yola çıkarak, kodlama ile planlamayı sistem bütünlüğünü tehlikeye atmadan bir arada yürütmeyi hedefleyen bir yazılım geliştirme metodudur. İlk başlarda Smalltalk ile geliştirilen projelerde uygulanmaya başlanmış ve başarı kazanmış bu sistem, bütün programlama dilleri ile uygulanabilir, özellikle günümüzde daha hızlı kod yazımına imkan sağlayan scripting dilleri ile güzel sonuçlar elde edilebilir.
Buraya bilgidata sitesinden yazan arkadaşlar da yanılmıyorsam XP ile ilgili bir şeyler demişlerdi ama tam hatırlamıyorum ve yine hayal meyal hatırladığım kadarı ile bu UNIT TESTING konusu Java programcıları arasında epey kullanılan bir şey.
Neyse, biri somut ve detaylı ve Türkçe bir şeyler yazsa da okusak diyorum ;-)