CodeVerce
64 subscribers
70 photos
6 videos
10 files
66 links
Darslar • Maqolalar • Kodlar
admin: @dinMuhammad05
Download Telegram
Batch or Stream
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.
Program vs Process vs Thread
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.
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 🎉
O'sish = Yashash


"Agar o'smayotgan bo'lsang, demak yashamayapsan"
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
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
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
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.
DDL (Data Definition Language) - Ma'lumotlarni aniqlash tili
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
Muvaffaqiyatsizlik — so'zsiz pastga qulashdir, ammo unchalik ham fojia emas.
Eng katta muvaffaqiyatsizlik esa o'rindan qayta turmaslikka qaror qilishdir.
ish qidirish jarayonida 50 va undan ortiq kanalga obuna bo'lish noqulaylik to'g'diradi shuning uchun bir nechta kanallarni bir joyda ko'zatib boring: https://t.me/jobs_it_uz
CodeVerce
event_loop_interactive.html
Event Loop — asosiy tushuncha
JavaScript bitta ipli (single-threaded) — bir vaqtda faqat bitta narsa bajariladi. Lekin u bloklamas (non-blocking) ishlaydi. Buning siri — Event Loop mexanizmi.
Call Stack → bo'shasa → Microtask Queue → bo'shasa → Macrotask Queue

4 ta asosiy tushuncha
Call Stack — hozir bajarilyotgan kod. push (kirdi) / pop (chiqdi).
Web/Node APIssetTimeout, fetch, fs.readFile kabi asinxron ishlar shu yerda kutadi. Stack ni bloklamaydi.
Microtask QueuePromise.then(), queueMicrotask(), MutationObserver. Stack bo'shagandan keyin birinchi navbatda, barchasi bajariladi.
Macrotask QueuesetTimeout, setInterval, I/O. Microtask queue to'liq bo'shagandagina navbat keladi.