Bosh sahifa Wiki Runtime Dependency

Runtime Dependency

Runtime Dependency — dastur ishga tushishi yoki funksiyasini bajarishi paytida mavjud bo‘lishi kerak bo‘lgan library, package, service yoki tizim komponenti. U build tugagach ham deployment muhitining bir qismi bo‘lib qoladi.

Dependency turlari

Dynamic library, language runtime, framework package, database driver va external service client runtime dependency bo‘lishi mumkin. Direct dependency kod tomonidan chaqiriladi; transitive dependency esa boshqa paket orqali kerak bo‘ladi.

Yetkazish modeli

Packaging usuli dependency qanday yetkazilishini belgilaydi. Self-contained build runtime’ni ichiga oladi, dynamic deployment system package yoki shared libraryga tayanadi. Container image exact user-space dependencylarni saqlaydi, ammo kernel va ayrim device xizmatlari hostdan keladi.

Moslik

Version constraint source compatibilitydan tashqari ABI va protocol compatibilityni ham hisobga oladi. Library diskda bor bo‘lsa ham symbol version yoki architecture mos kelmasligi mumkin. External service uchun endpoint, authentication va schema migration shartlari mavjud.

Optional komponent

Optional runtime feature faqat ma’lum konfiguratsiyada dependency talab qilishi mumkin. Startup health check barcha optional integrationni majburan fail qilmasdan, yoqilgan feature closure’ni tekshiradi. Lazy load xatoni birinchi foydalanishgacha kechiktiradi.

To‘liq closure

Minimal deployment dev va build paketlarni chiqarib tashlaydi, ammo dynamic dependency scan runtime dlopen, plugin yoki reflection orqali topiladigan paketlarni o‘tkazib yuborishi mumkin. Explicit manifest va integration test kerak.

Release nazorati

Tekshiruv clean production muhitda startup, asosiy workflow, missing dependency va incompatible version holatlarini qamraydi. SBOM runtime closure, source, hash va license’ni release bilan birga qayd etadi.

Runtime dependency health faqat package o‘rnatilganini emas, load, handshake yoki minimal operatsiyani tekshiradi. Biroq startup probe tashqi servisdagi qisqa uzilish sabab barcha processni qayta boshlatadigan darajada qattiq sozlanmaydi.

+## Amaliy boshqaruv

Runtime Dependency xavfsizligi faqat happy-path bilan baholanmaydi. dynamic library, runtime package va external endpoint atrofidagi limitlar, noto‘g‘ri format va parallel bajarilish holatlari oldindan sinovga kiritiladi. Parser yoki runtime katta qiymatlarda integer overflow, cheksiz recursion va xotira o‘sishidan himoyalanadi. Ishonchsiz kirish diagnostic matn orqali terminal escape yoki maxfiy pathni chiqarib yubormasligi ham nazorat qilinadi.

Muhim xato sinfi — yashirin plugin yoki incompatible protocol version. Bunday holatda vosita optimistik taxmin bilan davom etmaydi: zarur bo‘lsa sekinroq, lekin xavfsiz yo‘l tanlanadi yoki aniq diagnostika bilan jarayon to‘xtatiladi. Xatoni qayta ishlab bo‘ladigan qilish uchun target, optionlar, kirish identifikatori va tegishli metadata qayd etiladi. Foydalanuvchi ma’lumoti xom shaklda loglanmaydi; hash, build-id yoki cheklangan kontekst yetarli bo‘lgan joyda shular ishlatiladi.

Sifat nazorati clean production startup, workflow va SBOM nazorati orqali bajariladi. Testlar normal misol bilan cheklanmay, bo‘sh kirish, minimal va maksimal o‘lcham, mos kelmaydigan versiya, yo‘qolgan komponent hamda parallel holatlarni qamraydi. Natijaning to‘g‘riligi performance o‘lchovidan alohida baholanadi. Keyin vaqt, xotira, artefakt hajmi yoki runtime kechikishi kabi mavzuga mos metrikalar baseline bilan solishtiriladi. Regressiya topilsa, minimal takrorlanuvchi holat saqlanib, keyingi release uchun doimiy testga aylantiriladi.

Bog‘liq tushunchalar

development dependency, dynamic library, deployment, package manifest, SBOM, dependency graph