Tarkibga o'tish

Dasturiy ta'minot arxitekturasi β€” 0 dan Expertgacha

Bu kitob dasturlashni biladigan (kamida bitta tilda kod yoza oladigan) o'quvchini dasturiy ta'minot arxitekturasi bo'yicha noldan ishonchli darajaga olib chiqadi. Kod darajasidagi dizayndan β€” coupling/cohesion, SOLID, design patternlar β€” boshlab, ilova arxitekturasi (qatlamli, hexagonal, clean, DDD, event-driven/CQRS) orqali, tizim dizayniga (monolit vs mikroservis, API dizayni, ma'lumotlar bazasi tanlovi, masshtablash, keshlash, navbatlar, CAP, ishonchlilik, observability) o'tib, yakuniy real tizimni noldan loyihalash kapstoniga yetadi.

🧭 Til-mustaqil kitob. Arxitektura β€” bu sintaksis emas, qaror. Shuning uchun bu kitob biror tilga bog'lanmaydi: asosiy yuk diagrammalar (C4, ketma-ketlik, komponent) va pseudokodda, lekin kerakli joyda ishlaydigan TypeScript yoki Python namunalari beriladi. Patternlar va printsiplar har qanday tilda qo'llaniladi.

βš–οΈ HALOL eslatma. Arxitekturada "yagona to'g'ri javob" yo'q β€” har qaror trade-off (ayirboshlash). Bu kitob qoidalarni emas, fikrlashni o'rgatadi: qachon qaysi yondashuv, va nega. Kod namunalari (TypeScript/Python) haqiqatan ishga tushirib tekshirilgan; tizim dizayni qarorlari esa kontekstga bog'liq β€” kitob ularni trade-off sifatida taqdim etadi, "har doim shunday qil" deb emas.

ℹ️ Bu kitob siz kamida bitta dasturlash tilini (funksiya, sinf/obyekt, interfeys, asosiy OOP) bilasiz deb hisoblaydi. Yangi bo'lsangiz, avval TypeScript, Python yoki PHP kitoblaridan birini o'qing. PHP'da arxitekturaning amaliy qo'llanilishini PHP Expert kitobida ham ko'rishingiz mumkin (bu kitob til-mustaqil va kengroq).


Qanday o'qish kerak

  1. Boblarni tartib bilan o'qing (01 β†’ 02 β†’ ...). Har bir qism oldingisiga tayanadi: kod dizayni β†’ ilova arxitekturasi β†’ tizim dizayni.
  2. Har bobdagi diagrammani diqqat bilan o'rganing β€” arxitektura ko'p jihatdan vizual fikrlash.
  3. Kod namunalarini o'zingiz teribb ishga tushiring; "Mashqlar" da o'zingiz loyihalashga urinib ko'ring (arxitektura amaliyot bilan o'rganiladi).
  4. Har bir "trade-off" da o'zingizdan so'rang: bu yerda nimani nimaga almashtiryapman?

Talab

Kerak Daraja
Kamida bitta tilda dasturlash (funksiya, sinf, interfeys) Shart
OOP asoslari (meros, polimorfizm, abstraksiya) Shart
Ma'lumotlar bazasi asoslari (SQL, jadval, kalit) Foydali
Veb/backend bilan tanishlik (HTTP, API) Foydali
Git bilan tanishlik Foydali

Mundarija

I qism β€” Arxitektura asoslari

# Bob Mavzu
01 Dasturiy arxitektura nima va nega muhim Arxitektura ta'rifi, me'mor roli, arxitektura vs dizayn, texnik qarz, nega muhim.
02 Sifat atributlari va trade-off'lar "-ilities" (masshtablanuvchanlik, qo'llab-quvvatlanuvchanlik, ishonchlilik...), trade-off, "hammasi ayirboshlash".
03 Arxitekturani hujjatlashtirish: C4, UML, ADR C4 model (Context/Container/Component/Code), UML asoslari, Architecture Decision Record (ADR).

II qism β€” Kod darajasidagi dizayn

# Bob Mavzu
04 Coupling va cohesion (bog'liqlik va jipslik) Tight/loose coupling, high/low cohesion, coupling turlari, connascence β€” dizaynning poydevori.
05 SOLID printsiplari SRP, OCP, LSP, ISP, DIP β€” misol va anti-misol bilan (TS/Python).
06 Boshqa printsiplar: DRY, KISS, YAGNI, SoC DRY, KISS, YAGNI, separation of concerns, Demeter qonuni, meros o'rniga kompozitsiya.
07 Yaratuvchi patternlar (creational) Factory Method, Abstract Factory, Builder, Prototype, Singleton (+ anti-pattern).
08 Strukturaviy patternlar (structural) Adapter, Decorator, Facade, Proxy, Composite, Bridge, Flyweight.
09 Xulq-atvor patternlari (behavioral) Strategy, Observer, Command, State, Template Method, Iterator, Mediator, Chain of Responsibility.

III qism β€” Ilova arxitekturasi

# Bob Mavzu
10 Modullik, komponentlar va chegaralar Modullik, komponentlar, paketlar, chegaralar, modulli monolit, package-by-feature.
11 Qatlamli arxitektura (layered / n-tier) Presentation/business/data qatlamlari, n-tier, sinkhole anti-pattern, qachon kerak.
12 Hexagonal: portlar va adapterlar Ports & adapters, biznes mantiqni infratuzilmadan ajratish, dependency inversion miqyosda.
13 Onion va Clean Architecture Onion, Clean Architecture, dependency rule, use case, entity, chegaralar.
14 Domain-Driven Design (DDD) asoslari Ubiquitous language, bounded context, entity/VO/aggregate, domain event, strategik vs taktik.
15 Event-driven arxitektura va CQRS Event-driven, pub/sub, event sourcing, CQRS, eventual consistency kirish.

IV qism β€” Tizim dizayni asoslari

# Bob Mavzu
16 Monolit, modulli monolit va mikroservislar Monolit vs mikroservis vs modulli monolit, qachon bo'lish, distributed monolit anti-pattern.
17 Servislararo aloqa va API dizayni REST, gRPC, GraphQL, sinxron vs asinxron, API gateway, BFF, versiyalash, idempotentlik.
18 Ma'lumotlar bazasi: SQL vs NoSQL, modellashtirish Relyatsion vs document/key-value/column/graph, qachon qaysi, polyglot persistence, ACID vs BASE.
19 Masshtablash va load balancing Vertikal/gorizontal masshtab, load balancer, stateless servis, sharding, replikatsiya kirish.
20 Keshlash strategiyalari Cache-aside, write-through/behind, CDN, Redis, kesh-invalidatsiya, stampede, TTL.
21 Message queue va asinxron aloqa Navbatlar, broker (Kafka/RabbitMQ), async ishlov, backpressure, idempotentlik, outbox.

V qism β€” Ishonchli distributed tizimlar

# Bob Mavzu
22 CAP, consistency va replikatsiya CAP teoremasi (aniq), PACELC, consistency modellari, replikatsiya, partitsiyalash, consensus kirish.
23 Ishonchlilik: fault tolerance va resilience Retry, circuit breaker, bulkhead, timeout, graceful degradation, SPOF, distributed computing fallacy'lari.
24 Observability va operatsiya Logging, metrics, tracing (3 ustun), monitoring, SLA/SLO/SLI, alerting.

VI qism β€” Amaliyot va kapston

# Bob Mavzu
25 Evolyutsion arxitektura, anti-patternlar va xavfsizlik Evolyutsion arxitektura, fitness function, anti-patternlar (big ball of mud...), Conway qonuni, security by design.
26 Kapston: real tizimni noldan loyihalash To'liq tizim dizayni: talablar β†’ C4 diagrammalar β†’ ADR β†’ komponentlar β†’ ma'lumot modeli β†’ masshtab rejasi β†’ trade-off'lar.

Muallif

Oqil Imomnazarov β€” ioqil.uz Β· Telegram Β· YouTube

Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.