Design Patterns

Tasarım Kalıpları

Ratings: 4.75 / 5.00




Description

Bu kursun amacı, katılımcılara, GoF (Gang of Four ya da Dörtlü Çete) ve yaygın diğer tasarım kalıpları üzerinden yazılım tasarımı disiplini kazandırmaktır. Dolayısıyla kursta şu yetkinliklerin kazandırılması amaçlanmaktadır:

  • Yazılım tasarımında soyut düşünme/modelleme,

  • Yazalım tasarımın temel problemleri, kavramları ve teknikleri,

  • Sık rastlanan yazılım problemleri üzerine düşünme,

  • Kalıpların iş alanlarındaki problemlere uygulanması,

Tüm bunlar temelde GoF’un ortaya koyduğu dil, yaklaşım ve kalıplar üzerinden yapılacaktır.

Bu kursta şu konular ele alınacaktır:

  • Yazılım karmaşıklığı ve değişim (software complexity and change)

    • Birliktelik ve bağımlılık (cohesion & oupling) ve anti-patternları

    • SOLID, GRASP, Demeter prensipleri

    • Nesne rolleri

  • GoF’un 23 kalıbı: Yaratımsal, Yapısal ve Davranışsal kalıplar

  • Null Object vb.diğer kalıplar

Bu kurs herhangi bir programlama dilinden bağımsızdır. Kursun örnekleri temelede Java ve C#’da verilmekle beraber, kalıpların C++, Python vb. dillerindeki gerçekleştirmeleri de olabildiğince sağlanacaktır. Ayrıca katılımcılar kodlarını istedikleri nesne-merkezli dilde ve ortamda yazabilirler.

Kod örnekleri hem Github'da hem de Eclipse, Visual Studio vb. projeleri olarak paylaşılacaktır. Bunun için 1. bölümün resourcelarına bakın.

Bu eğitim çok detaylıdır, konuları bildiğinizi düşünseniz bile, atlamadan ve sindirerek ilerleyin. Tüm örneklerini çalıştırın, oynayın, bozun, her şeyin nedenini anlayın ve tekrar çalışır hale getirin. Kendi örneklerinizi yazın, benzer teknikleri uygulayın, ödevleri muhakkak yapın.

Bu eğitim online canlı derslerle yapıldığı için sıklıkla katılımcı sorularına cevap verdiğimi göreceksiniz. Umarım bu durum eğitimden elde edeceğiniz faydayı arttırır. Siz de ihtiyaç duyduğunuzda, eğitimle ilgili, yansılarda mesela, herhangi bir yanlışlık, düzeltme ihtiyacı vs. olduğunu düşündüğünüzde bana ulaşabilirsiniz.

What You Will Learn!

  • Tasarım Kalıpları ya da Design Patterns
  • Yazılım tasarımı üzerine soyut düşünce ve modelleme yetkinlikleri.
  • Yazılımın karmaşıklık ve değişim olarak betimlenen doğası
  • OOP pratikleri

Who Should Attend!

  • Nesne-merkezli yapılar hakkında daha soyut düşünerek, daha az bağımlılıklı (lowly-coupled) ve daha yüksek birliktelikli (highly-cohesive) yazılımlar ortaya koymak isteyenler.
  • C++, Java, C#, Python, vb. bir nesne-merkezli programlama dilinde (OOPL) yetkin olup daha tasarımsal düzeyde düşünmek ve kodunu buna göre geliştirmek isteyenler.
  • Yazılım tasarımcıları, yazılım mimarları, tecrübeli developerlar/programcılar ve bu pozisyonların adayları.
  • Ayrıca aşağıdaki ilgilere sahip olanlar da bu eğitimden çok faydalanacaklardır: OOP, dile hakimiyet ve Temiz Kod (Clean Code).