14 KiB
Sistem Tasarımı El Kitabı
Motivasyon
Büyük boyutlu sistemlerin nasıl tasarlandığını öğrenin.
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 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
- Sistem tasarımı mülakat sorularına nasıl yaklaşılır
- Sistem tasarımı soruları ve cevapları *Nesne tabanlı sistem tasarımı mülakat soruları ve cevapları *Ekstra sistem tasarımı mülakat soruları
Anki bilgi kartları
Sağlanan Anki bilgi kartı desteleri, temel sistem tasarım kavramlarını akılda tutmanıza yardımcı olmak için aralıklı olarak tekrar kullanır.
Öğrenme sürecinde kullanım için harika.
Kodlama Kaynağı: Etkileşimli Kodlama Yarışmaları
Kodlama mülakatına hazırlanmakta size yardımcı olacak kaynak mı arıyorsunuz?
Kardeş repo'ya göz atın: Etkileşimli Kodlama Yarışmaları, ayrıca ek bir Anki destesi içerir:
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
Düzeltilmesi gereken içerik geliştirme altında başlığındadır.
Katkıda bulunma 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.
- Sistem tasarım başlıkları: Buradan başlayın
- Performans ve ölçeklenebilirlik
- Gecikme ve verim
- Kullanılabilirlik ve tutarlılık
- Tutarlılık desenleri
- Kullanılabilirlik desenleri
- Domain ismi sistemi
- İçerik dağıtım ağı(İDA)
- Yükleme dengeleyicisi
- Tersine vekalet
- Uygulama katmanı
- Veritabanı
- Önbellek
- Asenkronizm
- İletişim
- Güvenlik
- Ek
- Geliştirme devam ediyor
- Bitiş
- İletişim bilgileri
- Lisans
Çalışma rehberi
İncelenmesi önerilen konular sizin mülakat süreniz baz alınarak hazırlanmıştır(kısa, orta, uzun).
S: Mülakatlar için buradaki her şeyi bilmem gerekiyor mu?
C: Hayır, mülakat hazırlığı için buradaki herşeyi bilmeniz gerekmiyor..
Bir mülakatta size sorulan sorular aşağıdaki değişkenlere bağlıdır:
- Ne kadar tecrübelisiniz
- Teknik özgeçmişinizin ne olduğu
- Hangi pozisyonlar için mülakata alındığınız
- Mülakatı yaptığınız şirketler
- Şans
Genellikle, daha tecrübeli olan adaylardan sistem tasarımı hakkında daha çok bilgi sahibi olmalaraı beklenir. Mimari tasarımcılarından veya takım liderlerinden, bireysel iştirakçilerden daha bilgili olmaları beklenebilir. Başı çeken teknoloji şirketleri bir veya daha fazla sistem tasarımı mülakatı yapmaya yönelimlidir.
Geniş olarak başlayın ve ardından bazı alanlarda derinlere inin. Bu, sizin çeşitli kilit sistem tasarımı konuları hakkında fikir sahibi olmanıza yardımcı olur. Takip eden rehberi; kendi planlamanıza, tecrübenize, mülakata girdiğiniz pozisyonlara ve hangi şirketlerle mülakat yaptığınza göre kendiniz için uyarlayın.
- Kısa vadede - Sistem tasarımı konularının genelini hedefleyin. Bunun pratiğini biraz mülakat soruları çözerek yapın.
- Orta vadede - Sistem tasarımı konularında biraz derinlere inin ve bazılarında genel seviyeyi hedefleyin. Bunun pratiğini biraz mülakat soruları çözerek yapın.
- Uzun vadede - Sistem tasarımı konularında daha derinlere inin ve bazılarında genel seviyeyi hedefleyin. Bunun pratiğini biraz mülakat soruları çözerek yapın.
Kısa | Orta | Uzun | |
---|---|---|---|
Sistemlerin nasıl çalıştığı hakkında genel bir fikir edinmek için Sistem tasarımı konularını okuyun | 👍 | 👍 | 👍 |
Mülakat yaptığınız şirketler için, Şirket mühendisliği bloglarından bazı makaleler okuyun | 👍 | 👍 | 👍 |
Read through a few Real world architectures | 👍 | 👍 | 👍 |
Sistem tasarımı mülakat sorularına nasıl yaklaşacağınızı inceleyin | 👍 | 👍 | 👍 |
Çözümleriyle beraber sistem tasarımı mülakat soruları üzerinde çalışın | Bazısı | Birçoğu | Çoğunluğu |
Çözümleriyle beraber nesne tabanlı tasarım mülakat soruları üzerinde çalışın | Bazısı | Birçoğu | Çoğunluğu |
Ek sistem tasarımı mülakat sorularını inceleyin | Bazısı | Birçoğu | Çoğunluğu |
Sistem tasarımı mülakat sorularına nasıl yaklaşılır
Bir sistem tasarımı mülakat sorusunun nasıl hakkından gelinir?
Sistem tasarımı mülakatı bir açık uçlu sohbettir. Buna önderlik etmeniz beklenir.
Aşağıdaki adımları kullanarak tartışmaya rehberlik edebilirsiniz. İlerlemeyi pekiştirmek için, aşağıdaki adımları kullanarak çözümleriyle beraber sistem tasarımı mülakat soruları üzerinde çalışın.
Adım 1: Kullanım senaryolarını, kısıtlamaları ve varsayımları ana hatlarıyla belirtin
Gereklilikleri bir araya getirin ve problemi gözlemleyin. Kullanım senaryolarını ve kısıtlamaları berraklaştırmak için sorular sorun. Varsayımları tartışın.
- Bunu kim kullanacak?
- Nasıl kullanacaklar?
- Kaç tane kullanıcı var?
- Sistem ne işe yarar?
- Sistemin girdileri ve çıktıları nelerdir?
- Ne kadar veriyi işlememiz gerekiyor?
- Saniye başına kaç istek gelmesini bekliyoruz?
- Okuma yazma oranı ne kadar?
Adım 2: Yüksek seviye bir tasarım oluşturun
-
Yüksek seviye bir tasarımı bütün önemli içeriklerini içererek anahatlarıyla belirtin.
-
Ana içerikleri ve onların bağlantılarını kabaca açıklayın
-
Fikirlerinizi doğrulayın
Adım 3: Merkez çekirdek içerikleri tasarlayın
Her çekirdek içeriğin detaylarına kadar inin. Örneğin, size bir url kısaltma servisinin tasarlanması sorulduğunda şunları açıklayın:
- Tam url'nin şifrelenmiş değerinin oluşturulması ve saklanması
- Şifrelenmiş url'i tam url'e dönüştürmek
- Veritabanı araması
- API ve nesne tabanlı tasarım
Adım 4: Tasarımı ölçekleyin
Kısıtlamalar göz önüne alındığında darboğazları belirleyin ve ele alın. Örneğin, ölçeklenebilirlik sorunlarını çözmek için aşağıdakilere ihtiyacınız var mı?
- Yükleme dengeleyicisi
- Yatay ölçekleme
- Önbellekleme
- Veritabanı bölümleme
Potansiyel çözümleri ve takasları tartışın. Her şey bir takastır. Ölçeklenebilir sistem tasarımı ilkelerini kullanarak darboğazların üstesinden gelin.
Zarf hesaplamalarının Diğer Yüzü
Bazı tahminleri elle yapmanız istenebilir. Aşağıdaki kaynaklar için Ekler bölümüne bakın: