system-design-primer/README-tr.md

178 lines
8.0 KiB
Markdown
Raw Normal View History

2022-06-16 11:48:36 +03:00
# Sistem Tasarımı El Kitabı
<p align="center">
<img src="images/jj3A5N8.png">
<br/>
</p>
## Motivasyon
> Büyük boyutlu sistemlerin nasıl tasarlandığını öğrenin.
>
2022-06-16 12:18:17 +03:00
> Sistem tasarımı mülakatlarına hazırlanın.
### Büyük boyutlu sistemlerin nasıl tasarlandığını öğrenin
Ölçeklenebilir sistemlerin nasıl tasarlandığını öğrenmek sizin daha iyi bir geliştirici olmanızda size yardımcı olacak.
Sistem tasarımı geniş bir konudur. İnternet üzerinde sistem tasarımı hakkında **çok miktarda dağınık** kaynaklar vardır.
Bu repo, sizin ölçeklenebilir sistem tasarımını öğrenmeniz için gereken kaynakların **organize edilip bir araya getirilmiş** halidir.
### Açık kaynak komünitesinden öğrenin
Bu, düzenli bir şekilde güncellenen açık kaynaklı bir projedir.
[Katkıda](#contributing) bulunmaktan çekinmeyin!
### Sistem tasarımı mülakatı için hazırlanın
Kodlama mülakatlarına ek olarak, sistem tasarımı birçok teknoloji şirketinin **teknik mülakat aşamasında gerekli bir bileşendir**.
**Yaygın sistem tasarımı mülakat soruları** için alıştırma yapın ve sonuçlarınızı benzer çözümlerle **karşılaştırın**: Tartışmalarda, kod üzerinde, ve diyagramlarda.
Mülakat hazırlığı için ek konular:
* [Çalışma rehberi](#study-guide)
* [Sistem tasarımı mülakat sorularına nasıl yaklaşılır](#how-to-approach-a-system-design-interview-question)
* [Sistem tasarımı soruları ve cevapları](#system-design-interview-questions-with-solutions)
*[Nesne tabanlı sistem tasarımı mülakat soruları ve cevapları](#object-oriented-design-interview-questions-with-solutions)
*[Ekstra sistem tasarımı mülakat soruları](#additional-system-design-interview-questions)
## Anki bilgi kartları
<p align="center">
<img src="images/zdCAkB3.png">
<br/>
</p>
Sağlanan [Anki bilgi kartı desteleri](https://apps.ankiweb.net/), temel sistem tasarım kavramlarını akılda tutmanıza yardımcı olmak için aralıklı olarak tekrar kullanır.
* [Sistem tasarım destesi](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design.apkg)
* [Sistem tasarımı egzersiz destesi](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design%20Exercises.apkg)
* [Nesne tabanlı tasarım egzersiz destesi](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/OO%20Design.apkg)
Öğrenme sürecinde kullanım için harika.
### Kodlama Kaynağı: Etkileşimli Kodlama Yarışmaları
2022-06-16 12:46:36 +03:00
Kodlama mülakatına hazırlanmakta size yardımcı olacak kaynak mı [arıyorsunuz](https://github.com/donnemartin/interactive-coding-challenges)?
2022-06-16 12:18:17 +03:00
<p align="center">
<img src="images/b4YtAEN.png">
<br/>
</p>
2022-06-16 12:58:34 +03:00
Kardeş repo'ya göz atın: [**Etkileşimli Kodlama Yarışmaları**](https://github.com/donnemartin/interactive-coding-challenges), ayrıca ek bir Anki destesi içerir:
* [Kodlama destesi](https://github.com/donnemartin/interactive-coding-challenges/tree/master/anki_cards/Coding.apkg)
## Katkıda Bulunmak
> Komüniteden öğrenin.
Şu konularda yardımcı olmak için pull request yapmaktan çekinmeyin:
* Hata düzeltmeleri
* Başlıkların iyileştirilmesi
* Yeni başlıkların eklenmesi
* [Çeviri](https://github.com/donnemartin/system-design-primer/issues/28)
2022-06-18 12:38:52 +03:00
Düzeltilmesi gereken içerik [geliştirme altında](#under-development) başlığındadır.
2022-06-28 22:12:48 +03:00
[Katkıda bulunma](CONTRIBUTING.md) rehberini inceleyin.
## Sistem tasarımı başlıkarı dizini
> Farklı sistem tasarımı konu başlıklarının özeti, artıları ve eksileri ile beraber **Herşeyin bir bedeli vardır**
>
> Her bölüm, daha ayrıntılı kaynaklara linkler içerir.
<p align="center">
<img src="images/jrUBAF7.png">
<br/>
</p>
* [Sistem tasarım başlıkları: Buradan başlayın](#system-design-topics-start-here)
* [Adım 1: Ölçeklenebilirlik ile ilgili ders videousunu izleyin](#step-1-review-the-scalability-video-lecture)
* [Adım 2: Ölçeklenebilirlik ile ilgili makaeleyi inceleyin](#step-2-review-the-scalability-article)
* [Sonraki adımlar](#next-steps)
* [Performans ve ölçeklenebilirlik](#performance-vs-scalability)
* [Gecikme ve verim](#latency-vs-throughput)
* [Kullanılabilirlik ve tutarlılık](#availability-vs-consistency)
* [TKB teorisi](#cap-theorem)
* [TB - Tutarlılık ve bölünme toleransı](#cp---consistency-and-partition-tolerance)
* [KB - Kullanılabilirlik ve bölünme toleransı](#ap---availability-and-partition-tolerance)
* [Tutarlılık desenleri](#consistency-patterns)
* [Zayıf tutarlılık](#weak-consistency)
* [Nihai tutarlılık](#eventual-consistency)
* [Güçlü tutarlılık](#strong-consistency)
* [Kullanılabilirlik desenleri](#availability-patterns)
* [Yük devretme](#fail-over)
* [Çoğaltma](#replication)
* [Sayılarla kullanılabilirlik](#availability-in-numbers)
* [Domain ismi sistemi](#domain-name-system)
* [İçerik dağıtım ağı(İDA)](#content-delivery-network)
* [Push İDA'ları](#push-cdns)
* [Pull İDA'ları](#pull-cdns)
* [Yükleme dengeleyicisi](#load-balancer)
* [Aktif-pasif](#active-passive)
* [Aktif-aktif](#active-active)
* [Katman 4 yükleme dengeleyicisi](#layer-4-load-balancing)
* [katman 7 yükleme dengeleyicisi](#layer-7-load-balancing)
* [Yatay ölçekleme](#horizontal-scaling)
* [Tersine vekalet](#reverse-proxy-web-server)
* [Yükleme dengeleyicisi vs tersine vekalet](#load-balancer-vs-reverse-proxy)
* [Uygulama katmanı](#application-layer)
* [Mikroservisler](#microservices)
* [Servis keşfi](#service-discovery)
* [Veritabanı](#database)
* [İlişkisel veritabanı yönetim sistemi (İVYS)](#relational-database-management-system-rdbms)
* [Efendi-köle çoğaltması](#master-slave-replication)
* [Efendi-efendi çoğaltması](#master-master-replication)
* [Federasyon](#federation)
* [Parçalama](#sharding)
* [Denormalizasyon](#denormalization)
* [SQL ayarı](#sql-tuning)
* [NoSQL](#nosql)
* [Anahtar-değer stoğu](#key-value-store)
* [Dökümantasyon stoğu](#document-store)
* [Geniş sütun stoğu](#wide-column-store)
* [Graf veritabanı](#graph-database)
* [SQL veya NoSQL](#sql-or-nosql)
* [Önbellek](#cache)
* [İstemci önbelleklemesi](#client-caching)
* [CDN önbelleklemesi](#cdn-caching)
* [Web sunucusu önbelleklemesi](#web-server-caching)
* [Veritabanı önbelleklemesi](#database-caching)
* [Uygulama önbelleklemesi](#application-caching)
* [Veritabanı sorgusu seviyesinde önbellekleme](#caching-at-the-database-query-level)
* [Nesne seviyesinde önbellekleme](#caching-at-the-object-level)
* [Önbellek ne zaman güncellenmeli](#when-to-update-the-cache)
* [Önbellekten ayrı](#cache-aside)
* [Baştan sona yazarak](#write-through)
* [Arka planda yazmak (geri yazmak)](#write-behind-write-back)
* [İleride yenilemek](#refresh-ahead)
* [Asenkronizm](#asynchronism)
* [Mesaj kuyrukları](#message-queues)
* [Görev kuyrukları](#task-queues)
* [Geri baskı](#back-pressure)
* [İletişim](#communication)
* [Geçiş Kontrolü Protokolü (TCP)](#transmission-control-protocol-tcp)
* [Kullanıcı Datagram Protokolü (UDP)](#user-datagram-protocol-udp)
* [Uzaktan Prosedür Çağrısı (RPC](#remote-procedure-call-rpc)
* [Temsili Durum Transferi (REST)](#representational-state-transfer-rest)
* [Güvenlik](#security)
* [Ek](#appendix)
* [İki tablonun güçleri](#powers-of-two-table)
* [Her programcının bilmesi gereken gecikme numaraları](#latency-numbers-every-programmer-should-know)
* [Ek sistem tasarımı mülakat soruları](#additional-system-design-interview-questions)
* [Gerçek dünya mimarileri](#real-world-architectures)
* [Şirket mimarileri](#company-architectures)
* [Şirket mühendisliği blogları](#company-engineering-blogs)
* [Geliştirme devam ediyor](#under-development)
* [Bitiş](#credits)
* [İletişim bilgileri](#contact-info)
* [Lisans](#license)