3-блог: Бэкендти қалай үйренемиз? / Back-endti qalay uyrenemiz?
Дерлик ҳәр бир эпликейшнның яки вебсайттың бэкенд тәрепи бар. Бэкенд девелопер болыў ушын керекли басланғыш билимлер.
Дерлик ҳәр бир эпликейшнның / вебсайттың бэкенд тәрепи бар. Сиз пайдаланатуғын Инстаграм эпликейшн дүнья жүзи бойлап өзиның бир қанша серверлерине (server) ийе. Усы сервер компьютерлерди бэкенд инфра деп алсақ болады.
Сиз Инстаграмда қызығып көретуғын сонша постлар, рилслерди сақлаў, қадағалаў жумысын усы сервер орайлары алып барады.
Бэкенд инфраның буннан басқа да атқаратуғын жумысы көп:
- таза аккаунт жаратқаныңызда
- логин қылғаныңызда
- лайк басқаныңызда
- пост жаратқаныңызда
- пост излегениңизде
- ҳәм тағы басқа функциялардан пайдаланғаныңызда
Сиз пайдаланып атырған эп (app) яки вебсайт өзиның бэкенд тәрепи менен тынымсыз "сөйлесип атырған" болады.
(Бир-бири менен сөйлесип атыр десек те болады.)
Демек, бэкенд девелопер болыў ушын нелерди үйрениў керек?
1. Интернет қалай ислейтуғынының негизин түсиниў
Интернет қалай ислейтуғынын анық ҳәм толық түсиниў ушын көп нәрсени оқыў керек. Бирақ ҳәзир бул шәрт емес. Интернеттиң қалай ислейтуғыны ҳаққында баслаңғыш ҳәм керекли мағлыўматқа ийе болыўдың өзи жетерли. Кейинги блогымда усы тема бойынша жазаман.

2. Сервер тәрептиң тилин үйрениў
Бэкенд бул вебсайттың "мийи" десек те қәтелеспеймиз. Бэкенд пенен "сөйлесиў" ушын ол түсинетуғын тилде сөйлеўимиз керек.
Тил бул дәстүрлеў яки бағдарлама жаратыў тили. Тәбийий тил сыяқлы ол да өзиның қағыйда, синтаксис ҳәм сөзлигине ийе.
Төмендеги тиллердиң бир екеўин үйренсеңиз болады:
- Python (Үйренип баслаў аңсат, және аўылда усы тилди көплеў оқытады деп еситтим)
- Java (Егер Пайтонды үйренип "басқа не үйренсем екенай?" деп ойланып жүрсеңиз, Жаваны үйрениўди мәслаҳат берер едим.)
- Node.js (JavaScriptти үйренип алсаңыз, Node.jsти үйрениў қыйын емес.)
- Go
- C#
...
Мен Java, Node.js, Kotlin, C++ тиллеринде кодинг (коудинг, coding) қыламан. Бир қанша жыллар алдын Пайтонды үйренген едим. Бирақ жумыста, күнделикли өмирде Пайтонда кодинг қылмағаннан кейин умытып қалыппан.
Девелопер ушын көп қолланбайтуғын мағлыўматты умытып қалыў тәбийий жағдай.
3. Мағлыўматлар базасының тилин үйрениў
Бэкендттиң 70 - 80 % жумысы бул мағлыўматлар базасы (database) менен байланысып керекли мағлыўматты алып келиў десем асырып айтқан болмайман.
Соның ушын мағлыўматлар базасы менен ислесип билиў жүдә әҳмийетли. Сиз күнде Ютубта яки Телеграмда көретуғын постлар, видеолар, фотолар ҳәммеси дейтабейста (database) сақланады. Сиз, яғный пайдаланыўшы ҳаққындағы мағлыўмат та, усы базада сақланады.
Араңызда флоппи-дисктен пайдаланып көргенлер барма?
(Флоппи-дисктиң HD түри 1 мбқа шамалас мағлыўматты сақлай алатуғын еди. Ҳәзир сизиң смартфоныңызда түсирилген бир дана фотоның өзи кем дегенде 3 мб өлшемге ийе. Буннан 15-20 жыллар алдын мағлыўматты сақлаў, қадағалаў, ислесиў көп пулға түсетуғын еди. Ӽәзир технологияның жоқары пәтте раўажланыўының арқасында мағлыўматларды сақлаў бир қанша жеңиллести / арзанласты.)
Дейтабейс пенен "сәўбетке кирисиў" ушын SQL тилин үйрениў лазым.
Мағлыўматлар сақланған сервер менен байланысып, одан керекли инфоны көриў яки өшириў яки сақлаў ушын SQL тилинде "гәп" (statement) жазып жиберемиз.
Кейинги блогларда дейтабейс (database) туўралы толығырақ түсиндириўге ҳәрекет етемен.

4. APIды түсиниў (Application Programming Interfaces)
API (ЕйПиАй)ды фронтендти бэкенд пенен байланыстыратуғын "қан тамыр" десек те болады. Не деп кеттиң деп атырсызба?
Ресторанды көз алдыңызға келтириң. Ресторанның сизге көринип турған стол ҳәм орындықлары, ресторан ишиндеги ҳәр түрли декор безеклер, сүўретлер, еситилип турған музыка бул ҳәммеси фронтенд деп аламыз.
Сиз буйыртпа берген ишимлик ҳәм тағамды асханада, яғный бэкенд тәрепте, аспазлар таярлайды.
Усы жерде және бир нәрсе кемистей. Сизден буйыртпа алып, соң оны асхана тәрепке жеткерип, және таяр болған тағамды сизиң алдыңызға алып келип беретуғын официанттың да хызметин умытып кетпейик. Официантты API менен салыстырсақ болады.
API бул эп/вебсайттың ҳәр түрли бөлимлерин бир-бири менен байланыстырады. Сонлықтан APIды қалай жаратыў ҳәм пайдаланыўды билиў әҳмийетли.
Ӽәзирше жоқарыдағы басланғыш билимлерди уғып алған пайдалы.
Бэкенд ушын буннан басқа да жоқары басқыштағы (advanced level) билимлерди әсте үйренип өрлеген жақсы. Мәселен, вебсайттың қәўипсизлигин (security) қалай арттырамыз, жазылған алғашқы кодты (коуд, source code) қалай қадағалаймыз, GitHub яки GitLab қусаған версия бақлаўшы (version control) программадан қалай пайдаланамыз ҳәм соған уқсаған тағы басқа да мәселелерди де үйрениў лазым.
Қорқып қалмаң. Әсте, биримлеп үйренип барсаңыз әлбетте ҳәммесин түсинип, билип аласыз.
Оқып шыққаныңыз ушын рахмет! Күнде таза билим үйренейик.