folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Tasarım Desenleri Hakkında Soru



Tasarım Desenleri Hakkında Soru

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SkynetX
    SkynetX's avatar
    Kayıt Tarihi: 06/Şubat/2015
    Erkek

    Tasarım desenleri çok hojdır ama anlamadığım bir iki nokta var.

    Şimdi bunları ayrı ayır sınıflar üzerine uyguluyoruz herhalde. Mesela Program.java adında bir dosya ve içinde 10 tane farklı sınıfım olsun.

    Bu sınıflara yaptıkları işlere göre her birine farklı şablon mu uygulanıyor?

     

    Yoksa

    proje taa en başından tasarlanıp tüm projedeki tüm sınıflarda sadece bir tane şablon mu kullanılıyor?

     

    Java nın kaynak kodlarına baktım karışık olarak kullanmışlar.

    Mesela util, lang paketinin içindeki bir çok sınıf Singleton uygulamış. Ama bir çok başka sınıfta açıkça görülebileceği gibi Singleton uygulamamış(birden fazla örnekleri olabilitesi).

     

    Her sınıfın farklı şablon uygulaması projeyi iyici karmaşık hale getirmez mi?

    -------------------------------------------

    Bir de şimdi aklıma geldi,

    Başkasının yazdığı bir projeyi, tasarım şablonu kullanmış mı kullanmışsa ne yapmış tarzında analiz edip, biz nasıl devam edebiliriz?

    SkynetX tarafından 10/May/17 12:49 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SkynetX
    SkynetX's avatar
    Kayıt Tarihi: 06/Şubat/2015
    Erkek

    /up

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SkynetX
    SkynetX's avatar
    Kayıt Tarihi: 06/Şubat/2015
    Erkek

    Yok mu hic bilgisi olan?

     

    /son up

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Tasarım desenleri ile ilgili senin başta yaşadığın "lan şimdi direk deseni yazarak mı başlıyoruz, adam hangi desenini kullanmış nasıl anlıyoruz direk anlaşılıyor mu vs." gibi handikaplar bendede vardı.

    Tasarım desenlerinde ne kadar ustaysan ve ne kadar tecrübeliysen bir yazılım geliştirirken o kadar erken deseni uygulamayı veya gördüğün bir deseni anlayabileceğine inanıyorum.

    Ben genele iteratif olarak desenleri uyguluyorum. Uygulamayı yazmaya devam ettikçe eğer koduna hakimsen yada değişiklik geldiğinde, bug fixlersen veya sıkıntıdan kodu gözden geçirmeye başlarsan temelde bir takım şeyleri fark edebiliyorsun.

    • Kod tekrar ediyorsa
    • Kodu değiştirdiğinde bir çok yer onunla beraber değişiyorsa
    • Aynı iş farklı mantıklarla yapılıyor ve bunları if yada switch ile kontrol ediyorsak

    gibi temel şeyler beni kıllandırıyor mesela. Bu durumları gördüğümde oturup kodun işleyişini bir kağıda çizip bakıyorum. Eğer desenler hakkında bilgim zayıflamışsa yada benzer problemler için google'da arama yapıyorum ve bu işe uygun desen varsa onu implemente etmeye çalışıyorum.

     

    Bazı desenler aslında çok bariz şekilde uygulanacağı yerleri belli ederler. Örneğin Singleton pattern. Herhalde mülakatlardada en fazla çıkan ve en banko cevabı "Aga işte veritabanı bağlantısı singletondır." şeklinde olan desen. 

     

    Önceki programcı tarafından kullanılan deseni nasıl anlayabilirim?

    Genelde desenlerin içinde bazı terimler vardır. Adapter pattern için Adapter, Builder pattern için builder, Singleton pattern için Singleton-instance, Observer pattern için Observer-Observable gibi gibi... 

    Projedeki Interface'lere göz atarakda bu patternları fark etmen kolaylaşabilir. Eğer bir yazılımcı Observer Pattern'ı implemente etmiş ama IObserver, IObservable interface'i kullanmayıp götünden element uydurmuşsa onun amk ben. Böyle tipler olabiliyor onları kaale alma. Pattern'ın olayı zaten bakanın hemen mevzuyu anlaması, fantaziye gerek yok.

    Java kaynak kodundan patternları öğrenmek ve anlamak zor başlangıçta. Onun yerine internette çok güzel makaleler var. "Real World examples" adıyla yayınlanan makaleler işini kolaylaştırır. Çünkü gerçekten aklında oturacak gerçek örnekler olduğu için kavramanı kolaylaştırır.

    Mesela pattern öğrenmek için:

    Kendi cache mekanızmanı yazabilirsin. Burada singleton pattern'i çok güzel implemente edebilirsin. Ayrıca factory pattern'i InMemory-Persistency kısımlarında kullanabilirsin.

    Şimdi buraya kadar benim dilimin döndüğümce cahil aklımca bu kadarlık zamanda anladığım, öğrendiğim ve çıkarımlarım oldu. İşin doğru, tam ve eksiksiz maddeleri için (Loose Coupling, separation of concerns vs.) için biraz OOP nin temellerine ve Wikipedia'ya bakıp ders çalışır gibi önce başlıkları not alıp sonra bu notları tek tek araştırıp bunlarla ilgili örnekler yaparak kendine bir çalışma haritası çıkabilirsin gibi.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    intialcatalog
    intialcatalog's avatar
    Kayıt Tarihi: 10/Aralık/2015
    Erkek

    Patternleri projenin yapısına uygularsın. Veritabanı bağlantısı yapacağın yerde Singleton uygulanabilirken başka classta ihtiyacın olmayabilir. 

    Her class için illa bir pattern kullanmak gerekmiyor.  Hatta paternlere hakim değilsek daha kötü sonuçlar elde etmek mümkündür.

    Önemli olan desing patternları hangi durumlarda kullanılabileceğini düşünebillmektir.

    intialcatalog tarafından 11/May/17 11:36 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SkynetX
    SkynetX's avatar
    Kayıt Tarihi: 06/Şubat/2015
    Erkek

    @TeRRoR;

    Hocam çok teşekkür ederim. Çok değerli bilgiler vermişsin. Öğrendiğim şeyler oldu.

     

    @initialcatalog;

    Hocam teşekkür ediyorum.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    override
    override's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    desenler hakkinda kitaptan yararlanmani taviye ederim C# ile Tasarım Desenleri ve Mimarileri


    g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨ
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek
    override bunu yazdı

    desenler hakkinda kitaptan yararlanmani taviye ederim C# ile Tasarım Desenleri ve Mimarileri

    Zannedersem bu kitapdan vardı bende de güzel anlatıyordu diye hatırlıyorum. Buna bakılabilir. Ayrıca daha temel ve daha eğlenceli eğitim için http://shop.oreilly.com/product/9780596007126.do şu kitap herhalde en ünlüsüdür. Ayrıca @override 'in bahsettiği kitaptaki örnekler github'da varmış onada bakabilirsin hocam.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SkynetX
    SkynetX's avatar
    Kayıt Tarihi: 06/Şubat/2015
    Erkek

    Türk yazarların 3-4 tanesi hariç(Kaan Aslan, Timur Karaçay, Mustafa Başer) almıyorum.  Ama Head First serisi cidden güzel seri. Onu bulmaya çalışayım. Teşekkürler.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Şuda şurda dursun:

    https://www.youtube.com/watch?v=7m88T8-96X4


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Tasarım desenleri sabit olmaz her zaman ihtiyaca göre şekillenir.

    Mesela veritabanı sınıfları çoğunlukla singleton iken herhangi bir projede farklı veritabanı bağlantıları gerekebilir ki ilgili projede veritabanı sınıfının doğurgan desenlerden biri olması beklenir.


    Sadece bi imza..
Toplam Hit: 1571 Toplam Mesaj: 15
design patterns