Design Pattern – Başlangıç giriş önbilgi ne nerde nasıl hangi

Emir Buğra KÖKSALAN tarafından tarihinde yayınlandı

java design patternDesign Pattern yada Türkçe ifadeyle Tasarım Desenleri, Tasarım Şablonları. Neden böyle bir mantığa ihtiyaç duyulmuş? On yıllar boyunca çalışacak olan bir projeniz varsa bunu nasıl geliştirirsiniz? Spagetti yöntemle mi? Nesnel yaklaşımla mı? Event driven mı? Veriler nasıl işlenecek ve saklanacak? Kullanıcı ne yapabilecek ne yapamayacak? Hiyerarşik şekilde bir yetkilendirme sistemi olacak mı? Beklenmeyen bir durum olduğunda uygulama nasıl davranacak? Bu soruların hepsi Project Manager ve müşteri tarafından cevaplanır ve bu cevaplar sayfalar dolusu olabilir. Ayrıca proje geliştirilme esnasında farklı sorularla karşılaşılır. Tümünün bir şekilde cevaplanıp uygulamaya konulması gerekir. Peki sürekli geliştirilebilir, çalışan ve müşterinin isteklerini yerine getiren bir uygulama nasıl yazılır?

Yazılım işine on yıllarını vermiş olan mühendisler kafa kafaya vermişler ve bazı standartlar belirlemişler. Sürekli geliştirilebilen, çalışan ve müşterinin isteklerini yerine getiren bir uygulama yazmak için bazı yöntemler belirlemişler. İlk başlarda prosedürel yöntemler kullanılmış. Ekrana yazı yazdırmak, bir yerden veri almak vs vs. Bu yöntem C için işe yarıyordu. Malum C de düşük seviyeli yazılımlar için kullanılan bir dil. Düşük seviyeden kasıt donanım seviyesi yani. Driver yazmak, kernel yazmak filan. Ama bu yöntem büyük projeler için yeterli olmamış. Biraz daha düşünmüşler ve Nesnel Yaklaşımı keşfetmişler yani Object Oriented Programming. Bu yöntemde herşeyi bir nesne gibi görüyoruz. Bu yöntem birçok probleme çözüm buluyor ama tek başına bu da yeterli olmamış. Sonraki adım TDD yani Test Driven Development. Nesnelerimizin beklendiği gibi çalışmasını sağlar. Bir yeri değiştirdiğimiz zaman bu değişiklik diğer yerleri nasıl değiştiriyor, bozuyor mu gibi sorulara cevap verir. Bu da kulağa hoş geliyor fakat hala bazı problemlere çözüm olmamış. Ve son olarak da Design Pattern. Teknik olarak açıklarsak “Kodda bir işi yapmanın standardı” diyebiliriz buna. Örneğin hafızada yeni bir nesne oluşturmak için “new” operatörünü mü kullanmalıyız yoksa static bir method oluşturup “getInstance()” mı demeliyiz? Ya da bir class uygulama ömrü boyunca var olması gerekecek mi? Gerekecekse o class’tan sadece bir tane nesne oluşturulmuş olması gerekir. Yani başka birisinin o classtan bir nesne oluşturamaması gerekir. Buna bir sınırlama koymamız gerekir. Bunu yapmanın yöntemleri Design Pattern konusudur. Ya da mesela veritabanını değiştirdiğimiz zaman da uygulamanın kodunda hiçbir değişiklik yapmadan çalışması gerekir. Bunu yapmanın yöntemi de Design Pattern’ın konusudur.

Design Pattern orta veya büyük ölçekli projeler geliştirmekte olan her programcının bilmesi gereken bir konudur. Küçük projelerde kendi kafanıza göre yazın gitsin ama iş zamanla büyüyecekse mutlaka bu konuyu öğrenmeniz gerekmektedir. Aksi halde bir noktadan sonra uygulama tıkanacak ve geliştirilemez hal alacaktır. Bu yazı dizisinde bazı Design Pattern’lar anlatılacaktır. Anlatımı daha etkin hale getirmek için bir web servis projesi yapacağız. Böylece her konuyu nerede nasıl kullanmak gerektiğini daha iyi anlatmış olacağım.

Takipte kalın.


Emir Buğra KÖKSALAN

Java & PHP Developer

2 yorum

Mehmet NACAR · 22/04/2014 01:33 tarihinde

çiçeem ortadaki kısım çok sığ yazılmış. Ara ara satır başı paragraf filan yap.:D gözümüz ağrayiii…

Emir Buğra KÖKSALAN · 22/04/2014 03:16 tarihinde

bu böyle kalsında bidahaki sefere dikkat ederim 😀

Bir yanıt yazın

Avatar placeholder

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit is exhausted. Please reload the CAPTCHA.

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.