Programming TypeScript


Download 1.81 Mb.
bet138/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   134   135   136   137   138   139   140   141   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Mashqlar


1. Ushbu bobdagi naqshlardan birini ishlatib, quyidagi API uchun xatolarni hal qilish usulini ishlab chiqing. Ushbu APIda har bir operatsiya muvaffaqiyatsiz bo'lishi mumkin - muvaffaqiyatsizlikka ruxsat berish uchun API usuli imzolarini yangilang (yoki xohlasangiz, buni qilmang). Xatolarni hal qilishda qanday harakatlar ketma-ketligini bajarishingiz mumkinligini o'ylab ko'ring (masalan, tizimga kirgan foydalanuvchining identifikatorini olish, so'ngra ularning do'stlari ro'yxatini olish, so'ngra har bir do'stning ismini olish):
sinf API {
getLoggedInUserID () : Foydalanuvchi IDsi getFriendIDs ( userID : UserID ) : UserID [] getUserName ( userID : UserID ) : ip
}
8-BOB
Asinxron dasturlash,

Parallellik va parallellik


Hozirgacha ushbu kitobda biz asosan sinxron dasturlarni ko'rib chiqdik - ba'zi ma'lumotlarni oladigan, ba'zi narsalarni bajaradigan va bitta o'tishda yakunlanadigan dasturlar. Ammo haqiqatan ham qiziqarli dasturlar - tarmoq so'rovlarini amalga oshiradigan, ma'lumotlar bazalari va fayl tizimlari bilan o'zaro aloqada bo'ladigan, foydalanuvchilarning o'zaro ta'siriga javob beradigan, protsessorni ko'p talab qiladigan ishni alohida oqimlarga yuklaydigan haqiqiy ilovalarning qurilish bloklari - barchasi qayta qo'ng'iroqlar, va'dalar va boshqalar kabi asinxron API-lardan foydalanadi. va oqimlar.
Ushbu asinxron vazifalar JavaScript haqiqatan ham porlaydi va Java va C++ kabi boshqa asosiy ko'p oqimli tillardan ajralib turadi. V8 va SpiderMonkey kabi mashhur JavaScript dvigatellari an'anaviy ravishda ko'p ish zarralarini talab qiladigan narsalarni bitta ish zarrasi bilan bajaradi, boshqa vazifalar bo'sh turganda, aqlli va bir ish zarrachasida vazifalarni multiplekslash orqali. Ushbu hodisa tsikli JavaScript dvigatellari uchun standart tirqish modeli boʻlib, siz foydalanayotgan deb taxmin qilamiz. Yakuniy foydalanuvchi nuqtai nazaridan qaraganda, sizning vositangiz hodisa halqali modeli yoki ko‘p tarmoqli modeldan foydalanishi odatda muhim emas, lekin bu ishlar qanday ishlashi va nima uchun biz narsalarni o‘zimiz qilgan tarzda loyihalash haqida men beradigan tushuntirishlarga ta’sir qiladi.
Hodisa-loopli parallellik modeli JavaScript-ning ko'p tarmoqli dasturlash uchun xos bo'lgan barcha umumiy oyoq qurollaridan, shuningdek sinxronlashtirilgan ma'lumotlar turlari, mutekslar, semaforlar va ko'p oqimli jargonning boshqa barcha bitlaridan qochish imkonini beradi. JavaScript-ni bir nechta mavzular orqali ishga tushirganingizda, umumiy xotiradan foydalanish kamdan-kam uchraydi; odatiy namuna - bu xabarlarni uzatishdan foydalanish va ma'lumotlarni oqimlar o'rtasida jo'natishda ketma-ketlashtirish. Bu Erlang, aktyor tizimlari va boshqa sof funktsional parallellik modellarini eslatuvchi dizayn va JavaScript-da ko'p bosqichli dasturlashni ishonchli qiladi.
Ya'ni, asinxron dasturlash dasturlarni mulohaza qilishni qiyinlashtiradi, chunki siz endi dasturni satr bo'yicha aqliy ravishda kuzatib bo'lmaydi; Qachon to'xtatib turish va ijroni boshqa joyga ko'chirish va qachon qaytadan boshlash kerakligini bilishingiz kerak.
TypeScript bizga asinxron dasturlar haqida mulohaza yuritish uchun vositalarni beradi: turlar asinxron ishlarni kuzatishimizga imkon beradi va asinxron / kutish uchun o'rnatilgan qo'llab-quvvatlash bizga asinxron dasturlarga tanish sinxron fikrlashni qo'llash imkonini beradi. Biz TypeScript-dan ko'p oqimli dasturlar uchun qat'iy xabar uzatish protokollarini belgilash uchun ham foydalanishimiz mumkin (bu ko'rinadiganidan ancha sodda). Agar barchasi muvaffaqiyatsiz bo'lsa, hamkasbingizning asinxron kodi juda murakkablashganda va siz uni tuzatishda kech qolishingizga to'g'ri kelganda (albatta, kompilyator bayrog'i orqasida) TypeScript sizni orqaga qaytarishi mumkin.
Ammo asinxron dasturlar bilan ishlashni boshlashdan oldin, keling, zamonaviy JavaScript dvigatellarida asinxronlik qanday ishlashi haqida bir oz ko'proq gaplashaylik — qanday qilib biz bitta ish zarrachasi bo'lib ko'rinadigan bo'lsak, bajarishni to'xtatib, davom ettirishimiz mumkin?

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   134   135   136   137   138   139   140   141   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling