Software Architecture Flashcards

1
Q

Professional Keywords

design pattern

A

Belirli bir problemi çözmek için veya bir amaca ulaşmak için tasarlanmış tekrar tekrar kullanılabilen, test edilmiş ve kanıtlanmış bir çözüm şablonudur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Professional Keywords

domain driven design (DDD)

A

(Yineleyici desen) Gerçek dünyadaki iş modellerini herkesin anlayabileceği ortak bir dil(Ubiquitous Language) ile oluşturarak dijital dünyaya uyarlamak için yazılımların nasıl modellenmesi gerektiği konusunda bir felsefeyi savunur.

Domain = Bir uygulama içerisinde bir biri ile bağlantılı olan ve uygulamanın logic’ini oluşturan ufak kümeler anlamına gelmektedir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Professional Keywords

monolitik app

A

Monolitik uygulama mimarisi, tüm uygulamanın tek bir kod tabanı içinde bulunduğu bir yapıdır.

Bu mimaride, tüm bileşenler tek bir çalışma zamanında çalışır ve birbirleriyle doğrudan iletişim kurarlar.

Uygulamanın her bir parçası birbiriyle yakından bağlantılıdır ve genellikle aynı veritabanını kullanırlar.

Bu, uygulamanın ölçeklendirilmesini ve değiştirilmesini zorlaştırabilir. Ancak, monolitik mimari, basit, küçük ve orta ölçekli uygulamalar için kolay bir geliştirme süreci sunabilir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Professional Keywords

microservices

A

uygulamanın farklı bileşenlerinin, özerk ve bağımsız bir şekilde çalıştığı bir yapıdır.

Her bir bileşen, kendine özgü bir işlevi yerine getirir ve diğer bileşenlerle iletişim için bir API sağlar.

Bu mimaride, her bir bileşenin ölçeklendirilmesi ve bakımı kolaydır, çünkü her bir bileşen ayrı bir işlemci çekirdeği, bellek ve veritabanı kullanabilir.

Microservice mimarisi, büyük ve karmaşık uygulamalar için özellikle uygun bir çözümdür, ancak uygulamanın farklı parçalarının birbirleriyle iletişimi için daha fazla işlem ve ağ trafiği gerektirebilir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Professional Keywords

iterator pattern

A

bir nesne koleksiyonundaki elemanlara sırayla erişmek ve koleksiyon üzerinde işlem yapmak için bir arayüz sağlar.

Bu desen, koleksiyonun iç yapısını gizleyerek, elemanlara erişimi kolaylaştırır ve sadece bir iterasyon arayüzü sağlar.

Örneğin programala dillerindeki for-each yapıları

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Professional Keywords

state machine

A

(Durum makinesi), bir sistemdeki durumları ve olayları tanımlayarak sistemin davranışını modelleyebilir.

Örneğin, bir oyun oynarken karakterin farklı durumları (duruyor, koşuyor, saldırıda, savunmada vb.) ve bunlar arasındaki geçişler bir durum makinesi ile modellenebilir.

Aynı şekilde, bir otomobilin farklı hızlarda sürüşü de bir durum makinesi ile modellenebilir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Professional Keywords

rule engine

A

Kurallara dayalı işlem yapan bir yazılım bileşenidir.

Kural motoru, bir dizi kuralı değerlendirerek belirli bir işlemi yapar veya bir sonuç üretir.

Kural motoru, verileri analiz ederek,
belirli koşulların yerine getirildiği durumlarda belirli eylemleri tetikleyebilir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Professional Keywords

N-tier

A

N-tier mimaride, uygulama üç veya daha fazla katmana ayrılır.

Bu katmanlar genellikle;
* Kullanıcı arayüzü (UI),
* iş mantığı (business logic)
* veri depolama (data storage) katmanlarıdır.

N-tier mimaride, her katman kendi sorumluluklarına sahip olur ve diğer katmanlardan bağımsız çalışır.

Bu da uygulamanın daha esnek ve ölçeklenebilir hale gelmesini sağlar.

Örneğin, uygulamanın kullanıcı sayısı arttığında, işlemci gücünü artırmak için iş mantığı katmanı birden fazla sunucuda çalıştırılabilir

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Professional Keywords

functional programming

A

Bu yaklaşımda fonksiyonlar, girdilerle çalışır ve bir çıktı üretirler, fakat programın başka bir yerinde durumu etkilemezler.

Nesneye yönelik programlama yaklaşımının aksine, değişmez veri yapıları kullanır ve işlevleri birbirinden bağımsız hale getirir.

Bu da programın daha anlaşılır, okunaklı ve modüler olmasını sağlar. Ayrıca fonksiyonların girdi ve çıktıları net bir şekilde belirtilir, dolayısıyla bir fonksiyonun test edilmesi ve doğruluğunun kontrol edilmesi kolaylaşır.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Professional Keywords

non-blocking I/O

A

Bir işlemin (genellikle bir I/O işlemi) tamamlanması beklenirken, programın diğer işlemleri yürütmeye devam etmesini sağlayan bir programlama yöntemidir.

Bu yöntem, bir I/O işlemi sırasında programın diğer işlemleri yürütmesine izin vererek, sistem kaynaklarını daha etkili bir şekilde kullanmasına olanak sağlar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Professional Keywords

concurrent marking

A

(Eş zamanlı işaretleme) JS de kullanılan garbage collection tekniğidir. Avantajı main-thread’in çalışmasını durdurmuyor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Professional Keywords

memory leak

A

(Bellek sızıntısı) Production ortamındaki bir uygulamanın kullanım oranında anormal bir artış olmamasına rağmen devamlı artan bellek tüketimi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Professional Keywords

MVC(Model-View-Controller)

A

Burada Model verileri ve mantığı yönetir, Görünüm bilgileri görüntüler ve denetleyici Model ile Görünümü birbirine bağlayarak kullanıcı girişini yönetir.

Kullanım: Veri işleme ile kullanıcı arayüzü arasında net bir ayrım olan Web uygulamaları için.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Professional Keywords

MVP(Model-View-Presenter)

A

Burada, Model verileri yönetir, ekran verilerini görüntüler ve Sunucuya kullanıcı komutları gönderir; Sunucu ise Modelden verileri alır ve Görünüme sunar.

Kullanım: Android uygulamaları gibi test ve kullanıcı arayüzü mantığını vurgulayan uygulamalar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Professional Keywords

MVI(Model-View-Intent)

A

MVI, tek yönlü veri akışını benimseyen reaktif bir mimaridir ve belirli bir durum verildiğinde kullanıcı arayüzünün tutarlı kalmasını sağlar.

Burada Model durumu temsil eder, Görünüm durumu yansıtır, niyet ise durumu değiştiren kullanıcı eylemlerini temsil eder.

Kullanım: Durum tutarlılığına odaklanan RxJava gibi reaktif uygulamalar veya çerçeveler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Professional Keywords

MVVM(Model-View - View-Model)

A

UI bileşenlerini bilmeden View-Model işleme görünümü mantığıyla ayrık bir yaklaşımı teşvik ederek UI geliştirmedeki karmaşıklıkları gidermek için ortaya çıktı.

Burada Model verileri yönetir ve görüntüler, ViewModel ise kullanıcı arayüzü ile ilgili verileri tutar ve içerir.

Kullanım: WPF veya LiveData özellikli Android gibi kullanıcı arayüzü açısından zengin uygulamalar veya veri bağlama özelliğine sahip platformlar.

17
Q

Professional Keywords

MVVM-C(MVVM with Coordinator)

A

MVVM-C, MVVM’yi temel alarak navigasyonu yönetmek için Koordinatör’ü sunar ve onu View ve ViewModel’den ayırır.

Kullanım: Karmaşık gezinmenin görünüm mantığından ayrılmasını gerektiren daha büyük uygulamalar, özellikle iOS.

18
Q

Professional Keywords

VIPER(View-Interactor-Presenter-Entity-Router)

A

Uygulama mantığını farklı bileşenlere bölerek test edilebilirliği ve Tek Sorumluluk İlkesini vurgular.

Burada Görünüm, Presenter’ın gönderdiği şeyi görüntüler, etkileşimci kullanım durumu başına iş mantığını içerir, Presenter içerik hazırlamak için görünüm mantığını içerir, varlık bir birincil model nesnesi içerir ve yönlendirici gezinme mantığını içerir.

Kullanım: Karmaşık uygulamalar, özellikle iOS, modülerliğe, test edilebilirliğe ve netliğe ihtiyaç duyar.