PRIMETEKNOLOJI
 AGILE & OPEN JAVA
AGILE Solutions
 
Design Patterns & Refactoring to Patterns

Design patterns kısaca yazılım geliştiricilerin ortak deneyimlerini ifade eder. Daha önce yaşanan problemleri ve buldukları etkin çözümleri yazılımcılar Pattern yapısıyla dokümante etmişlerdir. Alınan bu dersleri kullanarak OOP prensiplerine uygun Highly Cohesive, Loosely coupled sistemler oluşturularak projelerin sağlam bir tasarıma sahip olması sağlanır. Sağlam tasarımlar geliştirme maliyetlerinin aynı düzeyde tutulmasını sağlar. Design Patterns in bilinmesi ekip içinde tasarımda kullanılacak ortak bir dil oluşmasına da yardımcı olur. Bir Design Pattern' in neden olmadan uygulanması tasarımı gereksizçe karmaşık hale getirir. Bu nedenle eğitimde de işlenecek olan Refactoring yani sürekli tasarım iyileştirmesi pratiği ile birlikte kullanılması yararlar sağlayacaktır.

Bu eğitimde öncelikle Object Oriented Tasarımı kaliteli kılan prensipler incelenir. Daha sonra Design patterns teker teker detaylıca işlenir ve kod örnekleri gösterilir. Sonrasında kötü yazılmış kod örneklerinden yola çıkılarak Refactoring uygulanır ve Design Patterns kullanımı ile bu kötü kod örnekleri ideal çözümlere ulaştırılır.

Eğitimci

Eğitimcimiz Cenk Çivici 2001 yılından beri Amerika'da ve Ingiltere'de Fortune 500 şirketler için yapılan projelerde Agile pratiklerin kullanımı ile ilgili olarak danışmanlık yapmaktadır. Bu pratiklerin kullanımı konusunda lider Thoughtworks firmasında Senior Consultant olarak görev almıştır. Halen Londra ' da danışmanlık faaliyetlerine devam etmektedir.Türkiye 'de Prime teknoloji bünyesinde Agile süreçler ve pratikleri konusunda eğitimler vererek yurtdışında kazandığı deneyimleri Türk şirketleri ile paylaşmayı amaçlamaktadır.

Süre

Eğitim süresi 2 gündür. Eğitimin ikinci günü farklı kodlama alıştırmaları ile Design Patterns pratiği katılımcılara kazandırılır

Design Patterns & Refactoring to Patterns - İçerik

What makes a good design?

  • Open/Closed Principle
  • Liskov Subsitution Principle
  • Dependency Inversion Principle
  • Interface segregation Principle
  • Reuse/Release Equivalency Principle
  • Common closure Principle
  • Stable Dependencies Principle
  • Stable Abstractions Principle
  • High Cohesion / Loose coupling

Design Patterns Introduction

  • History
  • What is a design pattern?
  • Structure of a pattern
  • How to apply design patterns?
  • GOF design patterns
  • Creational Patterns
  • Structural Patterns
  • Behaviour Patterns

Creational Patterns

  • Factory method
  • Abstract Factory
  • Singleton
  • Builder
  • Prototype

Structural Patterns

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Behavioral Patterns

  • Chain of responsibility
  • Command
  • Iterator
  • Mediator
  • Observer
  • State
  • Strategy
  • Template
  • Visitor
  • Interpreter

Refactoring to Patterns

  • Replace Type Code With Strategy/State
  • Replace Conditional With Visitor
  • Encapsulate Classes with Factory
  • Encapsulate Composite With Builder
  • Extract Adapter
  • Extract Composite
  • Form Template method
  • Polymorphic creation with factory method
  • Limit instantiation with Singleton
  • Move accumulation to Visitor
  • Replace Conditional Logic with Strategy
  • Move Embellishment to Decorator
  • Replace hardcoded notifications with Observer
  • Replace constructors with named methods
  • Replace implicit language with Interpreter
  • Unify interfaces with adapter
  • Replace conditional logic with Command
  • Introduce Null object
  • Replace implicit tree with Composite