Tasarım desenlerinin ayrı başlıklar halinde incelenmesi bazı arkadaşlarda "Sadece Birini" tercih edebileceği izlenimini oluşturabiliyor. Bu yanlış bir algıdır. Örneğin Factory tasarım deseni ile Singleton tasarım deseni bir arada kullanılarak daha iyi sonuçlar elde edilebilir. Aynı şekilde birden fazla başka tasarım desenlerini de birarada kullanabilirsiniz. Bu yazıda kurucu tasarım desenleri sınıfında bulunan Singleton tasarım deseni üzerine bilgiler paylaşacağım.
Tasarım desenleri(Design Patterns) yazılımcıların karşılaştığı sorunları minumuma indirmek için ortaya çıkmıştır. Creational(Kurucu), Structural(Yapısal), Behavioral(Davranışsal) olmak üzere 3 sınıfa ayrılır. Nesne tabanlı yazılımlar geliştirirken kodların birbirinden maksimum oranda bağımsız olması; yeniden kullanılabilir, kolayca geliştirilebilir ve değişiklik yapmamız gerektiğinde minumum kod yazarak müdahale edebileceğimiz yapıları ortaya çıkarmamızı sağlar. Böylece işgücünden ve zamandan maksimum faydayı elde ederiz.
Php'de oluşturduğumuz değişkenleri bir dizi haline getirmeye ihtiyaç duyuyoruz çoğu zaman. Değişkenleri compact() fonksiyonu ile kolay bir şekilde dizi haline getirebiliyoruz. Bu dizinin içinde bulunan index'leri değişken olarak kullanmamız gereken durumlarda ise extract() fonksiyonunu kullanıyoruz. Lafı fazla uzatmadan örnekler ile konuyu anlatmaya çalışayım.
Html kullanarak statik siteler hazırlarken kullanıcılardan herhangi bir veri alamıyorduk. Web sitelerini sadece kullanıcılara bilgi sunmak amacıyla kullanıyorduk. Dinamik sitelerin "lüks" olmaktan çıkıp, "standart" haline gelmesi ile birlikte kullanıcıların bilgilerini alıp işlemek yazılımcıların en çok yaptığı işlemlerden biri oldu. Biz yazılımcılara "kullanıcı" gibi düşünüp, girebileceği değerleri analiz edip, veri tiplerini ve doğruluğunu kontrol etmemiz zorunluluğunu getirdi.
Linux Kullanıcıları Derneği ve Yeditepe Üniversitesi Bilgisayar Topluluğu tarafından "Özgür Web Teknolojileri Günleri 2010" adı altında bir organizasyon düzenleniyor. Organizasyon 15-16 Ekim 2010 tarihinde İstanbul Yeditepe Üniversitesi 26 Ağustos Yerleşimi’nde düzenleniyor. Katılım için herhangi bir ücret ödemeniz veya kayıt yaptırmanız gerekmiyor. Web yazılımları geliştirenler, web uygulamaları yönetenler, özgür yazılım meraklıları, üniversite öğrencileri ve bilişim sektörü çalışanlarının organizasyona katılması tavsiye ediliyor.
Biz yazılımcılar devamlı "daha kolay" işimizi halletmenin yollarını arıyoruz. Çünkü ihtiyaçlarımızın bir sınırı bulunmuyor. Önceden fonksiyonlardan oluşan kodlarımız bulunuyordu ve bunları istediğimiz yerde çağırıp kullanıyorduk. Sonra fonksiyonlar bize yetersiz gelmeye başlayınca sınıflar kullanarak nesne tabanlı yazılımlar hazırlamaya başladık. Artık farklı sınıflarda aynı ismi taşıyan fonksiyonlar, değişkenler vb. tanımlayabiliyorduk. Ve yakın zamanda aynı isimde sınıflar oluşturma ihtiyacımızda oluşunca, php 5.3.0 versiyonu ile namespace'ler yardımımıza yetişti. Namespace kullanarak artık aynı isimde sınıflarıda tanımlayabiliyoruz. Aşağıda 2 farklı örnek ile namespace konusunu anlatmaya çalıştım.
Türkiye'de henüz tam anlamıyla yaygınlaşmasada, framework yapıları her geçen gün popülaritesini arttırıyor. Framework yazılımın iskeletini oluşturan, sınıfları ve fonksiyonları içinde barındıran, geniş çaplı bir kütüphanedir. Yazılım geliştiriciler framework'ün sunduğu kütüphaneyi kullanarak daha kısa zamanda daha fazla iş üretebiliyor, daha düzenli bir yapı ortaya çıkarabiliyor ve dolayısı ile ileriye dönük çok daha kolay geliştirilebilir uygulamalar hazırlayabiliyorlar.Framework yapısını anlayabilmek ve etkin bir şekilde kullanabilmek için daha önce nesne tabanlı yazılım geliştirmiş olmanız gerekiyor. Eğer php dilini yeni öğrenmeye başlamışsanız ve nesneye dayalı programlamayı tam olarak kavrayamadıysanız framework dökümanları size karışık gelebilir.