bilge programcı - nasıl uzman yazılımcı olunur?
DESCRIPTION
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.comTRANSCRIPT
![Page 1: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/1.jpg)
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 2: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/2.jpg)
Nasıl Uzman YazılımcıOlunur?
Özcan [email protected]
http://www.ozcanacar.comhttp://www.kurumsaljava.com
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.comÖzcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 3: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/3.jpg)
Özcan Acar Hakkında
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
1974 Đzmir doğumlu
Bilgisayar Mühendisi
Sun Certified Enterprise Architect (SCEA 5)
Sun Java Champion
KurumsalJava.com ve JugTR.org kurucusu
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 4: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/4.jpg)
Özcan Acar Đletişim
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
http://www.twitter.com/oezcanacar
http://www.friendfeed.com/oezcanacar
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 5: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/5.jpg)
Özcan Acar Hakkında
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.comÖzcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 6: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/6.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
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
Java Tasarım Şablonları ve Yazılım Mimarileri
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 7: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/7.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Ç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
Extreme Programming
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 8: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/8.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
www.BilgeProgramci.com
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 9: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/9.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Bilge Programcınedir?
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 10: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/10.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Karateci ve Yazılımcının Ortak Yönleri Nelerdir?
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 11: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/11.jpg)
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.
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Karate-Do Sporu
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 12: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/12.jpg)
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.
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Karate-Do Sporu
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 13: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/13.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.comÖzcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 14: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/14.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Karate-Do‘dan yola çıkarak Bilge Programcı için bir değer sistemi ve
uzmanlaşma metodolojisi formalize edebilir miyiz?
Özcan Acar © 2010 Kurumsal Java Akademisi.com
![Page 15: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/15.jpg)
Bilge Programcılığın Reçetesi
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Değer Sistemi
Prensipler
Pratikler
Olgunlaşma Simgesi
![Page 16: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/16.jpg)
Bilge Programcı Kuşakları
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
1. Kuşak: Beyaz
2. Kuşak: Sarı
3. Kuşak: Turuncu
4. Kuşak: Yeşil
5. Kuşak: Mavi
6. Kuşak: Kahverengi
7. Kuşak: Siyah
BP Değer Sistemi
![Page 17: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/17.jpg)
Bilge Programcı Bilekliği
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 18: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/18.jpg)
Beyaz Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Kendi kendini yetiştirme prensibi2. Kırık cam prensibi3. DRY prensibi
Pratikler1. Đzci kuralı2. Kodun ifade gücünü artırmak3. Her gün tefekkür etmek
![Page 19: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/19.jpg)
Beyaz Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
30 gün sonra…
Sarı Kuşak
![Page 20: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/20.jpg)
Sarı Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. KISS prensibi2. Yazılım araçlarına hakim olma prensibi3. Nesneye yönelik programlama4. Yazılımda test konseptlerinden haberdar olmak
Pratikler1. Interface ve Abstract sınıfları tasarımda kullanmak2. JUnit Testleri oluşturmak3. Kalıtım yerine kompozisyon kullanmak4. Kitap okumak, kitap okumak, kitap okumak5. Kodu gözden geçirmek
![Page 21: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/21.jpg)
Kitaplar
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 22: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/22.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
30 gün sonra…
Sarı Kuşak
Turuncu Kuşak
![Page 23: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/23.jpg)
Turuncu Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Arayüz ayırma prensibi2. Bağımlılıkların tersine çevrilmesi prensibi3. Liskov'un yerine geçme prensibi
Pratikler1. Sektörün öncülerini takip etmek2. Yazılımla ilgili konferans ve seminerlere katılmak3. Versiyon kontrol sistemi kullanmak4. Test güdümlü yazılım yapmak5. Bir logging framewörkü kullanmak
![Page 24: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/24.jpg)
Arayüz Ayırma Prensibi Interface Segregation Principle (ISP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 25: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/25.jpg)
Arayüz Ayırma Prensibi Interface Segregation Principle (ISP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
public class RMIConnector implements Connector{
public void commit() {
throw new RuntimeException("not implemented");}
public void rollback() {
throw new RuntimeException("not implemented");}
}
![Page 26: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/26.jpg)
Arayüz Ayırma Prensibi Interface Segregation Principle (ISP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 27: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/27.jpg)
Bağımlılıkların Tersine Çevrilmesi Prensibi
Dependency Inversion Principle (DIP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 28: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/28.jpg)
Bağımlılıkların Tersine Çevrilmesi Prensibi
Dependency Inversion Principle (DIP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 29: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/29.jpg)
Liskov Yerine Geçme Prensibi Liskov Substitution Principle (LSP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Alt sınıflardan oluşturulan nesneler üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermek zorundadırlar.
![Page 30: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/30.jpg)
Liskov Yerine Geçme Prensibi Liskov Substitution Principle (LSP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
public void print(A a){
if(a instanceof B){
((B)a).printB();}else if(a instanceof C){
((C)a).printC();}
}
![Page 31: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/31.jpg)
Turuncu Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Arayüz ayırma prensibi2. Bağımlılıkların tersine çevrilmesi prensibi3. Liskov'un yerine geçme prensibi
Pratikler1. Sektörün öncülerini takip etmek2. Yazılımla ilgili konferans ve seminerlere katılmak3. Versiyon kontrol sistemi kullanmak4. Test güdümlü yazılım yapmak5. Bir logging framewörkü kullanmak
![Page 32: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/32.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
60 gün sonra…
Turuncu Kuşak
Yeşil Kuşak
![Page 33: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/33.jpg)
Yeşil Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Tek sorumluluk prensibi2. Açık-Kapalı prensibi3. Esnek bağ prensibi
Pratikler1. Basit refactoring işlemleri yapmak2. Tasarım şablonlarını kullanmak3. Sürekli entegre etmek4. MVC framewörklerle haşır, neşir olmak
![Page 34: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/34.jpg)
Tek Sorumluk Prensibi Single Responsibility Principle (SRP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 35: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/35.jpg)
Tek Sorumluk Prensibi Single Responsibility Principle (SRP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 36: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/36.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Programlar geliştirilmeye açık ama değiştirilmeye kapalıolmalıdır.
Açık Kapalı Prensibi Open Closed Principle (OCP)
![Page 37: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/37.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
public void on(Object obj){
if(obj instanceof TV){
((TV)obj).tvOn();}else if(obj instanceof CDPlayer){
((CDPlayer)obj).cdOn();}
}
Açık Kapalı Prensibi Open Closed Principle (OCP)
![Page 38: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/38.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Açık Kapalı Prensibi Open Closed Principle (OCP)
![Page 39: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/39.jpg)
Açık Kapalı Prensibi Open Closed Principle (OCP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
private RemoteControlInterface remote;
public RemoteControl(RemoteControlInterface _remote){
this.remote = _remote;}
public void on(){
remote.on();}
public void off(){
remote.off();}
![Page 40: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/40.jpg)
Stratejik Kapama
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
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.
![Page 41: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/41.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Esnek BağLoose Coupling (LC)
![Page 42: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/42.jpg)
Esnek BağLoose Coupling (LC)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 43: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/43.jpg)
Yeşil Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Tek sorumluluk prensibi2. Açık-Kapalı prensibi3. Esnek bağ prensibi
Pratikler1. Basit refactoring işlemleri yapmak2. Tasarım şablonlarını kullanmak3. Sürekli entegre etmek4. MVC framewörklerle hasır, neşir olmak
![Page 44: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/44.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
60 gün sonra…
Yeşil Kuşak
Mavi Kuşak
![Page 45: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/45.jpg)
Mavi Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Paket bazındakı tasarım prensipleri2. Komponent tabanlı yazılım prensibi 3. Kod konvensiyonları4. Kök neden analizi
Pratikler1. Code coverage (kod kapsama alanı) analizi yapmak2. Bilgiyi paylaşmak3. Bugtracking ve wiki kullanmak4. Katmanlı mimarileri olu şturmak5. Bulunan her bug için bir Unit test oluşturmak
![Page 46: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/46.jpg)
Paket Bazında Tasarım Prensipleri
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
• 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)
![Page 47: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/47.jpg)
Tekrar Kullanım ve Sürüm Eşitliği Reuse-Release Equivalence Principle (REP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 48: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/48.jpg)
Yeniden Ortak Kullanım PrensibiCommon Reuse Principle (CRP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 49: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/49.jpg)
Ortak Kapama PrensibiCommon Closure Principle (CCP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
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 SingleResponsibility (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.
![Page 50: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/50.jpg)
Çevrimsiz Bağımlılık Prensibi Acyclic Dependency Principle (ADP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 51: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/51.jpg)
Çevrimsiz Bağımlılık Prensibi Acyclic Dependency Principle (ADP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 52: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/52.jpg)
Çevrimsiz Bağımlılık Prensibi Acyclic Dependency Principle (ADP)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
![Page 53: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/53.jpg)
Mavi Kuşak
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Paket bazındaki tasarım prensipleri2. Komponent tabanlı yazılım prensibi 3. Kod konvensiyonları4. Kök neden analizi
Pratikler1. Code coverage (kod kapsama alanı) analizi yapmak2. Bilgiyi paylaşmak3. Bugtracking ve wiki kullanmak4. Katmanlı mimariler olu şturmak5. Bulunan her bug için bir Unit test oluşturmak
![Page 54: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/54.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
90 gün sonra…
Mavi Kuşak
Kahregengi Kuşak
![Page 55: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/55.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Kişiselleştirmeme prensibi2. Anlayana kadar sorma prensibi3. Kodu kırmama prensibi
Pratikler1. Inversion of Control2. Mockup nesne kullanmak3. Sürüm yönetimi yapmak4. Kompleks refactoring işlemleri yapmak5. Oluşan tüm hataları raporlamak
Kahregengi Kuşak
![Page 56: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/56.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
90 gün sonra…
Kahregengi Kuşak
1. Dan Siyah Kuşak
![Page 57: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/57.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. YAGNI prensibi2. Müşteriye kulak verme prensibi3. Hafif bavulla yola cıkma prensibi4. Tell, don't ask prensibi
Pratikler1. Sertifikasyon2. Çevik süreç kullanmak3. Yeni yazılım dilleri ögrenmek4. Davranış güdümlü yazılım yapmak5. Soft skilleri gelistirmek
1. Dan Siyah Kuşak
![Page 58: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/58.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Soft Skill1. Takım oyunculuğu2. Đletişim becerisi3. Sorumluluk üstlenebilme4. Yönetim kompetansı5. Kreatiflik6. Zor şartlarda çalışabilme
1. Dan Siyah Kuşak
![Page 59: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/59.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
1 yıl sonra…
2. Dan Siyah Kuşak
1. Dan Siyah Kuşak
![Page 60: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/60.jpg)
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensipler1. Kendi prensiplerini geliştirme prensibi
Pratikler1. Konferanslara sunucu olarak katılmak 2. Açık kaynaklı bir projeye katkıda bulunmak3. Açık kaynaklı bir proje geli ştirmek
2. Dan Siyah Kuşak
![Page 61: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/61.jpg)
Bilge Programcı
© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
Prensip & Pratikler
1. Kuşak: Beyaz (30 gün)
2. Kuşak: Sarı (30 gün)
3. Kuşak: Turuncu (60 gün)
4. Kuşak: Yeşil (60 gün)
5. Kuşak: Mavi (90 gün)
6. Kuşak: Kahverengi (90 gün)
1. Dan: Siyah
Toplam:
720işgünü
Prensip & Pratikler 2. Dan: Siyah (360 gün)
![Page 62: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/62.jpg)
Özcan Acar © 2009 Kurumsal Java.com
Detaylar için bakınız:
BilgeProgramci.com
![Page 63: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/63.jpg)
Özcan Acar © 2009 Kurumsal Java.com
SonĐlginiz için teşekkür ederim.
![Page 64: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/64.jpg)
Özcan Acar © 2009 Kurumsal Java.com
![Page 65: Bilge Programcı - Nasıl uzman yazılımcı olunur?](https://reader033.vdocuments.net/reader033/viewer/2022052310/5550b3f7b4c905ff618b49f2/html5/thumbnails/65.jpg)
Özcan Acar © 2009 Kurumsal Java.com
JugTR.org