SlideShare a Scribd company logo
Yazılım Tasarımında Mimarî
Bir Bakış Açısı Geliştirmek
Ersin Er
Ben de kimim? Ne yapıp ettim?
• Araştırma Görevlisi, Bilgisayar Müh., Hacettepe Üniversitesi ~8 yıl
• Geliştirici, Proje Yöneticisi, Apache Yazılım Vakfı ~5 yıl
• Yazılım Mimarı, Teknik Lider, Mühendislik Yön., Peak Games ~3 yıl
• Yazılım Mimarı, Kurucu Ortak, Metasolid (Startup – Batık) ~2 yıl
• Yazılım Mimarı, Kıdemli Teknik Lider - Ar-Ge, Arçelik 2+ yıl
@ersiner @bilgisayimci @dilsefendi
Nelerden doğrudan bahsetmeyeceğim?
• Yazılım Mimarisinin / Mimarlığının tanımı
• Mimarinin gerekliliği, yazılım geliştirmedeki yeri
• Mimarî Stiller ve Örüntüler
• Mimarî Görünümler ve Perspektifler
• İşlevsel Olmayan Kalite Unsurları ve aralarındaki ilişkiler
• Bulut Bilgiişlem, Mikroservisler, Yaz-İşlet (DevOps)
• Referans Mimariler, Teknolojiler
• Literatür
Gündemimiz ne?
örneklerle,
gözlemlediğim
mimarî yaklaşım sorunları
ve bunları bertaraf etmek için
bazı tavsiyelerim
özünde,
farkındalık yaratmak amacım
Haydi bir tanım verelim yine de…
Teknoloji Yığıtı ve Mimari
Dış Teknoloji/Kaynak Bağımlılıkları
• Data Access Object
• Repository
• Controller
• …
• AWS S3 -> ?
• IoT -> ?
• Push Notifications -> ?
• Kafka -> ?
Teknolojik ve Kavramsal Trendler
Mikroservisler
icâd edilmese
hâlimiz nice olurdu?
Neyse ki Docker var…
Sıkı Fıkı Üretici ve Tüketiciler
• Kullanıcı bilgilerini doğrula
• İşlemi A biçiminde kayıt altına
al
• Kullanıcıyı bilgilendir ve
yönlendir
• Kullanıcı bilgilerini doğrula
• İşlemi A biçiminde kayıt altına
al
• Analitik servisine B biçiminde
bilgi gönder
• Kullanıcıyı bilgilendir ve
yönlendir
gel zaman, git zaman...
Sorun–Çözüm Çözünürlük Dengesi
Gereksinim A
Gereksinim B
Gereksinim C
Gereksinim D
Gereksinim E
Gereksinim F
???
Kod A
Kod B
Kod C
Kod D
Kod E
Kod F
zaman
Çevik varsa sorun yok!..
• Ne belge ne mimari, bana kod gerek
• Bir çevik metodoloji öğretenin kırk yıl kölesi olurum
• Kodumu yazarım işime bakarım
• Tek rakibim G.A.F.A.M.
Özetleyelim
• Teknoloji yığıtı doğrudan mimariniz olamaz.
• Artan teknoloji temelli dış bağımlılıkları soyutlamada dirayetli olun.
• Mikroservisler, Docker, Kubernetes sadece işlevsel olmayan
gereksinimleri daha kolay karşılamanızı sağlayabilir, halen bir
mimariniz (ve yaklaşımınız) olmalı.
• Bilgi ihtiyacı olan her servisin derdini iş kodunuzda çözerseniz sistem
arap saçına döner. Kuyruklar hem temiz bilgi aktarımı, hem de
ölçeklenebilirlik için biçilmiş kaftandır.
• Her gereksinimi, var olan altyapıyı ve var olan gereksinim çözümleri ile
ortaklaşmayı düşünmeden gelişine çözüme dönüştürmemeli.
• Çevik çoğu durumda gerekir, iyidir ama yeterli değildir; mimariyi de
gereksiz kılmaz.
Yazılım
Tasarımında
Mimarî Bir Bakış
Açısı Geliştirmek
Ersin Er
Teşekkürler!

More Related Content

Similar to Yazılım Tasarımında Mimarî Bir Bakış Açısı Geliştirmek

Wiki summit 2015 SharePoint Costum.
Wiki summit 2015 SharePoint Costum.Wiki summit 2015 SharePoint Costum.
Wiki summit 2015 SharePoint Costum.
Erdem Avni Selçuk
 
Vhdl teknigi
Vhdl teknigiVhdl teknigi
Vhdl teknigisersld80
 
Vhdl cizimi
Vhdl cizimiVhdl cizimi
Vhdl cizimisersld80
 
Vhdl notlari
Vhdl notlariVhdl notlari
Vhdl notlarisersld80
 
Vhdl projeleri
Vhdl projeleriVhdl projeleri
Vhdl projelerisersld80
 
Vhdl dokumani
Vhdl dokumaniVhdl dokumani
Vhdl dokumanisersld80
 
Yazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesiYazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesisersld90
 
Vhdl proje
Vhdl projeVhdl proje
Vhdl projesersld80
 
Python tasarimi
Python tasarimiPython tasarimi
Python tasarimisersld98
 
Kod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeKod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQube
Emre Dündar
 
Sta4cad tasarimi
Sta4cad tasarimiSta4cad tasarimi
Sta4cad tasarimisersld62
 
Yazilim muhendisligi-teknikeri
Yazilim muhendisligi-teknikeriYazilim muhendisligi-teknikeri
Yazilim muhendisligi-teknikerisersld90
 
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
Ahmet Başaran
 
Seo teknikeri
Seo teknikeriSeo teknikeri
Seo teknikerisersld29
 
Vhdl egitimi-bagcilar
Vhdl egitimi-bagcilarVhdl egitimi-bagcilar
Vhdl egitimi-bagcilarsersld80
 
Sta4cad danismani
Sta4cad danismaniSta4cad danismani
Sta4cad danismanisersld62
 
Vhdl egitimi-atasehir
Vhdl egitimi-atasehirVhdl egitimi-atasehir
Vhdl egitimi-atasehirsersld80
 
Sta4cad teknigi
Sta4cad teknigiSta4cad teknigi
Sta4cad teknigisersld62
 
Yazilim muhendisligi-konferansi
Yazilim muhendisligi-konferansiYazilim muhendisligi-konferansi
Yazilim muhendisligi-konferansisersld90
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Lemi Orhan Ergin
 

Similar to Yazılım Tasarımında Mimarî Bir Bakış Açısı Geliştirmek (20)

Wiki summit 2015 SharePoint Costum.
Wiki summit 2015 SharePoint Costum.Wiki summit 2015 SharePoint Costum.
Wiki summit 2015 SharePoint Costum.
 
Vhdl teknigi
Vhdl teknigiVhdl teknigi
Vhdl teknigi
 
Vhdl cizimi
Vhdl cizimiVhdl cizimi
Vhdl cizimi
 
Vhdl notlari
Vhdl notlariVhdl notlari
Vhdl notlari
 
Vhdl projeleri
Vhdl projeleriVhdl projeleri
Vhdl projeleri
 
Vhdl dokumani
Vhdl dokumaniVhdl dokumani
Vhdl dokumani
 
Yazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesiYazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesi
 
Vhdl proje
Vhdl projeVhdl proje
Vhdl proje
 
Python tasarimi
Python tasarimiPython tasarimi
Python tasarimi
 
Kod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeKod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQube
 
Sta4cad tasarimi
Sta4cad tasarimiSta4cad tasarimi
Sta4cad tasarimi
 
Yazilim muhendisligi-teknikeri
Yazilim muhendisligi-teknikeriYazilim muhendisligi-teknikeri
Yazilim muhendisligi-teknikeri
 
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
 
Seo teknikeri
Seo teknikeriSeo teknikeri
Seo teknikeri
 
Vhdl egitimi-bagcilar
Vhdl egitimi-bagcilarVhdl egitimi-bagcilar
Vhdl egitimi-bagcilar
 
Sta4cad danismani
Sta4cad danismaniSta4cad danismani
Sta4cad danismani
 
Vhdl egitimi-atasehir
Vhdl egitimi-atasehirVhdl egitimi-atasehir
Vhdl egitimi-atasehir
 
Sta4cad teknigi
Sta4cad teknigiSta4cad teknigi
Sta4cad teknigi
 
Yazilim muhendisligi-konferansi
Yazilim muhendisligi-konferansiYazilim muhendisligi-konferansi
Yazilim muhendisligi-konferansi
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
 

Yazılım Tasarımında Mimarî Bir Bakış Açısı Geliştirmek

  • 1. Yazılım Tasarımında Mimarî Bir Bakış Açısı Geliştirmek Ersin Er
  • 2. Ben de kimim? Ne yapıp ettim? • Araştırma Görevlisi, Bilgisayar Müh., Hacettepe Üniversitesi ~8 yıl • Geliştirici, Proje Yöneticisi, Apache Yazılım Vakfı ~5 yıl • Yazılım Mimarı, Teknik Lider, Mühendislik Yön., Peak Games ~3 yıl • Yazılım Mimarı, Kurucu Ortak, Metasolid (Startup – Batık) ~2 yıl • Yazılım Mimarı, Kıdemli Teknik Lider - Ar-Ge, Arçelik 2+ yıl @ersiner @bilgisayimci @dilsefendi
  • 3. Nelerden doğrudan bahsetmeyeceğim? • Yazılım Mimarisinin / Mimarlığının tanımı • Mimarinin gerekliliği, yazılım geliştirmedeki yeri • Mimarî Stiller ve Örüntüler • Mimarî Görünümler ve Perspektifler • İşlevsel Olmayan Kalite Unsurları ve aralarındaki ilişkiler • Bulut Bilgiişlem, Mikroservisler, Yaz-İşlet (DevOps) • Referans Mimariler, Teknolojiler • Literatür
  • 4. Gündemimiz ne? örneklerle, gözlemlediğim mimarî yaklaşım sorunları ve bunları bertaraf etmek için bazı tavsiyelerim özünde, farkındalık yaratmak amacım
  • 5. Haydi bir tanım verelim yine de…
  • 7. Dış Teknoloji/Kaynak Bağımlılıkları • Data Access Object • Repository • Controller • … • AWS S3 -> ? • IoT -> ? • Push Notifications -> ? • Kafka -> ?
  • 8. Teknolojik ve Kavramsal Trendler Mikroservisler icâd edilmese hâlimiz nice olurdu? Neyse ki Docker var…
  • 9. Sıkı Fıkı Üretici ve Tüketiciler • Kullanıcı bilgilerini doğrula • İşlemi A biçiminde kayıt altına al • Kullanıcıyı bilgilendir ve yönlendir • Kullanıcı bilgilerini doğrula • İşlemi A biçiminde kayıt altına al • Analitik servisine B biçiminde bilgi gönder • Kullanıcıyı bilgilendir ve yönlendir gel zaman, git zaman...
  • 10. Sorun–Çözüm Çözünürlük Dengesi Gereksinim A Gereksinim B Gereksinim C Gereksinim D Gereksinim E Gereksinim F ??? Kod A Kod B Kod C Kod D Kod E Kod F zaman
  • 11. Çevik varsa sorun yok!.. • Ne belge ne mimari, bana kod gerek • Bir çevik metodoloji öğretenin kırk yıl kölesi olurum • Kodumu yazarım işime bakarım • Tek rakibim G.A.F.A.M.
  • 12. Özetleyelim • Teknoloji yığıtı doğrudan mimariniz olamaz. • Artan teknoloji temelli dış bağımlılıkları soyutlamada dirayetli olun. • Mikroservisler, Docker, Kubernetes sadece işlevsel olmayan gereksinimleri daha kolay karşılamanızı sağlayabilir, halen bir mimariniz (ve yaklaşımınız) olmalı. • Bilgi ihtiyacı olan her servisin derdini iş kodunuzda çözerseniz sistem arap saçına döner. Kuyruklar hem temiz bilgi aktarımı, hem de ölçeklenebilirlik için biçilmiş kaftandır. • Her gereksinimi, var olan altyapıyı ve var olan gereksinim çözümleri ile ortaklaşmayı düşünmeden gelişine çözüme dönüştürmemeli. • Çevik çoğu durumda gerekir, iyidir ama yeterli değildir; mimariyi de gereksiz kılmaz.
  • 13. Yazılım Tasarımında Mimarî Bir Bakış Açısı Geliştirmek Ersin Er Teşekkürler!