Frontend bo'yicha boshlang'ich savol javoblar:
https://docs.google.com/document/d/1e3vMCrvbEGGTUNOzmEmrxKK6vKNIPq-DEHpKC9P8PEw/edit?usp=sharing
https://docs.google.com/document/d/1e3vMCrvbEGGTUNOzmEmrxKK6vKNIPq-DEHpKC9P8PEw/edit?usp=sharing
Google Docs
HTML, CSS, JS va React Bo'yicha Savol-Javoblar
HTML, CSS, JS va React Bo'yicha To'liq Qo'llanma Bu hujjat sizning savollaringizga asoslanib, veb-dasturlashning asosiy tushunchalarini o'z ichiga oladi. HTML & CSS HTML Tag Turlari HTML taglari asosan ikki turga bo'linadi: Blok-darajali (Block-level) elementlar:…
1.1 Client-Side Rendering (CSR)
Bu nima?
CSR — bu an'anaviy React ilovalarining ishlash usuli. Brauzer dastlab serverdan bo'sh HTML sahifa va katta JavaScript faylini yuklab oladi. JavaScript ishga tushgandan keyin, u ma'lumotlarni API dan oladi va sahifani to'ldiradi.
Next.js da qanday ishlatiladi?
App Router da barcha komponentlar sukut bo'yicha (default) Server Component hisoblanadi. CSR ni yoqish uchun faylning eng yuqori qismiga 'use client' direktivasini qo'shish kerak.
Qachon ishlatiladi?
Foydalanuvchi bilan faol aloqa (interaktivlik) kerak bo'lganda (tugmalar, formalar, onClick hodisalari).
Brauzerga xos API lar (window, document, localStorage) ishlatilganda.
React hooklari (useState, useEffect) kerak bo'lganda.
Afzalligi va Kamchiligi:
+ Yuklangandan so'ng sahifalar o'rtasida o'tish juda tez bo'ladi.
- Dastlabki yuklanish sekin bo'lishi mumkin (oq ekran muammosi).
- SEO uchun har doim ham ideal emas (garchi zamonaviy qidiruv tizimlari JS ni o'qisa ham).
1.2 Server-Side Rendering (SSR)
Bu nima?
SSR da har safar foydalanuvchi sahifaga kirganda, server sahifani noldan boshlab generatsiya qiladi (HTML hosil qiladi) va tayyor HTML ni brauzerga yuboradi.
Next.js da qanday ishlatiladi?
Agar siz ma'lumot olishda fetch funksiyasidan foydalanib, unga
Qachon ishlatiladi?
Ma'lumotlar juda tez-tez o'zgarganda (masalan, aksiyalar bozori, jonli sport natijalari).
Har bir foydalanuvchi uchun individual ma'lumot ko'rsatilganda (masalan, shaxsiy kabinet, savat).
Afzalligi va Kamchiligi:
+ Doimiy eng yangi ma'lumot.
+ SEO uchun juda yaxshi, chunki HTML to'liq keladi.
- Serverga katta yuk tushadi.
- TTFB (Time to First Byte) sekinroq bo'lishi mumkin, chunki server javob berishdan oldin ma'lumotlarni bazadan olib, HTML-ni yasashi kerak.
1.3 Static Site Generation (SSG)
Bu nima?
SSG — bu Next.js ning "super kuchi". Sahifalar loyihani qurish vaqtida (Build Time) bir marta generatsiya qilinadi va statik HTML fayllar sifatida saqlanadi. Foydalanuvchi kirganda, server hech qanday ish bajarmaydi, shunchaki tayyor faylni uzatadi.
Qachon ishlatiladi?
Bloglar, yangiliklar saytlari, hujjatlar (documentation), marketing sahifalari.
Ma'lumotlar har bir so'rovda o'zgarishi shart bo'lmagan joylarda.
Afzalligi va Kamchiligi:
+ Saytning ishlash tezligi maksimal darajada bo'ladi (CDN orqali tarqatish oson).
+ Serverga deyarli yuk tushmaydi.
- Ma'lumotni yangilash uchun butun loyihani qayta qurish (rebuild) kerak bo'ladi.
1.4 Incremental Static Regeneration (ISR) - "Yangilangan Sut" Analogiyasi:
Tasavvur qiling, siz sut do'koniga (web saytga) sut (ma'lumot) olish uchun keldingiz:
Texnik Amalga Oshirish:
Next.js da buni amalga oshirish juda oson. fetch funksiyasiga
#nextjs
Bu nima?
CSR — bu an'anaviy React ilovalarining ishlash usuli. Brauzer dastlab serverdan bo'sh HTML sahifa va katta JavaScript faylini yuklab oladi. JavaScript ishga tushgandan keyin, u ma'lumotlarni API dan oladi va sahifani to'ldiradi.
Next.js da qanday ishlatiladi?
App Router da barcha komponentlar sukut bo'yicha (default) Server Component hisoblanadi. CSR ni yoqish uchun faylning eng yuqori qismiga 'use client' direktivasini qo'shish kerak.
Qachon ishlatiladi?
Foydalanuvchi bilan faol aloqa (interaktivlik) kerak bo'lganda (tugmalar, formalar, onClick hodisalari).
Brauzerga xos API lar (window, document, localStorage) ishlatilganda.
React hooklari (useState, useEffect) kerak bo'lganda.
Afzalligi va Kamchiligi:
+ Yuklangandan so'ng sahifalar o'rtasida o'tish juda tez bo'ladi.
- Dastlabki yuklanish sekin bo'lishi mumkin (oq ekran muammosi).
- SEO uchun har doim ham ideal emas (garchi zamonaviy qidiruv tizimlari JS ni o'qisa ham).
1.2 Server-Side Rendering (SSR)
Bu nima?
SSR da har safar foydalanuvchi sahifaga kirganda, server sahifani noldan boshlab generatsiya qiladi (HTML hosil qiladi) va tayyor HTML ni brauzerga yuboradi.
Next.js da qanday ishlatiladi?
Agar siz ma'lumot olishda fetch funksiyasidan foydalanib, unga
{ cache: 'no-store' } opsiyasini bersangiz, Next.js bu sahifani har safar yangidan render qiladi. Qachon ishlatiladi?
Ma'lumotlar juda tez-tez o'zgarganda (masalan, aksiyalar bozori, jonli sport natijalari).
Har bir foydalanuvchi uchun individual ma'lumot ko'rsatilganda (masalan, shaxsiy kabinet, savat).
Afzalligi va Kamchiligi:
+ Doimiy eng yangi ma'lumot.
+ SEO uchun juda yaxshi, chunki HTML to'liq keladi.
- Serverga katta yuk tushadi.
- TTFB (Time to First Byte) sekinroq bo'lishi mumkin, chunki server javob berishdan oldin ma'lumotlarni bazadan olib, HTML-ni yasashi kerak.
1.3 Static Site Generation (SSG)
Bu nima?
SSG — bu Next.js ning "super kuchi". Sahifalar loyihani qurish vaqtida (Build Time) bir marta generatsiya qilinadi va statik HTML fayllar sifatida saqlanadi. Foydalanuvchi kirganda, server hech qanday ish bajarmaydi, shunchaki tayyor faylni uzatadi.
Qachon ishlatiladi?
Bloglar, yangiliklar saytlari, hujjatlar (documentation), marketing sahifalari.
Ma'lumotlar har bir so'rovda o'zgarishi shart bo'lmagan joylarda.
Afzalligi va Kamchiligi:
+ Saytning ishlash tezligi maksimal darajada bo'ladi (CDN orqali tarqatish oson).
+ Serverga deyarli yuk tushmaydi.
- Ma'lumotni yangilash uchun butun loyihani qayta qurish (rebuild) kerak bo'ladi.
1.4 Incremental Static Regeneration (ISR) - "Yangilangan Sut" Analogiyasi:
Tasavvur qiling, siz sut do'koniga (web saytga) sut (ma'lumot) olish uchun keldingiz:
1. SSG (Static): Do'kon egasi faqat ertalab soat 6:00 da sigir sog'ib, sutni qadoqlab qo'ygan. Siz tushda kelsangiz ham, kechqurun kelsangiz ham o'sha ertalabki sutni olasiz. Bu juda tez, chunki sut tayyor, lekin vaqt o'tishi bilan "eski" bo'lib qoladi.
2. SSR (Server): Siz do'konga kelganingizda, sotuvchi orqa hovliga yugurib, sigirni sog'ib, sutni qaynatib, idishga solib olib keladi. Bu sut eng yangi (fresh), lekin siz kutib qolasiz. Agar 100 kishi kelsa, sotuvchi 100 marta yugurishi kerak.
3. ISR (Incremental): Sotuvchida muzlatgich bor. U ertalab sutni tayyorlab qo'yadi. Siz kelganda darhol muzlatgichdagi sutni beradi (tez). Lekin u o'ziga qoida qo'ygan: "Har 1 soatda sutni yangilayman".
Siz 12:00 da keldingiz, u sizga tayyor sutni berdi.
Siz 12:01 da yana keldingiz, u yana o'sha sutni berdi (chunki 1 soat o'tmadi).
13:05 da (1 soatdan keyin) kimdir keldi. Sotuvchi unga hali ham o'sha eski sutni beradi (kutirmaslik uchun), lekin orqa fonda yordamchisiga "Yangi sut olib kel!" deb buyruq beradi.
13:06 da kelgan keyingi xaridor endi mutlaqo yangi sutni oladi.
Texnik Amalga Oshirish:
Next.js da buni amalga oshirish juda oson. fetch funksiyasiga
next: { revalidate: 60 } opsiyasini qo'shasiz. Bu "ma'lumotni 60 soniya davomida keshda saqlash, undan keyin yangilash" degan ma'noni anglatadi.#nextjs
Zamonaviy dasturiy ta'minot muhandisligi, xususan, backend tizimlarini loyihalashda biz ko‘pincha yuqori darajali abstraksiyalarga tayanamiz. NestJS kabi freymvorklar, TypeScript ning kuchli tiplashtirish tizimi va Node.js ning ekotizimi bizga murakkab biznes mantiqlarini tez va samarali qurish imkonini beradi. Biroq, Senior Software Engineer darajasiga ko‘tarilish, ushbu qulay abstraksiya pardasini ko‘tarib, uning ostida yotgan fundamental mexanizmlarni — Operatsion Tizim (OT) yadrosi, xotira boshqaruvi, jarayonlararo aloqa va tarmoq stekini chuqur tushunishni talab etadi. Kodimiz yozilgan tildan qat'i nazar, u oxir-oqibat apparat resurslarini boshqaruvchi operatsion tizim ustida bajariladi. NestJS ilovasi shunchaki dekoratorlar to‘plami emas; u V8 dvigateli tomonidan kompilyatsiya qilinadigan, Libuv orqali tizim chaqiruvlarini (system calls) amalga oshiradigan va Linux yadrosining rejalashtiruvchisi (scheduler) tomonidan boshqariladigan jarayondir.Ko‘pchilik dasturchilar "Node.js bir oqimli" degan iborani noto‘g‘ri tushunadilar. Ha, siz yozgan JavaScript kodi (Controllerlar, Servislar) bitta oqimda bajariladi, lekin Node.js platformasining o‘zi ko‘p oqimlidir. Uning yuragi bo‘lgan Libuv kutubxonasi C tili da yozilgan bo‘lib, u operatsion tizimning asinxron imkoniyatlarini ta'minlaydi.
TCP qanday ulanadi? (Nazariya)
Sizning ilovangiz ma'lumotlar bazasi yoki boshqa serverga ulanishidan oldin, ular o'rtasida 3 qadamli salomlashish sodir bo'ladi. Bu dasturlashda juda mashhur bo'lgan 3-Way Handshake deyiladi:
SYN (Synchronize): Sizning tizimingiz serverga paket jo'natadi: "Salom, men sen bilan ulanmoqchiman, portlaring ochiqmi?"
SYN-ACK (Synchronize-Acknowledge): Server buni qabul qilib, javob qaytaradi: "Salom, ha, portlarim ochiq, gaplashishga tayyorman."
ACK (Acknowledge): Sizning tizimingiz tasdiqlaydi: "Ajoyib, unda ma'lumot almashishni boshladik!"
Shu uch qadam to'liq bajarilgandan keyingina sizning HTTP GET yoki POST so'rovingiz tarmoqqa chiqadi.
Sizning ilovangiz ma'lumotlar bazasi yoki boshqa serverga ulanishidan oldin, ular o'rtasida 3 qadamli salomlashish sodir bo'ladi. Bu dasturlashda juda mashhur bo'lgan 3-Way Handshake deyiladi:
SYN (Synchronize): Sizning tizimingiz serverga paket jo'natadi: "Salom, men sen bilan ulanmoqchiman, portlaring ochiqmi?"
SYN-ACK (Synchronize-Acknowledge): Server buni qabul qilib, javob qaytaradi: "Salom, ha, portlarim ochiq, gaplashishga tayyorman."
ACK (Acknowledge): Sizning tizimingiz tasdiqlaydi: "Ajoyib, unda ma'lumot almashishni boshladik!"
Shu uch qadam to'liq bajarilgandan keyingina sizning HTTP GET yoki POST so'rovingiz tarmoqqa chiqadi.
Ustozimiz aytar aytar edila: har qanday dastur (loyiha) og'riqdan kelib chiqiladi deb !
Loyiha qilmoqchi edim resurs qidirdim lekin ko'p site-larga Uzbekistondan to'rib kira olmadim va VPN ishlatishga to'g'ri keldi.
VPN ishlatar ekanman undagi reklamalar holdan toydirdi, reklamasiz ishlatish esa pullik edi shu vaqt hayolimga uzim uchun shaxsiy VPN yaratsam qanday bo'lar ekun degan fikr keldi, ishga kirishdim va buni udaladim 🎉
Loyiha qilmoqchi edim resurs qidirdim lekin ko'p site-larga Uzbekistondan to'rib kira olmadim va VPN ishlatishga to'g'ri keldi.
VPN ishlatar ekanman undagi reklamalar holdan toydirdi, reklamasiz ishlatish esa pullik edi shu vaqt hayolimga uzim uchun shaxsiy VPN yaratsam qanday bo'lar ekun degan fikr keldi, ishga kirishdim va buni udaladim 🎉
Ta'rif: Ma'lumotlar bazasi (MB) – bu ma'lum bir tuzilishga ega bo'lgan, o'zaro bog'liq ma'lumotlarning tartiblangan to'plamidir. U ma'lumotlarni samarali saqlash, boshqarish, yangilash va ulardan foydalanishni ta'minlaydi. Oddiy qilib aytganda, bu ma'lumotlar uchun elektron "kartoteka" yoki "ombor".
Tarixiy fakt: "Ma'lumotlar bazasi" atamasi ilk bor 1960-yillarda, kompyuter texnologiyalari rivojlanishi bilan birga paydo bo'lgan. Dastlabki bazalar ierarxik va tarmoqli modellarga asoslangan edi.
#database@CodeVerce
Tarixiy fakt: "Ma'lumotlar bazasi" atamasi ilk bor 1960-yillarda, kompyuter texnologiyalari rivojlanishi bilan birga paydo bo'lgan. Dastlabki bazalar ierarxik va tarmoqli modellarga asoslangan edi.
#database@CodeVerce
MBBT (Ma'lumotlar Bazalarini Boshqarish Tizimi - DBMS)
Ta'rif: DBMS – bu ma'lumotlar bazasini yaratish, boshqarish va u bilan o'zaro aloqa qilish uchun mo'ljallangan dasturiy ta'minot. Foydalanuvchi yoki dasturlar MBBT orqali ma'lumotlar bilan ishlaydi. Mashhur MBBTlarga misollar: MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, SQLite.
PS: DBMS --> database management services.
#database@CodeVerce
Ta'rif: DBMS – bu ma'lumotlar bazasini yaratish, boshqarish va u bilan o'zaro aloqa qilish uchun mo'ljallangan dasturiy ta'minot. Foydalanuvchi yoki dasturlar MBBT orqali ma'lumotlar bilan ishlaydi. Mashhur MBBTlarga misollar: MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, SQLite.
PS: DBMS --> database management services.
#database@CodeVerce
Relatsion Ma'lumotlar Bazalari (Relational Databases)
Ta'rif: Bu eng keng tarqalgan ma'lumotlar bazasi turi bo'lib, unda ma'lumotlar jadvallar (relations) ko'rinishida saqlanadi. Jadvallar satrlar (qaydlar/tuples) va ustunlar (maydonlar/attributes) dan iborat. Jadvallar o'zaro kalitlar yordamida bog'lanadi.
Tarixiy fakt: Relatsion model konsepsiyasini 1970-yilda IBM xodimi Edgar F. Kodd (Edgar F. Codd) taklif qilgan. Uning bu inqilobiy g'oyasi zamonaviy ma'lumotlar bazalarining poydevorini qo'ygan.
#database@CodeVerce
Ta'rif: Bu eng keng tarqalgan ma'lumotlar bazasi turi bo'lib, unda ma'lumotlar jadvallar (relations) ko'rinishida saqlanadi. Jadvallar satrlar (qaydlar/tuples) va ustunlar (maydonlar/attributes) dan iborat. Jadvallar o'zaro kalitlar yordamida bog'lanadi.
Tarixiy fakt: Relatsion model konsepsiyasini 1970-yilda IBM xodimi Edgar F. Kodd (Edgar F. Codd) taklif qilgan. Uning bu inqilobiy g'oyasi zamonaviy ma'lumotlar bazalarining poydevorini qo'ygan.
#database@CodeVerce
Ma'lumotlar bazasi dizayn turlari
Konseptual dizayn: Bu eng yuqori darajadagi dizayn. U tizimning asosiy obyektlari (entities), ularning xususiyatlari (attributes) va ular orasidagi munosabatlarni (relationships) aniqlaydi. Ko'pincha ERD (Entity-Relationship Diagram) shaklida chiziladi.
Mantiqiy dizayn (Logical Design): Konseptual dizaynni ma'lum bir ma'lumotlar modeli (masalan, relyatsion model) asosida jadvallar, ustunlar, kalitlar va aloqalarga aylantirish. Bu bosqichda hali aniq bir MBBT (masalan, MySQL yoki PostgreSQL) tanlanmaydi.
Fizik dizayn (Physical Design): Mantiqiy dizaynni aniq bir MBBT uchun amalga oshirish. Bu bosqichda ustunlarning ma'lumot turlari (INT, VARCHAR), indekslar, saqlash usullari kabi fizik xususiyatlar aniqlanadi.
Konseptual dizayn: Bu eng yuqori darajadagi dizayn. U tizimning asosiy obyektlari (entities), ularning xususiyatlari (attributes) va ular orasidagi munosabatlarni (relationships) aniqlaydi. Ko'pincha ERD (Entity-Relationship Diagram) shaklida chiziladi.
Mantiqiy dizayn (Logical Design): Konseptual dizaynni ma'lum bir ma'lumotlar modeli (masalan, relyatsion model) asosida jadvallar, ustunlar, kalitlar va aloqalarga aylantirish. Bu bosqichda hali aniq bir MBBT (masalan, MySQL yoki PostgreSQL) tanlanmaydi.
Fizik dizayn (Physical Design): Mantiqiy dizaynni aniq bir MBBT uchun amalga oshirish. Bu bosqichda ustunlarning ma'lumot turlari (INT, VARCHAR), indekslar, saqlash usullari kabi fizik xususiyatlar aniqlanadi.
DDL (Data Definition Language) - Ma'lumotlarni aniqlash tili
Bu buyruqlar ma'lumotlar bazasi sxemasini (jadvallar, indekslar) yaratish va o'zgartirish uchun ishlatiladi:
DML (Data Manipulation Language) - Ma'lumotlarni boshqarish tili
Bu buyruqlar jadvaldagi ma'lumotlar ustida amallar bajaradi:
DQL (Data Query Language) - Ma'lumotlardan so'rov tili
Bu guruh asosan SELECT buyrug'idan iborat:
Bu buyruqlar ma'lumotlar bazasi sxemasini (jadvallar, indekslar) yaratish va o'zgartirish uchun ishlatiladi:
CREATE TABLE,
DROP TABLE,
ALTER TABLE
DML (Data Manipulation Language) - Ma'lumotlarni boshqarish tili
Bu buyruqlar jadvaldagi ma'lumotlar ustida amallar bajaradi:
INSERT INTO,
UPDATE,
DELETE
DQL (Data Query Language) - Ma'lumotlardan so'rov tili
Bu guruh asosan SELECT buyrug'idan iborat:
SELECT,
WHERE,
ORDER BY,
LIMIT,
Aggregate Functions,
AS(alias),
UNION
Hozir RAM arzonligi sababli dasturchilar xotirani isrof qiluvchi, semiz va sifatsiz kodlar yozishga o'rganib qoldi. Qachonki xotira yana qimmatlashsagina, biz kompyuterlarning ilk davridagidek, har bir baytning qadriga yetib, o'z ishimizni chinakamiga mukammal bajarishga majbur bo'lamiz"
🚀 FlashMind — Shaxsiy Quizlet klonim tayyor!
O'quv jarayonini samarali qilish uchun mo'ljallangan, to'liq offline-first arxitekturadagi ilovani ishlab chiqdim. Bu shunchaki flashcard-lar emas, balki "aqlli" o'rganish tizimidir.
✨ Asosiy imkoniyatlar:
🧠 Leitner SRS logikasi: So'zlarni unutilmaslik darajasida takrorlash algoritmi.
🔊 Audio TTS: 7 xil aksentda (US, UK, ...) matnlarni o'qib berish.
🎮 Interactive Modes: Match Game, Cloze Test va taymerli Speed Mode.
↔️ Swipe Gestures: Tinder-style boshqaruv (framer-motion orqali).
📱 PWA Support: Play Market-siz telefonga o'rnatib, internetsiz ham foydalanish mumkin.
🔥 Streak Tracker: Kunlik o'rganish faolligini kuzatish.
🛠 Texnik stack:
React 19 + Vite 8
Zustand (State management)
Dexie.js (IndexedDB brauzer bazasi)
Framer Motion (Premium animatsiyalar)
Loyihani GitHub'ga push qildim va Vercel'ga uladim. Endi o'z bilimlarimni tartibli va tezkor o'rganishda o'z ilovamdan foydalanaman! ⚡️🧠
#Project #React #PWA #FlashMind #Learning #DeveloperLife
O'quv jarayonini samarali qilish uchun mo'ljallangan, to'liq offline-first arxitekturadagi ilovani ishlab chiqdim. Bu shunchaki flashcard-lar emas, balki "aqlli" o'rganish tizimidir.
✨ Asosiy imkoniyatlar:
🧠 Leitner SRS logikasi: So'zlarni unutilmaslik darajasida takrorlash algoritmi.
🔊 Audio TTS: 7 xil aksentda (US, UK, ...) matnlarni o'qib berish.
🎮 Interactive Modes: Match Game, Cloze Test va taymerli Speed Mode.
↔️ Swipe Gestures: Tinder-style boshqaruv (framer-motion orqali).
📱 PWA Support: Play Market-siz telefonga o'rnatib, internetsiz ham foydalanish mumkin.
🔥 Streak Tracker: Kunlik o'rganish faolligini kuzatish.
🛠 Texnik stack:
React 19 + Vite 8
Zustand (State management)
Dexie.js (IndexedDB brauzer bazasi)
Framer Motion (Premium animatsiyalar)
Loyihani GitHub'ga push qildim va Vercel'ga uladim. Endi o'z bilimlarimni tartibli va tezkor o'rganishda o'z ilovamdan foydalanaman! ⚡️🧠
#Project #React #PWA #FlashMind #Learning #DeveloperLife
Muvaffaqiyatsizlik — so'zsiz pastga qulashdir, ammo unchalik ham fojia emas.
Eng katta muvaffaqiyatsizlik esa o'rindan qayta turmaslikka qaror qilishdir.
Eng katta muvaffaqiyatsizlik esa o'rindan qayta turmaslikka qaror qilishdir.