Engineering
Software Architecture
Strukturlar, trade-off-lar və dəyişdirilməsi çətin olan qərarlar
Software Architecture
Strukturlar, trade-off-lar və dəyişdirilməsi çətin olan qərarlar
Arxitekt kimi düşünmək üçün praktik bələdçi: nəyin vacib olduğunu müəyyən etmək, quality attribute-lərə xidmət edən strukturlar seçmək, dəyişikliyə davam gətirən boundary-lər çəkmək və qərarları qeydə almaq. İkinci hissə bu düşüncə tərzini böyük miqyaslı sistemlərə tətbiq edir: capacity və SLO-lar, API-lər, building block-lar, data at scale, reliability pattern-ləri, distributed data, deployment və observability.
16 fəsil108 dəq oxuYenilənib: 2026-10-31
0% oxunub
Mündəricat
- 8.1Contract-first: API-ni consumer-in gözü ilə dizayn etmək
- 8.2REST: resource-lar və HTTP semantikası
- 8.3RPC və gRPC: əməliyyat yönümlü dizayn
- 8.4GraphQL: client-driven query-lər
- 8.5Böyük API-lərin praktik məsələləri
- 8.6Versioning və təkamül
- 8.7Synchronous və asynchronous API-lər
- 8.8Hazırkı sisteminiz haqqında suallar
- 10.1Storage seçimi access pattern-dən başlayır
- 10.2Index-lər: oxumanı alıb yazmadan ödəmək
- 10.3Replication: eyni data, bir neçə yerdə
- 10.4Partitioning və sharding: son çarə
- 10.5CAP-dan PACELC-ə
- 10.6Consistency modelləri istifadəçinin gözü ilə
- 10.7Unstructured data: object storage
- 10.8Hazırkı sisteminiz haqqında suallar
- 11.1Partial failure normal vəziyyətdir
- 11.2Timeout: gözləməyin sərhədi
- 11.3Retry, backoff və jitter
- 11.4Circuit breaker və bulkhead
- 11.5Yük altında: rate limiting, load shedding və graceful degradation
- 11.6Queue-lar: backpressure və dead letter queue
- 11.7Pattern-lər birlikdə
- 11.8Hazırkı sisteminiz haqqında suallar
- 13.1OLTP və OLAP: iki fərqli dünya
- 13.2Batch processing: bitmiş data üzərində hesablama
- 13.3Stream processing: vaxt çətin hissədir
- 13.4Delivery semantikası və "exactly-once"
- 13.5Lambda və Kappa architecture
- 13.6Saxlama: warehouse, lake, lakehouse
- 13.7Batch, yoxsa stream?
- 13.8Hazırkı sisteminiz haqqında suallar
- 14.1Deploy release deyil
- 14.2Kiçik və tez-tez
- 14.3Rolling və blue-green: versiyanı necə dəyişmək
- 14.4Canary release: riski ölçərək genişləndirmək
- 14.5Feature flag-lər: release-i kodla idarə etmək
- 14.6Database migration-ları: expand–contract
- 14.7Chaos engineering: bərpanın işlədiyini yoxlamaq
- 14.8Hazırkı sisteminiz haqqında suallar
- 16.1Requirement-lər və constraint-lər
- 16.2Quality attribute-lərin sıralanması
- 16.3Capacity estimation
- 16.4Yüksək səviyyəli arxitektura
- 16.5Data modeli və storage
- 16.6Rezerv və ödəniş saga-sı
- 16.7Availability və SLO-lar
- 16.8Deployment və observability
- 16.9Bu layihənin üç əsas ADR-i
- 16.10Nə etmədik və niyə
- 16.11Yekun: qərarlar və onların səbəbi
- 16.12Son fikir
- 16.13Hazırkı sisteminiz haqqında suallar