GoDasturchi
Decompose an Image Upload Service

Decompose an Image Upload Service

Rasm yuklash xizmatini bo'laklashtiring

Oldingi to'rtta darsda o'rgangan barcha g'oyalarni (savol berish, nomlash, chalkashlikni topish) birlashtirib, to'liq stsenariyni oxirigacha bo'laklashtiramiz: "Foydalanuvchilar profil rasmini yuklay olishi kerak."

Avval — Questions, Not Guesses darsidagi kabi, noaniq joylarni aniqlaymiz va oqilona taxminlar bilan to'ldiramiz: fayl formatlari — JPEG/PNG, maksimal hajm — 5MB, eski rasm yangisi bilan almashtiriladi, xato bo'lsa foydalanuvchiga aniq xabar ko'rsatiladi.

Endi — Name the Components va Spot the Tangled Responsibilities darslaridagi kabi, mustaqil komponentlarga ajratamiz:

KomponentMas'uliyatiNimadan qaram (depends on)
Uploader (HTTP handler)So'rovni qabul qiladi, faylni oladiValidator, Storage
ValidatorFormat va hajmni tekshiradiHech narsadan (mustaqil)
StorageFaylni saqlash joyiga yozadi, URL qaytaradiHech narsadan (mustaqil)
ProfileUpdaterFoydalanuvchi yozuvidagi rasm URL'ini yangilaydiDatabase

E'tibor bering: Validator va Storage hech narsadan qaram emas — ular mustaqil, o'z-o'zicha sinaladigan qismlar. Uploader esa ikkalasini ham ishlatadi (orchestrates), lekin ularning ichki ishlash tafsilotlarini bilishi shart emas — bu Real-World Patterns kursidagi HTTP handler naqshining, va YAML Data Pipeline kursidagi "kichik funksiyalarni birlashtirish" g'oyasining bevosita davomi.

Bu jadval — hali bitta ham kod qatori yozilmasdan turib, butun tizimning arxitekturasi. Keyingi darslarda siz bu jadvaldagi "nimadan qaram" ustunini — komponentlar orasidagi chegaralarni — chuqurroq o'rganasiz.

Key Takeaway

Key Takeaway:

To'liq bo'laklashtirish jarayoni: noaniq joylarni savol/taxmin bilan to'ldirish, so'ngra mustaqil komponentlarni nomlab, ularning bir-biriga bog'liqligini jadval yoki diagramma ko'rinishida chizish — hammasi kod yozishdan oldin.

NEXT UP

What Crosses the Boundary

Decompose an Image Upload Service

Rasm yuklash xizmatini bo'laklashtiring

Oldingi to'rtta darsda o'rgangan barcha g'oyalarni (savol berish, nomlash, chalkashlikni topish) birlashtirib, to'liq stsenariyni oxirigacha bo'laklashtiramiz: "Foydalanuvchilar profil rasmini yuklay olishi kerak."

Avval — Questions, Not Guesses darsidagi kabi, noaniq joylarni aniqlaymiz va oqilona taxminlar bilan to'ldiramiz: fayl formatlari — JPEG/PNG, maksimal hajm — 5MB, eski rasm yangisi bilan almashtiriladi, xato bo'lsa foydalanuvchiga aniq xabar ko'rsatiladi.

Endi — Name the Components va Spot the Tangled Responsibilities darslaridagi kabi, mustaqil komponentlarga ajratamiz:

KomponentMas'uliyatiNimadan qaram (depends on)
Uploader (HTTP handler)So'rovni qabul qiladi, faylni oladiValidator, Storage
ValidatorFormat va hajmni tekshiradiHech narsadan (mustaqil)
StorageFaylni saqlash joyiga yozadi, URL qaytaradiHech narsadan (mustaqil)
ProfileUpdaterFoydalanuvchi yozuvidagi rasm URL'ini yangilaydiDatabase

E'tibor bering: Validator va Storage hech narsadan qaram emas — ular mustaqil, o'z-o'zicha sinaladigan qismlar. Uploader esa ikkalasini ham ishlatadi (orchestrates), lekin ularning ichki ishlash tafsilotlarini bilishi shart emas — bu Real-World Patterns kursidagi HTTP handler naqshining, va YAML Data Pipeline kursidagi "kichik funksiyalarni birlashtirish" g'oyasining bevosita davomi.

Bu jadval — hali bitta ham kod qatori yozilmasdan turib, butun tizimning arxitekturasi. Keyingi darslarda siz bu jadvaldagi "nimadan qaram" ustunini — komponentlar orasidagi chegaralarni — chuqurroq o'rganasiz.

Key Takeaway

Key Takeaway:

To'liq bo'laklashtirish jarayoni: noaniq joylarni savol/taxmin bilan to'ldirish, so'ngra mustaqil komponentlarni nomlab, ularning bir-biriga bog'liqligini jadval yoki diagramma ko'rinishida chizish — hammasi kod yozishdan oldin.

NEXT UP

What Crosses the Boundary