Design Patterns & AntiPatterns & Design Princibles

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites

    Design Patterns & AntiPatterns & Design Princibles - Presentation Transcript

    1. TASARIM KALIPLARI
      Taner Diler
      taner@jtpd.org
    2. Java Teknolojileri ve Programcıları Derneği 2007 yılında kurulmuştur.
      Hedefimiz Java ile program geliştirmeye gönül vermiş insanları platform altında toplamak
      Java ile programlama bağımlılığını yeni nesillere kazandırmak
      Türkiye’deki yazılım kalitesini Java ile kaliteli kod yazan yazılımcılar ile üst seviyeye çıkarmak
      Taner Diler taner@jtpd.org
    3. Tasarım Kalıpları
      Tasarım kalıpları, yazılım ve tasarım sırasında karşılaşılan benzer sorunlara bulunan benzer çözümlerdir
      SmallTalk ortamında kullanıcı arayüzleri için geliştirilen MVC tasarım kalıbı günümüzdeki populerframework’lerin temelini oluşturmaktadır
      Tasarım kalıplarının temelleri, ChristopherAlexander’in “A Pattern Language: Towns, Buildings, Construction” kitabına dayanır
      “Her kalıp sürekli tekrarlayan sorunlara temel çözümü sunar. Bir çözüm milyonlarca kez uygulanır ve her uygulanış bir öncekinden farklıdır” der.
      Dörtlü Çete (Gang Of Four) yazılım dünyasındaki çalışmalarını toparlayıp 1994 de “Design Patterns: Elements of Reusable Object-Oriented Software” kitabını yayınlar
      Taner Diler taner@jtpd.org
    4. Sınıflandırma
      Tasarım kalıpları işleyiş ve soruna yaklaşımlarına göre 3 sınıfa ayrılır
      Yaratım Kalıpları : Nesnelerin yaratımlarını uygulama akışını etkilemeyecek şekilde gerçekleştirilmesine dair önerilerde bulunur
      AbstractFactory
      Singleton v.s.
      Davranışsal Kalıplar : Uygulama akışını etkilemeden davranışsal değişikliklerin kolayca yapılmasına dair önerilerde bulunur
      Strategy
      TemplateMethod v.s.
      Yapısal Kalıplar : Uygulamayı oluşturan yapıların birbirinden ayrılması veya birbirleri ile iletişime geçebilmeleri için önerilerde bulunur.
      Decorator
      Adapter v.s.
      Taner Diler taner@jtpd.org
    5. Tasarım Kalıpları Sunuş
      Tasarım kalıpların sunumunda belli bir sıra izlenir.
      Kalıp ismi ve diğer isimlendirmeleri
      Özellikleri,
      hangi sınıflandırmaya ait olduğu,
      Bir sınıfa mı etki ediyor yoksa birden fazla sınıftan mı oluşuyor, mimari özelliği ile sistem odaklı mı
      Çok kısa bir ifade ile kalıbın amacı
      Hangi sorunlarda nasıl bir çözüm sunduğunun örnek ile açıklanması
      Kalıbı oluşturan yapıların tanımlanması ve işleyişinin açıklanması, UML ile modellenmesi
      Faydaları ve zayıf kaldığı yanları
      Farklı kullanım şekilleri
      Dolaylı veya mantık olarak ilişkili diğer kalıplar
      Taner Diler taner@jtpd.org
    6. Hayatıma Renk Katacak mı?
      Tasarım kalıplarını öğrenmeli miyim?
      Tasarım kalıpları ezberlenmemeli
      Tasarım kalıbı için kod yazılmamalıdır
      Her kalıbın felsefesi benimsenmeli
      Kodun kalitesinde artış
      Taner Diler taner@jtpd.org
    7. AntiPattern
      Tasarım kalıplarına karşı olanların çıkardığı bir kavram mıdır?
      Nasıl yazmak istiyorsam öyle yazarım
      Taner Diler taner@jtpd.org
    8. AntiPatterns
      1995 yılında Andrew Koenig tarafından ortaya atıldı
      AntiPatterns adlı kitap ile ilgi odağı oldu
      AntiPatterns, tasarım kalıpları gibi tekrarlayan yapılardır
      En çok kullanılan AntiPattern’ler
      Copy/PasteAntiPattern
      SpaghettiCodes
    9. Tasarım Kalıpları & AntiPatterns
    10. AntiPatterns Sonucu
      Taner Diler taner@jtpd.org
    11. Tasarım Kalıpları & AntiPatterns
      YinYang ilişkisi
      Neyin kötü olduğunu bilelim ki iyiye yönelelim
      DESIGN PATTERNS
      REFACTORING
      REENGINEERING
      ANTIPATTERNS
      Taner Diler taner@jtpd.org
    12. AntiPatterns
      AntiPatterns
      Maaliyeti Yüksek Proje
      Genişlemeye Kapalı Proje
      Kırılgan Proje
      Taşınamayan,
      Tekrar Kullanılamayan Modüller
      REFACTORING
      REENGINEERING
      DeisgnPatterns
      Esnek Proje (FLEXIBLE)
      Genişliyebilir Proje (SCALABLE)
      Maaliyeti Düşük Proje

      Taner Diler taner@jtpd.org
    13. Tasarım Prensipleri
      Tasarım Kalıplarının temellerini oluşturur
      Tasarım ve Kodlama zamanında uyulması gereken kurallardır
      OCP - TheOpen-ClosedPrincible (DecoratorPattern v.s.)
      SRP - SingleResponsibilityPrincible (FacadePattern v.s.)
      DIP – DependencyInversionPrincible (ObserverDesignPatterns v.s.)
      ProgrammingtoInterface, not an Implementation (StrategyPattern v.s.)
      http://www.martinfowler.com/articles/injection.html
      http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign
      Taner Diler taner@jtpd.org
    14. Nasıl Öğrenirim
      Önce AntiPattern’lara bakılır, yanlışlarımızı öğreniriz.
      Sonrasında HeadFirst : DesignPatterns kitabı alınır
      Internet sitelerinde Tasarım Kalıpları hakkında araştırma yapılır
      OpenSource projelerin kodları incelenir. Mesela: Visitor ve Proxy Tasarım Kalıpları için Hibernate
      UML diyagramını ezberlemeye gerek yok, her şekilde bakmak zorunda kalacaksın
      Bütün kalıpları bilmene gerek yok sadece “bu sorun için şöyle bir kalıp vardı” diyebilmek yeterlidir
      Kötü tasarlanmış projelerde refactoring çalışmaları yapmak
      Taner Diler taner@jtpd.org

    + jtazjtaz, 4 months ago

    custom

    819 views, 2 favs, 3 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 819
      • 542 on SlideShare
      • 277 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 0
    Most viewed embeds
    • 252 views on http://www.jtpd.org
    • 17 views on http://pusulabilgi.com
    • 8 views on http://grou.ps

    more

    All embeds
    • 252 views on http://www.jtpd.org
    • 17 views on http://pusulabilgi.com
    • 8 views on http://grou.ps

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories