Regions Gayet Güzeldir

31-10-2007

Bugün Regions' a karşı bir dizi yazı okudum.

Bundan daha fazlasını da bulabilirsiniz.

Şimdi bir dakika duralım ve OOP ne olduğunu hatırlayalım. OOP un en önemli özelliklerinden biri detayı bizden saklaması değil miydi? Bu sayede programcının en büyük derdi olarak yönetilebilir - idare edilebilir (manageable) koda ulaşabiliyoruz.

Eğer regions' ı kötü kodu saklamak için kullanıyorsanız zaten geliştirici olarak daha ciddi sorunlara sahipsiniz.

Diğer bir argüman ise uzun class' lar. Bir class çok uzun olabilir bundan doğal bir şey yok. 2000 satıra kadar bence Class uzunluğu gayet doğal ancak method' lar uzun olmamalı. Dolayısıyla 2000-3000 satırlık bir class' ın refactoring gerektirdiğini gözünüz kapalı iddia edemezsiniz.

Regions' a geri dönünce az önce de dediğim gibi yazılım geliştirmede odaklanma önemlidir. Dolayısıyla elinizde geldiği kadarı detayı gözünüzün önünden çekmeye çalışır ve beyninizi alt kodları yani çağırılan fonksiyonları, metodları ve property leri düşünmeden tam olarak yazdığınız koda vermeye çalışırsınız. TDD' nin de hedeflerinin içerisinde bu vardır. Kod yazarken bunu değiştirince neresi patlayacak diye düşünmenizi engellemek.

Özetle Regions bunu size görsel olarak sunuyor. Koddaki yılda ayda bir değiştirdiğiniz Property' leri her zaman görmek için geçerli nedeniniz ne? Kodu neden mantıksal bölgelere ayırmayasınız ki? Bu nokta çok az refactoring' e giriyor açıkçası. Eğer kodu büyük mantıksal bölgelere ayıracaksanız kodu yeni class' lara ayırmak mantıklı olabilir ama her zaman bu geçerli değil. Şahsen paylaşılmayan 20 tane class yazmak yerine sadece 3 class ve içerisinde sadece o class' lar ile ilgili kodları yazmayı tercih ederim.

Özetle kod yazarken gereksiz şeyleri görmemeniz koda daha rahat yoğunlaşmanızı sağlayacaktır. Son olarak otomatik üretilen kod için Regions gene güzel bir çözüm ama otomatik üretilen kodu kendi kodunuzdan tamamen ayrı tutup, özelleştirme için inheritance' ı kullanmak çok daha mantıklı bir hareket.

Özetle Regions sevelim sevmeyenleri kaale almayalım.

Recent Blog Posts

See all of the blog posts