Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Özcan Acar © 2010   Kurumsal Java Akademisi.com
Nasıl Uzman Yazılımcı
       Olunur?

           Özcan Acar
          acar@unitedinter.net
      http://www.ozcanacar.com
...
Özcan Acar Hakkında
 1974 Đzmir doğumlu
 Bilgisayar Mühendisi
 Sun Certified Enterprise Architect (SCEA 5)
 Sun Java Champ...
Özcan Acar Đletişim

http://www.twitter.com/oezcanacar
http://www.friendfeed.com/oezcanacar
acar@unitedinter.net




     ...
Özcan Acar Hakkında




                            K          JK
                                        K          J
   ...
Java Tasarım Şablonları ve Yazılım Mimarileri
                     Tasarım şablonu nedir?
                     Interface /...
Extreme Programming
        Çevik süreç nedir?
        Çevik manifesto
        Extreme Programming nedir?
        XP değer...
www.BilgeProgramci.com




                              K          JK
                                          K        ...
Bilge Programcı
nedir?



                          K          JK
                                      K          J
     ...
Karateci ve
Yazılımcının Ortak
Yönleri Nelerdir?




                                  K          JK
                     ...
Karate-Do Sporu
Karate-Do‘da kuşaklar
olgunlaşma ve
mükemmelleşmenin
sembolüdür. Bu mükemmellik
sadece Karate-Do
teknikler...
Karate-Do Sporu
Karate-Do da kullanılan kuşaklar
hakkındaki bu kısa açıklamadan, Karate-
Do'nun sahip olduğu prensip, prat...
K          JK
                             K          J
                                        J
Özcan Acar © 2010 Acar ©...
Karate-Do‘dan yola çıkarak Bilge
 Programcı için bir değer sistemi ve
uzmanlaşma metodolojisi formalize
          edebilir...
Bilge Programcılığın Reçetesi
         Değer Sistemi
         Prensipler
         Pratikler
         Olgunlaşma Simgesi


...
Bilge Programcı Kuşakları
Prensip & Pratikler   1. Kuşak: Beyaz
Prensip & Pratikler   2. Kuşak: Sarı
Prensip & Pratikler  ...
Bilge Programcı Bilekliği




                  Özcan Acar © 2009
                             © 2009   Kurumsal Java.com
...
Beyaz Kuşak
Prensipler
  1. Kendi kendini yetiştirme prensibi
  2. Kırık cam prensibi
  3. DRY prensibi


Pratikler
  1. Đ...
30 gün sonra…

   Beyaz Kuşak

    Sarı Kuşak
         Özcan Acar © 2009
                    © 2009   Kurumsal Java.com
  ...
Sarı Kuşak
Prensipler
  1.   KISS prensibi
  2.   Yazılım araçlarına hakim olma prensibi
  3.   Nesneye yönelik programlam...
Kitaplar




Özcan Acar © 2009
           © 2009   Kurumsal Java.com
                    Kurumsal Java.com
30 gün sonra…

    Sarı Kuşak


   Turuncu Kuşak
          Özcan Acar © 2009
                     © 2009   Kurumsal Java.c...
Turuncu Kuşak
Prensipler
  1. Arayüz ayırma prensibi
  2. Bağımlılıkların tersine çevrilmesi prensibi
  3. Liskov'un yerin...
Arayüz Ayırma Prensibi
Interface Segregation Principle (ISP)




                         Özcan Acar © 2009
              ...
Arayüz Ayırma Prensibi
Interface Segregation Principle (ISP)

public class RMIConnector implements Connector
{

      publ...
Arayüz Ayırma Prensibi
Interface Segregation Principle (ISP)




                         Özcan Acar © 2009
              ...
Bağımlılıkların Tersine Çevrilmesi Prensibi
  Dependency Inversion Principle (DIP)




                             Özcan ...
Bağımlılıkların Tersine Çevrilmesi Prensibi
  Dependency Inversion Principle (DIP)




                             Özcan ...
Liskov Yerine Geçme Prensibi
Liskov Substitution Principle (LSP)
Alt sınıflardan oluşturulan nesneler üst sınıfların
nesne...
Liskov Yerine Geçme Prensibi
Liskov Substitution Principle (LSP)

 public void print(A a)
 {
        if(a instanceof B)
  ...
Turuncu Kuşak
Prensipler
  1. Arayüz ayırma prensibi
  2. Bağımlılıkların tersine çevrilmesi prensibi
  3. Liskov'un yerin...
60 gün sonra…

    Turuncu Kuşak


    Yeşil Kuşak
          Özcan Acar © 2009
                     © 2009   Kurumsal Java...
Yeşil Kuşak
Prensipler
  1. Tek sorumluluk prensibi
  2. Açık-Kapalı prensibi
  3. Esnek bağ prensibi
Pratikler
  1.   Bas...
Tek Sorumluk Prensibi
Single Responsibility Principle (SRP)




                         Özcan Acar © 2009
               ...
Tek Sorumluk Prensibi
Single Responsibility Principle (SRP)




                         Özcan Acar © 2009
               ...
Açık Kapalı Prensibi
   Open Closed Principle (OCP)
Programlar geliştirilmeye açık ama değiştirilmeye kapalı
olmalıdır.


...
Açık Kapalı Prensibi
  Open Closed Principle (OCP)

public void on(Object obj)
{
       if(obj instanceof TV)
       {
   ...
Açık Kapalı Prensibi
Open Closed Principle (OCP)




                   Özcan Acar © 2009
                              © ...
Açık Kapalı Prensibi
  Open Closed Principle (OCP)
private RemoteControlInterface remote;

public RemoteControl(RemoteCont...
Stratejik Kapama
Eğer kapama tam sağlanamıyorsa, kapamanın stratejik olarak
implemente edilmesi gerekir.
Programcı impleme...
Esnek Bağ
Loose Coupling (LC)




               Özcan Acar © 2009
                          © 2009   Kurumsal Java.com
  ...
Esnek Bağ
Loose Coupling (LC)




               Özcan Acar © 2009
                          © 2009   Kurumsal Java.com
  ...
Yeşil Kuşak
Prensipler
  1. Tek sorumluluk prensibi
  2. Açık-Kapalı prensibi
  3. Esnek bağ prensibi
Pratikler
  1.   Bas...
60 gün sonra…

    Yeşil Kuşak


    Mavi Kuşak
         Özcan Acar © 2009
                    © 2009   Kurumsal Java.com
...
Mavi Kuşak
Prensipler
  1.   Paket bazındakı tasarım prensipleri
  2.   Komponent tabanlı yazılım prensibi
  3.   Kod konv...
Paket Bazında Tasarım Prensipleri
 • Reuse-Release Equivalence Principle (REP)
 • Common Reuse Principle (CRP)
 • Common C...
Tekrar Kullanım ve Sürüm Eşitliği
Reuse-Release Equivalence Principle (REP)




                            Özcan Acar © 2...
Yeniden Ortak Kullanım Prensibi
 Common Reuse Principle (CRP)




                     Özcan Acar © 2009
                 ...
Ortak Kapama Prensibi
Common Closure Principle (CCP)

 Aynı sebepten dolayı değişikliğe uğrayabilecek sınıfların aynı pake...
Çevrimsiz Bağımlılık Prensibi
Acyclic Dependency Principle (ADP)




                       Özcan Acar © 2009
            ...
Çevrimsiz Bağımlılık Prensibi
Acyclic Dependency Principle (ADP)




                       Özcan Acar © 2009
            ...
Çevrimsiz Bağımlılık Prensibi
Acyclic Dependency Principle (ADP)




                       Özcan Acar © 2009
            ...
Mavi Kuşak
Prensipler
  1.   Paket bazındaki tasarım prensipleri
  2.   Komponent tabanlı yazılım prensibi
  3.   Kod konv...
90 gün sonra…

    Mavi Kuşak

   Kahregengi Kuşak
           Özcan Acar © 2009
                      © 2009   Kurumsal Ja...
Kahregengi
Prensipler               Kuşak
  1. Kişiselleştirmeme prensibi
  2. Anlayana kadar sorma prensibi
  3. Kodu kır...
90 gün sonra…

    Kahregengi Kuşak



    1. Dan Siyah
        Kuşak
           Özcan Acar © 2009
                      ©...
1. Dan Siyah
                             Kuşak
Prensipler
  1.   YAGNI prensibi
  2.   Müşteriye kulak verme prensibi
  3...
1. Dan Siyah
                             Kuşak
Soft Skill
  1.   Takım oyunculuğu
  2.   Đletişim becerisi
  3.   Sorumlu...
1 yıl sonra…
    1. Dan Siyah
        Kuşak

    2. Dan Siyah
        Kuşak
          Özcan Acar © 2009
                  ...
2. Dan Siyah
                            Kuşak
Prensipler
  1. Kendi prensiplerini geliştirme prensibi


Pratikler
  1. Ko...
Bilge Programcı
Prensip & Pratikler   1. Kuşak: Beyaz (30 gün)
Prensip & Pratikler   2. Kuşak: Sarı (30 gün)
Prensip & Pra...
Detaylar için bakınız:



BilgeProgramci.com


                              Özcan Acar © 2009   Kurumsal Java.com
Son
Đlginiz için teşekkür ederim.




                       Özcan Acar © 2009   Kurumsal Java.com
Özcan Acar © 2009   Kurumsal Java.com
JugTR.org




       Özcan Acar © 2009   Kurumsal Java.com
Upcoming SlideShare
Loading in …5
×

Bilge Programcı - Nasıl uzman yazılımcı olunur?

7,075 views

Published on

24.3.2010 tarihinde Elazig Fırat Üniversitesi'nde yapmış olduğum Bilge Programcı - Nasıl uzman yazılımcı olunur? başlıklı seminerimin içeriği. Detaylar için bakınız: http://www.bilgeprogramci.com

Published in: Education, Technology, Sports

Bilge Programcı - Nasıl uzman yazılımcı olunur?

  1. 1. Özcan Acar © 2010 Kurumsal Java Akademisi.com
  2. 2. Nasıl Uzman Yazılımcı Olunur? Özcan Acar acar@unitedinter.net http://www.ozcanacar.com http://www.kurumsaljava.com K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  3. 3. Özcan Acar Hakkında 1974 Đzmir doğumlu Bilgisayar Mühendisi Sun Certified Enterprise Architect (SCEA 5) Sun Java Champion KurumsalJava.com ve JugTR.org kurucusu K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  4. 4. Özcan Acar Đletişim http://www.twitter.com/oezcanacar http://www.friendfeed.com/oezcanacar acar@unitedinter.net K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  5. 5. Özcan Acar Hakkında K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  6. 6. Java Tasarım Şablonları ve Yazılım Mimarileri Tasarım şablonu nedir? Interface / Abstract sınıf nedir? Oluşturucu Tasarım Şablonları Factory, Abstract Factory, Builder, Prototype, Singleton Yapısal Tasarım Şablonları Adapter, Bridge, Facade, Decorator, Composite, Flyweight, Proxy Davranışsal Tasarım Şablonları Command, Memento, Strategy, Iterator, State, Observer, Visitor K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  7. 7. Extreme Programming Çevik süreç nedir? Çevik manifesto Extreme Programming nedir? XP değerleri ve prensipleri Çevik proje planlaması Çevik süreçlerde iletişim Çevik tasarım Sürekli entegrasyon Test güdümlü yazılım Yazılım metrikleri K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  8. 8. www.BilgeProgramci.com K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  9. 9. Bilge Programcı nedir? K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  10. 10. Karateci ve Yazılımcının Ortak Yönleri Nelerdir? K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  11. 11. Karate-Do Sporu Karate-Do‘da kuşaklar olgunlaşma ve mükemmelleşmenin sembolüdür. Bu mükemmellik sadece Karate-Do tekniklerinde değil, büyüklerine sevgi, saygı, toplum kurallarına uymak ve sahip çıkmak , hocalara sonsuz itaat, zayıfları korumak, hoşgörü, inanç, camiayı sahiplenme ve tüm manevi değerler diye devam eder. K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  12. 12. Karate-Do Sporu Karate-Do da kullanılan kuşaklar hakkındaki bu kısa açıklamadan, Karate- Do'nun sahip olduğu prensip, pratik ve ve değer sistemi hakkında fikir sahibi olmak mümkündür. Her bir üst kuşak öğrencinin takip ettiği yolda olgunlaşma seviyesinin göstergesidir. Öğrenci, geldiği seviyenin ihtiva ettiği prensip, pratik ve değer sistemini benimseyerek olgunlaşma sürecinde emin adımlarla ilerler. K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  13. 13. K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  14. 14. Karate-Do‘dan yola çıkarak Bilge Programcı için bir değer sistemi ve uzmanlaşma metodolojisi formalize edebilir miyiz? K JK K J J Özcan Acar © 2010 Acar © 2009 avaurumsal ava.com Özcan urumsal © 2009 urumsal ava.com Akademisi.com
  15. 15. Bilge Programcılığın Reçetesi Değer Sistemi Prensipler Pratikler Olgunlaşma Simgesi Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  16. 16. Bilge Programcı Kuşakları Prensip & Pratikler 1. Kuşak: Beyaz Prensip & Pratikler 2. Kuşak: Sarı Prensip & Pratikler 3. Kuşak: Turuncu Prensip & Pratikler 4. Kuşak: Yeşil BP Değer Sistemi Prensip & Pratikler 5. Kuşak: Mavi Prensip & Pratikler 6. Kuşak: Kahverengi Prensip & Pratikler 7. Kuşak: Siyah Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  17. 17. Bilge Programcı Bilekliği Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  18. 18. Beyaz Kuşak Prensipler 1. Kendi kendini yetiştirme prensibi 2. Kırık cam prensibi 3. DRY prensibi Pratikler 1. Đzci kuralı 2. Kodun ifade gücünü artırmak 3. Her gün tefekkür etmek Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  19. 19. 30 gün sonra… Beyaz Kuşak Sarı Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  20. 20. Sarı Kuşak Prensipler 1. KISS prensibi 2. Yazılım araçlarına hakim olma prensibi 3. Nesneye yönelik programlama 4. Yazılımda test konseptlerinden haberdar olmak Pratikler 1. Interface ve Abstract sınıfları tasarımda kullanmak 2. JUnit Testleri oluşturmak 3. Kalıtım yerine kompozisyon kullanmak 4. Kitap okumak, kitap okumak, kitap okumak 5. Kodu gözden geçirmek Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  21. 21. Kitaplar Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  22. 22. 30 gün sonra… Sarı Kuşak Turuncu Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  23. 23. Turuncu Kuşak Prensipler 1. Arayüz ayırma prensibi 2. Bağımlılıkların tersine çevrilmesi prensibi 3. Liskov'un yerine geçme prensibi Pratikler 1. Sektörün öncülerini takip etmek 2. Yazılımla ilgili konferans ve seminerlere katılmak 3. Versiyon kontrol sistemi kullanmak 4. Test güdümlü yazılım yapmak 5. Bir logging framewörkü kullanmak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  24. 24. Arayüz Ayırma Prensibi Interface Segregation Principle (ISP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  25. 25. Arayüz Ayırma Prensibi Interface Segregation Principle (ISP) public class RMIConnector implements Connector { public void commit() { throw new RuntimeException("not implemented"); } public void rollback() { throw new RuntimeException("not implemented"); } } Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  26. 26. Arayüz Ayırma Prensibi Interface Segregation Principle (ISP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  27. 27. Bağımlılıkların Tersine Çevrilmesi Prensibi Dependency Inversion Principle (DIP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  28. 28. Bağımlılıkların Tersine Çevrilmesi Prensibi Dependency Inversion Principle (DIP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  29. 29. Liskov Yerine Geçme Prensibi Liskov Substitution Principle (LSP) Alt sınıflardan oluşturulan nesneler üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermek zorundadırlar. Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  30. 30. Liskov Yerine Geçme Prensibi Liskov Substitution Principle (LSP) public void print(A a) { if(a instanceof B) { ((B)a).printB(); } else if(a instanceof C) { ((C)a).printC(); } } Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  31. 31. Turuncu Kuşak Prensipler 1. Arayüz ayırma prensibi 2. Bağımlılıkların tersine çevrilmesi prensibi 3. Liskov'un yerine geçme prensibi Pratikler 1. Sektörün öncülerini takip etmek 2. Yazılımla ilgili konferans ve seminerlere katılmak 3. Versiyon kontrol sistemi kullanmak 4. Test güdümlü yazılım yapmak 5. Bir logging framewörkü kullanmak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  32. 32. 60 gün sonra… Turuncu Kuşak Yeşil Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  33. 33. Yeşil Kuşak Prensipler 1. Tek sorumluluk prensibi 2. Açık-Kapalı prensibi 3. Esnek bağ prensibi Pratikler 1. Basit refactoring işlemleri yapmak 2. Tasarım şablonlarını kullanmak 3. Sürekli entegre etmek 4. MVC framewörklerle haşır, neşir olmak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  34. 34. Tek Sorumluk Prensibi Single Responsibility Principle (SRP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  35. 35. Tek Sorumluk Prensibi Single Responsibility Principle (SRP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  36. 36. Açık Kapalı Prensibi Open Closed Principle (OCP) Programlar geliştirilmeye açık ama değiştirilmeye kapalı olmalıdır. Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  37. 37. Açık Kapalı Prensibi Open Closed Principle (OCP) public void on(Object obj) { if(obj instanceof TV) { ((TV)obj).tvOn(); } else if(obj instanceof CDPlayer) { ((CDPlayer)obj).cdOn(); } } Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  38. 38. Açık Kapalı Prensibi Open Closed Principle (OCP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  39. 39. Açık Kapalı Prensibi Open Closed Principle (OCP) private RemoteControlInterface remote; public RemoteControl(RemoteControlInterface _remote) { this.remote = _remote; } public void on() { remote.on(); } public void off() { remote.off(); } Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  40. 40. Stratejik Kapama Eğer kapama tam sağlanamıyorsa, kapamanın stratejik olarak implemente edilmesi gerekir. Programcı implementasyon öncesi meydana gelebilecek değişiklikleri kestirerek, implemente ettiği metotların kapalılık oranını yükseltmelidir. Bu tecrübe gerektiren stratejik bir karardır. Programcı her zaman ne gibi değişikliklerin olabileceğini kestiremeyebilir. Bu durumda konu hakkında araştırma yaparak, oluşabilecek değişiklikleri tespit edebilir. Eğer olabilecek değişikliklerin tespiti mümkün değilse, beklenen değişiklikler meydana gelene kadar beklenir ve implementasyon yeni değişiklikleri de yansıtacak şekilde OCP uyumlu hale getirilir. Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  41. 41. Esnek Bağ Loose Coupling (LC) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  42. 42. Esnek Bağ Loose Coupling (LC) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  43. 43. Yeşil Kuşak Prensipler 1. Tek sorumluluk prensibi 2. Açık-Kapalı prensibi 3. Esnek bağ prensibi Pratikler 1. Basit refactoring işlemleri yapmak 2. Tasarım şablonlarını kullanmak 3. Sürekli entegre etmek 4. MVC framewörklerle hasır, neşir olmak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  44. 44. 60 gün sonra… Yeşil Kuşak Mavi Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  45. 45. Mavi Kuşak Prensipler 1. Paket bazındakı tasarım prensipleri 2. Komponent tabanlı yazılım prensibi 3. Kod konvensiyonları 4. Kök neden analizi Pratikler 1. Code coverage (kod kapsama alanı) analizi yapmak 2. Bilgiyi paylaşmak 3. Bugtracking ve wiki kullanmak 4. Katmanlı mimarileri oluşturmak 5. Bulunan her bug için bir Unit test oluşturmak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  46. 46. Paket Bazında Tasarım Prensipleri • Reuse-Release Equivalence Principle (REP) • Common Reuse Principle (CRP) • Common Closure Principle (CCP) • Acyclic Dependency Principle (ADP) • Stable Dependencies Principle (SDP) • Stable Abstractions Principle (SAP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  47. 47. Tekrar Kullanım ve Sürüm Eşitliği Reuse-Release Equivalence Principle (REP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  48. 48. Yeniden Ortak Kullanım Prensibi Common Reuse Principle (CRP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  49. 49. Ortak Kapama Prensibi Common Closure Principle (CCP) Aynı sebepten dolayı değişikliğe uğrayabilecek sınıfların aynı paket içinde yer alması gerekir. CCP daha önce incelediğimiz, sınıflar için uygulanan Single Responsibility (SRP) prensibinin paketler için uygulanan halidir. Her paketin değişmek için sadece bir sebebi olmalıdır. CCP uygulandığı taktirde sistemin bakılabilirliği artırılır ve test ve yeni sürüm için harcanan zaman ve emek azaltılır. Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  50. 50. Çevrimsiz Bağımlılık Prensibi Acyclic Dependency Principle (ADP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  51. 51. Çevrimsiz Bağımlılık Prensibi Acyclic Dependency Principle (ADP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  52. 52. Çevrimsiz Bağımlılık Prensibi Acyclic Dependency Principle (ADP) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  53. 53. Mavi Kuşak Prensipler 1. Paket bazındaki tasarım prensipleri 2. Komponent tabanlı yazılım prensibi 3. Kod konvensiyonları 4. Kök neden analizi Pratikler 1. Code coverage (kod kapsama alanı) analizi yapmak 2. Bilgiyi paylaşmak 3. Bugtracking ve wiki kullanmak 4. Katmanlı mimariler oluşturmak 5. Bulunan her bug için bir Unit test oluşturmak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  54. 54. 90 gün sonra… Mavi Kuşak Kahregengi Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  55. 55. Kahregengi Prensipler Kuşak 1. Kişiselleştirmeme prensibi 2. Anlayana kadar sorma prensibi 3. Kodu kırmama prensibi Pratikler 1. Inversion of Control 2. Mockup nesne kullanmak 3. Sürüm yönetimi yapmak 4. Kompleks refactoring işlemleri yapmak 5. Oluşan tüm hataları raporlamak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  56. 56. 90 gün sonra… Kahregengi Kuşak 1. Dan Siyah Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  57. 57. 1. Dan Siyah Kuşak Prensipler 1. YAGNI prensibi 2. Müşteriye kulak verme prensibi 3. Hafif bavulla yola cıkma prensibi 4. Tell, don't ask prensibi Pratikler 1. Sertifikasyon 2. Çevik süreç kullanmak 3. Yeni yazılım dilleri ögrenmek 4. Davranış güdümlü yazılım yapmak 5. Soft skilleri gelistirmek Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  58. 58. 1. Dan Siyah Kuşak Soft Skill 1. Takım oyunculuğu 2. Đletişim becerisi 3. Sorumluluk üstlenebilme 4. Yönetim kompetansı 5. Kreatiflik 6. Zor şartlarda çalışabilme Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  59. 59. 1 yıl sonra… 1. Dan Siyah Kuşak 2. Dan Siyah Kuşak Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  60. 60. 2. Dan Siyah Kuşak Prensipler 1. Kendi prensiplerini geliştirme prensibi Pratikler 1. Konferanslara sunucu olarak katılmak 2. Açık kaynaklı bir projeye katkıda bulunmak 3. Açık kaynaklı bir proje geliştirmek Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  61. 61. Bilge Programcı Prensip & Pratikler 1. Kuşak: Beyaz (30 gün) Prensip & Pratikler 2. Kuşak: Sarı (30 gün) Prensip & Pratikler 3. Kuşak: Turuncu (60 gün) Prensip & Pratikler 4. Kuşak: Yeşil (60 gün) Toplam: Prensip & Pratikler 5. Kuşak: Mavi (90 gün) 720 iş günü Prensip & Pratikler 6. Kuşak: Kahverengi (90 gün) Prensip & Pratikler 1. Dan: Siyah Prensip & Pratikler 2. Dan: Siyah (360 gün) Özcan Acar © 2009 © 2009 Kurumsal Java.com Kurumsal Java.com
  62. 62. Detaylar için bakınız: BilgeProgramci.com Özcan Acar © 2009 Kurumsal Java.com
  63. 63. Son Đlginiz için teşekkür ederim. Özcan Acar © 2009 Kurumsal Java.com
  64. 64. Özcan Acar © 2009 Kurumsal Java.com
  65. 65. JugTR.org Özcan Acar © 2009 Kurumsal Java.com

×