paint-brush
Ҳаки нави Frontend иҷрои API-ро беҳтар мекунадаз ҷониби@axotion
Таърихи нав

Ҳаки нави Frontend иҷрои API-ро беҳтар мекунад

аз ҷониби Kamil Fronczak4m2025/01/17
Read on Terminal Reader

Хеле дароз; Хондан

Дар гузашта, таҳиягарон як API-ро барои хондан ва навиштан дар ҳар як ҳолат истифода мебурданд. Ин боиси мубориза бо оптимизатсияи индексҳо дар соҳаҳое гардид, ки пурсишҳои зиёд буданд. Намунаи калиди Valet, CQRS ва пойгоҳи додаҳои ҷустуҷӯ онро тағир доданд.
featured image - Ҳаки нави Frontend иҷрои API-ро беҳтар мекунад
Kamil Fronczak HackerNoon profile picture
0-item

Дар гузашта, ман бисёр вақт як равиши умумиро мушоҳида мекардам, ки таҳиягарон (аз ҷумла худам, албатта) як API-ро барои хондан ва навиштан дар ҳар як ҳолат истифода мебурданд. Ғайр аз он, мо барои идора кардани ҳарду амалиёт аксар вақт ба як манбаи додаҳо, ба монанди MySQL/PostgreSQL такя мекардем.


Ин маънои навиштан ба ҳамон сутунҳо ва аз онҳо хонданро дорад, ки аксар вақт ба мубориза бо оптимизатсияи индексҳо дар майдонҳое, ки пурсишҳои зиёд доранд, оварда мерасонад.


Ҳамин тавр, масалан, мо мехоҳем зуд-зуд шохисҳоро тағир диҳем, то филтрҳои нав ё беҳтар кардани иҷрои дархостҳо ва майдонҳое, ки бо операторҳо истифода мешаванд, ба монанди LIKE аз сабаби таъсири онҳо ба иҷроиш, мушкилоти хосеро ба бор меоварданд.


Ин тағиротҳо аксар вақт ба ислоҳоти минбаъдаи пуштибонӣ оварда мерасонанд, аз ҷумла тағир додани API-ҳо барои фош кардани функсияҳои навшуда, вақти ченшуда аз ҳисоби JOIN-ҳои иловагӣ ва ғайра...


Тавсифи тасвир

Барои ҳалли мушкилот дар бораи илова кардани филтрҳо ва ашёи нав дар API, кӯшишҳо барои оптимизатсия кардани раванд бо истифода аз асбобҳо ва стандартҳо ба монанди Apicalypse ва албатта GraphQL буданд.


Ин қарорҳо ба содда кардани тавлиди дархостҳои API ва кам кардани кӯшиши дастӣ барои татбиқи филтрҳо ва функсияҳои нав нигаронида шудаанд, ки барои коркарди дастрасии додаҳо равиши бештар динамикӣ пешниҳод мекунанд, аммо онҳо хатти баланди омӯзиш доштанд.


Тавсифи тасвир


Бо афзоиши CQRS (Segregation Query Responsibility Command), равиши нав пайдо шуд. Ин тафаккур ба истифодаи манбаъҳои алоҳида барои навиштан ва хондан ташвиқ мекард. Навиштаҳо метавонанд рӯйдодҳоро паҳн кунанд ва хонданҳо метавонанд аз ин рӯйдодҳо дар ҷойҳои махсус назари худро эҷод кунанд. Ҳатто агар хондан ва навиштан дар як пойгоҳи додаҳо идора карда мешуд (вале ҷадвалҳои гуногун), ин ҷудокунӣ манфиатҳои назаррас овард ва, албатта, тавонист аз мушкилоти дуюм - JOINҳо ва дархостҳои ҷустуҷӯӣ дар моделҳои доменҳо халос шавад, зеро моделҳои хондан одатан дар шакли JSON-ҳои ғайримуқаррарӣ.


Тавсифи тасвир

Аммо ин як мушкили дигарро ба миён овард. Ҳангоми хондан, мо маҷбур шудем, ки навиштанҳоро миқёс кунем, маънои ягона сабаби миқёси миқёси дархости мо аз X то Y ин хондан буд. Ин масъаларо метавон бо кэш қисман ҳал кард ва дар ҷаҳони хидматрасониҳои хурд, мо метавонистем микросервисҳои махсус барои хондан дошта бошем.


Аммо...


Бо вуҷуди ин, ин як ҳалли беҳтарин барои дигар услубҳои меъморӣ ба монанди монолитҳои модулӣ набуд, ки дар он ҷо чунин ҷудокунӣ бо фалсафаи тарроҳии система мувофиқат намекунад. Чизи дигар ин буд, ки вақте ки API қатъ шуд, тамоми маҳсулот хомӯш буд ва дар хотир дошта бошед, ки аксари маҳсулот нисбат ба навиштан ба хондани бештар такя мекунанд, он метавонад ба тиҷорат таъсири нолозимро расонад (албатта аз поёни API;) )


Пас, чӣ мешавад, агар мо метавонем аз он "назардоштҳо", ки ҳамчун моделҳои хондан маълуманд, мустақиман бидуни ҷалби API ва коркарди борҳо пурсем? Дар ин ҷо қарорҳо ба монанди Meilisearch , AppSearch ва дигарон ба кор медароянд, ки намунаи "Valet Key"-ро истифода мебаранд. Бо истифода аз ин намуна, фронтҳо метавонанд мустақиман ба моделҳои барои хондан оптимизатсияшуда дастрасӣ пайдо кунанд ва вобастагии API-ҳои пуштибониро коҳиш диҳанд. Албатта, интерфейс то ҳол бояд API-ро барои "калиди Valet" "пурсад", аммо интерфейс метавонад калидҳоро кэш кунад, аз ин рӯ, ҳатто вақте ки API кор намекунад, интерфейс метавонад мундариҷаро нишон диҳад.


Тавсифи тасвир

Тавсифи тасвир


Бо ин равиш, мо метавонем ба пойгоҳи додаҳои хониш тамаркуз кунем ва дар бораи коркарди трафик барои хондан дар API-и худ хавотир нашавем. "Калиди Valet", ки ба интерфейс тавассути API-и мо дода шудааст, тавре ҳифз шудааст, ки интерфейс онро тағир дода наметавонад. Он филтрҳо ва индексҳои пешакӣ муайяншударо дар бар мегирад.


Агар интерфейс имкониятҳои иловагиро талаб кунад, он метавонад онҳоро тавассути API дархост кунад, ки дар он API метавонад тасдиқ кунад, ки оё ба онҳо иҷозат дода мешавад. Зангҳо ҳанӯз камтар аст.


Баъзе аз тарафдорони ман дида метавонам инҳоянд:

  • Сарбории камшудаи API : Трафики хондашударо аз API бор мекунад ва ба он имкон медиҳад, ки ба амалиёти асосӣ тамаркуз кунад.
  • Миқёспазирӣ : Пойгоҳҳои хониш ё хидматҳои ҷустуҷӯӣ барои коркарди трафики зиёд беҳтар оптимизатсия карда шудаанд, ки зарурати миқёси пуштибонии барномаро коҳиш медиҳад.
  • Фасеҳӣ : SaaS ё имконоти худидоракунӣ ба гурӯҳҳо имкон медиҳанд, ки беҳтаринро барои инфрасохтори худ интихоб кунанд.
  • Амният : Филтрҳо ва индексҳои пешакӣ муайяншуда кафолат медиҳанд, ки интерфейс танҳо ба маълумоти иҷозатдодашуда дастрасӣ дошта, хатарҳоро кам мекунад. Калидҳо метавонанд аз ҷониби API беэътибор карда шаванд.
  • Самаранокии таҳиякунанда : Эҳтиёҷоти навсозии доимии API-ро барои филтрҳои нав ё қобилиятҳои ҷустуҷӯ коҳиш медиҳад.
  • Иҷрои беҳтаршуда : Дастрасии мустақим ба моделҳои барои хондан оптимизатсияшуда барои корбарон посухҳои зудтари дархостҳоро таъмин мекунад.


Аммо, ҳамеша камбудиҳо вуҷуд доранд:

  • Мутобиқати ниҳоӣ : Маълумот метавонад пас аз чанд вақт аз сабаби хусусияти мувофиқати ниҳоӣ дар моделҳои хондашуда пайдо шавад.
  • Нигоҳдории иловагӣ: Ҷузъи иловагиро ҷорӣ мекунад, ки мониторинг ва идоракуниро талаб мекунад.
  • Мушкилии схема : Схемаҳо бояд дар код ё ҷои умумӣ нигоҳ дошта шаванд, зеро дастаҳои гуногун аз контекстҳои гуногун метавонанд як ҳуҷҷатро пур кунанд (масалан, корманд бо почтаи электронӣ, инчунин бо кредитҳо ва купонҳои дастрас). Гарчанде ки бевосита ба ин намуна алоқаманд нест, он мураккабиро илова мекунад.
  • Арзиши версияи SaaS ё нигоҳдории худ


Ҳамин тавр, ин равиш як тири нуқра нест ва маҷмӯи мушкилоти худро муаррифӣ мекунад, аммо агар шумо бо манфии худ хуб бошед, пас тағироти хурд дар фронт эҳтимол ҷалби дастаи пуштибон, ба тартиб даровардани раванди рушд ва такмил додани технологияро талаб намекунад. чолокии умумӣ ва албатта миқёспазирӣ бояд осонтар бошад.

L O A D I N G
. . . comments & more!

About Author

Kamil Fronczak HackerNoon profile picture
Kamil Fronczak@axotion
I’m a 2X-year-old tech dude from Poland, and this is my blog about tech stuff: NestJS, Node

ТЕГИ овезон кунед

ИН МАКОЛА ДАР...