• Save
Design Patterns & AntiPatterns & Design Princibles
Upcoming SlideShare
Loading in...5
×
 

Design Patterns & AntiPatterns & Design Princibles

on

  • 3,905 views

 

Statistics

Views

Total Views
3,905
Views on SlideShare
3,218
Embed Views
687

Actions

Likes
4
Downloads
0
Comments
0

8 Embeds 687

http://www.jtpd.org 576
http://grou.ps 38
http://www.pusulabilgi.com 27
http://pusulabilgi.com 23
http://www.slideshare.net 12
https://www.linkedin.com 5
http://www.linkedin.com 5
http://webcache.googleusercontent.com 1
More...

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Design Patterns & AntiPatterns & Design Princibles Design Patterns & AntiPatterns & Design Princibles Presentation Transcript

    • TASARIM KALIPLARI
      Taner Diler
      taner@jtpd.org
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Tasarım Kalıpları & AntiPatterns
    • AntiPatterns Sonucu
      Taner Diler taner@jtpd.org
    • 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
    • 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
    • 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
    • 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