Netflix, Google va Meta milliardlab foydalanuvchiga qanday xizmat ko‘rsatadi?
Siz har kuni video ko‘rasiz, xabar yuborasiz, qidirasiz. Lekin ortida nima sodir bo‘lishini hech o‘ylab ko‘rganmisiz?
Birgina kompaniya milliardlab so‘rovlarni qanday boshqaradi?
Javob — kuchli arxitekturada.
Masalan, siz Netflix’da film ochganingizda:
DNS → Load Balancer → CDN → Serverlar → Database → AI tavsiyalar
Bularning barchasi bir necha soniya ichida ishlaydi.
💡 Katta kompaniyalar kuchli koddan tashqari, kuchli system design va arxitektura bilan milliardlab foydalanuvchiga xizmat qiladi.
👉 @MKhan404Lab
Siz har kuni video ko‘rasiz, xabar yuborasiz, qidirasiz. Lekin ortida nima sodir bo‘lishini hech o‘ylab ko‘rganmisiz?
Birgina kompaniya milliardlab so‘rovlarni qanday boshqaradi?
Javob — kuchli arxitekturada.
1. Data Centerlar
Katta kompaniyalarning dunyo bo‘ylab minglab serverlari bor. Sizga eng yaqin server xizmat ko‘rsatadi.
2. Load Balancer
Millionlab foydalanuvchilar bitta serverga tushmaydi. Trafik minglab serverlarga taqsimlanadi.
3. CDN
Netflix filmni uzoqdagi serverdan emas, sizga yaqin joylashgan serverdan beradi. Shu sabab video tez yuklanadi.
4. Cache
Ko‘p ishlatiladigan ma’lumotlar vaqtincha tezkor xotirada saqlanadi.
5. Database Sharding
Milliardlab ma’lumot bitta bazada emas. Ular ko‘plab qismlarga bo‘linib saqlanadi.
6. Microservices
Bitta ulkan dastur o‘rniga yuzlab kichik servislar ishlaydi.
7. Kubernetes
Trafik oshsa yangi serverlarni avtomatik qo‘shadi, kamayganda esa resurslarni qisqartiradi.
Masalan, siz Netflix’da film ochganingizda:
DNS → Load Balancer → CDN → Serverlar → Database → AI tavsiyalar
Bularning barchasi bir necha soniya ichida ishlaydi.
💡 Katta kompaniyalar kuchli koddan tashqari, kuchli system design va arxitektura bilan milliardlab foydalanuvchiga xizmat qiladi.
👉 @MKhan404Lab
❤4
Backend bo'yicha qaynoq mavzu topib qo'ydim sizlar uchun!
Sizlardan faqat olovidan berish🔥
Sizlardan faqat olovidan berish🔥
🔥11
PostgreSQL'da so'rovlarni 10 barobar tezlashtiradigan 5 ta usul
Har safar PostgreSQL sekin ishlaganda, query'ingizni tekshiring. Ko'p hollarda muammo aynan query yoki index'da bo'ladi.
✍️ Izohga yozing:
Sizda yana qanday takliflar bor?
👉 @MKhan404Lab
— 1. INDEX ishlating
"WHERE", "JOIN" va "ORDER BY" ishlatiladigan ustunlarga index qo'ying. To'g'ri index ba'zan query vaqtini soniyalardan millisekundlarga tushiradi.
— 2. EXPLAIN ANALYZE'dan foydalaning
Query qanday bajarilayotganini ko'rsatadi. Eng sekin ishlayotgan joyni topishning eng oson usuli.
— 3. SELECT * yozmang
Faqat kerakli ustunlarni oling. Kamroq ma'lumot = tezroq query.
❌ SELECT * FROM users
✅ SELECT id, full_name FROM users
— 4. OFFSET juda katta bo'lsa ehtiyot bo'ling
Millionlab yozuvlarda "OFFSET" sekinlashadi. Bunday holatda keyset pagination (cursor pagination) ancha samarali.
— 5. Keraksiz JOIN'lardan qoching
Har bir JOIN qo'shimcha yuk. Haqiqatan kerak bo'lsagina ishlating va JOIN qilinadigan ustunlarda index borligini tekshiring.
Har safar PostgreSQL sekin ishlaganda, query'ingizni tekshiring. Ko'p hollarda muammo aynan query yoki index'da bo'ladi.
✍️ Izohga yozing:
Sizda yana qanday takliflar bor?
👉 @MKhan404Lab
🔥1
#real_project
200 qatorli Javascript kod (Frontendning o'zi. Backend alohida "tema")
Clean Code'ga nisbatan baholasak "5.5/10"
Ishlab turgan loyiha, bir zamonlar kimdir buni yozgan (katta ehtimol junior)
Shu darajadagi loyihaki, sun'iy intellektga tushuntirguncha 1 kun vaqt ketadi )
Endi shuni 1. tushunib, 2. tahrirlash kerak
200 qatorli Javascript kod (Frontendning o'zi. Backend alohida "tema")
Clean Code'ga nisbatan baholasak "5.5/10"
Ishlab turgan loyiha, bir zamonlar kimdir buni yozgan (katta ehtimol junior)
Shu darajadagi loyihaki, sun'iy intellektga tushuntirguncha 1 kun vaqt ketadi )
Endi shuni 1. tushunib, 2. tahrirlash kerak
😁4
Google da ishlatiladigan 10 ta texnologiya
Google millionlab foydalanuvchiga xizmat ko'rsatadi. Buni faqat kuchli serverlar emas, to'g'ri tanlangan texnologiyalar ham ta'minlaydi.
📌 Google faqat bitta dasturlash tiliga tayanmaydi. Har bir vazifa uchun eng mos texnologiyani tanlaydi.
Kuchli muhandis bo'lish — qaysi muammo uchun qaysi texnologiya to'g'ri ekanini tushunishdir.
✍️ Izohda yozing:
❓ Siz qaysi texnologiyalarni bilasiz?
👉 @MKhan404Lab
Google millionlab foydalanuvchiga xizmat ko'rsatadi. Buni faqat kuchli serverlar emas, to'g'ri tanlangan texnologiyalar ham ta'minlaydi.
1. C++
Qidiruv tizimi, Chrome va yuqori unumdorlik talab qiladigan servislar.
2. Java
Katta hajmdagi backend servislar va korporativ infratuzilma.
3. Go (Golang)
Cloud servislar, tarmoq xizmatlari va yuqori tezlik talab qiladigan mikroservislar.
4. Python
Sun'iy intellekt, Machine Learning, avtomatlashtirish va ichki vositalar.
5. JavaScript / TypeScript
Veb-interfeyslar va zamonaviy frontend ilovalari.
6. Protocol Buffers (Protobuf)
Servislar orasida ma'lumotni tez va ixcham uzatish uchun.
7. Kubernetes
Minglab containerlarni boshqarish va avtomatik masshtablash.
8. Bigtable
Google'ning ulkan hajmdagi ma'lumotlar uchun yaratilgan NoSQL bazasi.
9. Spanner
Dunyo bo'ylab tarqatilgan SQL ma'lumotlar bazasi.
10. TensorFlow
Sun'iy intellekt va Machine Learning modellarini yaratish va ishlatish.
📌 Google faqat bitta dasturlash tiliga tayanmaydi. Har bir vazifa uchun eng mos texnologiyani tanlaydi.
Kuchli muhandis bo'lish — qaysi muammo uchun qaysi texnologiya to'g'ri ekanini tushunishdir.
✍️ Izohda yozing:
❓ Siz qaysi texnologiyalarni bilasiz?
👉 @MKhan404Lab
❤5🔥2
ChatGPT bilan gaplashganizda javobni qanday yaratadi, o'ylab ko'rganmisiz?
💯2
ChatGPT javobni qanday yaratadi?
📌 ChatGPT javobni oldindan yozib qo'ygan bazadan qidirmaydi. U o'rgangan naqshlari asosida yangi matn yaratadi.
Ammo u inson kabi o'ylamaydi — u matematik model yordamida eng mos javobni bashorat qiladi.
👉 @MKhan404Lab
1. Siz savol yuborasiz
ChatGPT avval matnni kompyuter tushunadigan formatga o'tkazadi.
2. Matn tokenlarga bo'linadi
AI so'zlarni to'g'ridan-to'g'ri emas, balki tokenlar orqali qayta ishlaydi.
M.S: "Salom, dunyo" → ["Sal", "om", ",", "dun", "yo"]
3. Transformer model tahlil qiladi
ChatGPT ichida Transformer arxitekturasi ishlaydi.
1. oldingi so'zlarni ko'radi;
2. kontekstni tushunadi;
3. qaysi so'z keyin kelishi ehtimolini hisoblaydi.
4. Keyingi token tanlanadi
Model milliardlab parametrlar asosida eng mos keladigan keyingi tokenni tanlaydi.
M.S: "Python — bu...". Davomi sifatida: "dasturlash tili ✅, mashina ❌" kabi ehtimollar baholanadi.
5. Jarayon minglab marta takrorlanadi
Javob bitta katta hisoblash bilan emas, balki har bir tokenni ketma-ket yaratish orqali hosil bo'ladi.
6. Natija sizga qaytariladi
Tokenlar yana oddiy matnga aylantiriladi va siz ko'radigan javob paydo bo'ladi.
📌 ChatGPT javobni oldindan yozib qo'ygan bazadan qidirmaydi. U o'rgangan naqshlari asosida yangi matn yaratadi.
Ammo u inson kabi o'ylamaydi — u matematik model yordamida eng mos javobni bashorat qiladi.
👉 @MKhan404Lab
🔥2
Kesh nima va nima uchun tezlashtiradi?
Kesh — bu tez-tez kerak bo'ladigan ma'lumotlarni vaqtincha saqlaydigan tezkor xotira.
Har safar ma'lumotni database yoki serverdan qayta-qayta olish o'rniga, dastur uni keshdan oladi.
❌ Kesh bo'lmasa:
So'rov serverga boradi.
Server database'ga murojaat qiladi.
Database javob qaytaradi.
Server foydalanuvchiga yuboradi.
Bu jarayon har safar takrorlanadi.
✅ Kesh bo'lsa:
Birinchi so'rov database'dan olinadi.
Natija keshga saqlanadi.
Keyingi so'rovlar to'g'ridan-to'g'ri keshdan qaytariladi.
Natijada javob tezroq keladi.
Kesh qayerlarda ishlatiladi?
🌐 Veb-sayt sahifalari
📦 API javoblari
👤 Foydalanuvchi ma'lumotlari
🖼 Rasmlar va fayllar
🔍 Qidiruv natijalari
Mashhur kesh texnologiyalari:
Redis — eng ommabop in-memory cache.
Memcached — sodda va tez cache tizimi.
CDN Cache — rasmlar, CSS va JavaScript fayllarini foydalanuvchiga yaqin serverdan uzatadi.
Browser Cache — brauzer statik fayllarni qurilmangizda saqlaydi.
👉 @MKhan404Lab
Kesh — bu tez-tez kerak bo'ladigan ma'lumotlarni vaqtincha saqlaydigan tezkor xotira.
Har safar ma'lumotni database yoki serverdan qayta-qayta olish o'rniga, dastur uni keshdan oladi.
❌ Kesh bo'lmasa:
So'rov serverga boradi.
Server database'ga murojaat qiladi.
Database javob qaytaradi.
Server foydalanuvchiga yuboradi.
Bu jarayon har safar takrorlanadi.
✅ Kesh bo'lsa:
Birinchi so'rov database'dan olinadi.
Natija keshga saqlanadi.
Keyingi so'rovlar to'g'ridan-to'g'ri keshdan qaytariladi.
Natijada javob tezroq keladi.
Kesh qayerlarda ishlatiladi?
🌐 Veb-sayt sahifalari
📦 API javoblari
👤 Foydalanuvchi ma'lumotlari
🖼 Rasmlar va fayllar
🔍 Qidiruv natijalari
Mashhur kesh texnologiyalari:
Redis — eng ommabop in-memory cache.
Memcached — sodda va tez cache tizimi.
CDN Cache — rasmlar, CSS va JavaScript fayllarini foydalanuvchiga yaqin serverdan uzatadi.
Browser Cache — brauzer statik fayllarni qurilmangizda saqlaydi.
👉 @MKhan404Lab
⚡2❤1
Git va GitHub haqida
Git — bu versiyalarni boshqarish tizimi (Version Control System), loyiha tarixingizni saqlaydi.
Har bir o'zgarishni yozib boradi. Xatolik bo'lsa, eski holatga qaytish imkonini beradi. Bir nechta dasturchi bir loyihada ishlashini osonlashtiradi.
GitHub — bu Git loyihalarini internetda saqlash va jamoa bo'lib ishlash uchun platforma. GitHub orqali siz, Repository yaratishingiz, Kodni internetga yuklashingiz, Code Review qilishingiz mumkin.
Qisqacha:
Git — kod tarixini boshqaradi.
GitHub — shu tarixni internetda saqlash va jamoa bilan ishlash imkonini beradi.
Git internetsiz ham ishlaydi. GitHub esa Git repository'ni boshqalar bilan ulashish va birgalikda ishlash uchun xizmat qiladi.
👉 @MKhan404Lab
Git — bu versiyalarni boshqarish tizimi (Version Control System), loyiha tarixingizni saqlaydi.
Har bir o'zgarishni yozib boradi. Xatolik bo'lsa, eski holatga qaytish imkonini beradi. Bir nechta dasturchi bir loyihada ishlashini osonlashtiradi.
GitHub — bu Git loyihalarini internetda saqlash va jamoa bo'lib ishlash uchun platforma. GitHub orqali siz, Repository yaratishingiz, Kodni internetga yuklashingiz, Code Review qilishingiz mumkin.
Qisqacha:
Git — kod tarixini boshqaradi.
GitHub — shu tarixni internetda saqlash va jamoa bilan ishlash imkonini beradi.
Git internetsiz ham ishlaydi. GitHub esa Git repository'ni boshqalar bilan ulashish va birgalikda ishlash uchun xizmat qiladi.
👉 @MKhan404Lab
🔥2
Junior dasturchilarning 5 ta xatosi
1. Debug qilishni bilmaslik
Kuchli dasturchi xatosiz kod yozadigan emas, xatoni tez topa oladigan dasturchi.
Console, debugger, loglardan foydalanishni o'rganing.
2. Clean Code'ga e'tibor bermaslik
Ishlaydigan kod yozish yetarli emas.
Boshqa dasturchi tushunadigan:
- nomlash; - struktura; - arxitektura ham muhim.
3. Dokumentatsiya o'qimaslik
Har safar YouTube qidirish o'rniga rasmiy dokumentatsiyani o'qish odatini yarating.
4. Katta loyihalardan qo'rqish
"Men hali tayyor emasman" deb kutish — rivojlanishni to'xtatadi.
Katta loyihalar orqali tajriba keladi.
5. Tez natija kutish
Bir necha oyda asoslarni olish mumkin, lekin kuchli muhandis bo'lish uchun yillar davomida amaliyot kerak.
Junior darajadan keyingi bosqichga o'tish uchun ko'proq kod yozishning o'zi yetmaydi.
Muhimi:
— muammoni yecha olish
— tizimni tushunish
— to'g'ri fikrlash
— doimiy o'rganish
👉 @MKhan404Lab
Juniorlar kod yozishni o'rganadi, lekin kuchli dasturchi bo'lish uchun kerakli odatlarni e'tibordan chetda qoldiradi.
1. Debug qilishni bilmaslik
Kuchli dasturchi xatosiz kod yozadigan emas, xatoni tez topa oladigan dasturchi.
Console, debugger, loglardan foydalanishni o'rganing.
2. Clean Code'ga e'tibor bermaslik
Ishlaydigan kod yozish yetarli emas.
Boshqa dasturchi tushunadigan:
- nomlash; - struktura; - arxitektura ham muhim.
3. Dokumentatsiya o'qimaslik
Har safar YouTube qidirish o'rniga rasmiy dokumentatsiyani o'qish odatini yarating.
4. Katta loyihalardan qo'rqish
"Men hali tayyor emasman" deb kutish — rivojlanishni to'xtatadi.
Katta loyihalar orqali tajriba keladi.
5. Tez natija kutish
Bir necha oyda asoslarni olish mumkin, lekin kuchli muhandis bo'lish uchun yillar davomida amaliyot kerak.
Junior darajadan keyingi bosqichga o'tish uchun ko'proq kod yozishning o'zi yetmaydi.
Muhimi:
— muammoni yecha olish
— tizimni tushunish
— to'g'ri fikrlash
— doimiy o'rganish
👉 @MKhan404Lab
❤3
RabbitMQ va Redis haqida
RabbitMQ — Message Broker, ya'ni servislar orasida xabarlarni navbat (Queue) orqali uzatadi.
Foydalanish joylari:
— Email va SMS yuborish
— Buyurtmalarni qayta ishlash
— Mikroservislar orasida xabar almashish
Redis — In-Memory Database, ya'ni ma'lumotni RAM'da saqlaydi va juda tez ishlaydi.
Asosan:
— Cache
— Session
— OTP kodlari
— Rate Limiting
📨 RabbitMQ → Vazifalarni navbatga qo'yadi.
⚡️ Redis → Ma'lumotni tez saqlaydi va qaytaradi.
Masalan, internet do'konida:
— Mahsulotlar ro'yxati Redis orqali tez yuklanadi.
— Buyurtma berilgach email yuborish RabbitMQ orqali fon rejimida bajariladi.
— Shuning uchun zamonaviy backend loyihalarida bu ikki texnologiya ko'pincha birgalikda ishlatiladi.
👉 @MKhan404Lab
RabbitMQ — Message Broker, ya'ni servislar orasida xabarlarni navbat (Queue) orqali uzatadi.
Foydalanish joylari:
— Email va SMS yuborish
— Buyurtmalarni qayta ishlash
— Mikroservislar orasida xabar almashish
Redis — In-Memory Database, ya'ni ma'lumotni RAM'da saqlaydi va juda tez ishlaydi.
Asosan:
— Cache
— Session
— OTP kodlari
— Rate Limiting
📨 RabbitMQ → Vazifalarni navbatga qo'yadi.
⚡️ Redis → Ma'lumotni tez saqlaydi va qaytaradi.
Masalan, internet do'konida:
— Mahsulotlar ro'yxati Redis orqali tez yuklanadi.
— Buyurtma berilgach email yuborish RabbitMQ orqali fon rejimida bajariladi.
— Shuning uchun zamonaviy backend loyihalarida bu ikki texnologiya ko'pincha birgalikda ishlatiladi.
👉 @MKhan404Lab
🔥1
MKhan 404 Lab
RabbitMQ va Redis haqida RabbitMQ — Message Broker, ya'ni servislar orasida xabarlarni navbat (Queue) orqali uzatadi. Foydalanish joylari: — Email va SMS yuborish — Buyurtmalarni qayta ishlash — Mikroservislar orasida xabar almashish Redis — In-Memory Database…
Middle Backend level uchun eng kerakli mavzulardan
🔥2
Man bir paytlar dasturlashda bir kompaniyada ishlab yurganimda, o'zimda deyarli o'sish sezmadim, na moliyaviy, na aqliy. Kompaniyani o'zi ham o'sishdan to'xtab qolgandi. Bir xillikdan zerikib, bu sohadan sovishni boshladim.
Dasturlash zo'r kasb, bu sohada qolgim keldi, lekin o'sha sabablarni deb ketishga majbur bo'ldim, "pauza" qildim. Umuman noutbukni ochgim kelmay qolgandi.
Oradan 6-7 oy o'tib dasturlashga qaytdim, ancha sog'ingan ekanman ).
Hozirgi kompaniyamda kuchli o'sish bor, loyihalar juda katta. Dasturlashni har sohasida o'zizni sinab ko'rsez bo'ladi.
Nima demoqchiman, doim o'sishga intiling, to'xtab qolmang, har kuni yangi narsa o'rganing, har kuni kamida bitta "challenge" qiling.
Shunda o'sish bo'ladi va eng asosiysi ishizdan ham ma'no topasiz.
👉 @MKhan404Lab
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4❤1👍1🔥1
2026-yilda o'rganishga arziydigan texnologiyalar
Texnologiyalar tez o'zgaradi, lekin ayrimlari yaqin yillarda ham talabda qoladi.
AI
AI bilan ishlashni biladigan dasturchilarga talab ortib bormoqda.
Python
AI, Data Science va Backend uchun eng ommabop tillardan biri.
TypeScript
Frontend va Backend loyihalarida deyarli standart.
Docker
Ilovalarni bir xil muhitda ishga tushirish va deploy qilish uchun muhim.
Kubernetes
Containerlarni boshqarish va masshtablash uchun.
PostgreSQL
Ko‘plab kompaniyalarning asosiy ma’lumotlar bazasi.
Redis
Cache va real-time tizimlar uchun muhim texnologiya.
RabbitMQ / Kafka
Asinxron ishlar va mikroservislar uchun.
Cloud (AWS, Azure, GCP)
Zamonaviy ilovalarning asosiy infratuzilmasi.
💬 Siz 2026-yilda qaysi texnologiyani o‘rganmoqchisiz?
👉 @MKhan404Lab
Texnologiyalar tez o'zgaradi, lekin ayrimlari yaqin yillarda ham talabda qoladi.
AI
AI bilan ishlashni biladigan dasturchilarga talab ortib bormoqda.
Python
AI, Data Science va Backend uchun eng ommabop tillardan biri.
TypeScript
Frontend va Backend loyihalarida deyarli standart.
Docker
Ilovalarni bir xil muhitda ishga tushirish va deploy qilish uchun muhim.
Kubernetes
Containerlarni boshqarish va masshtablash uchun.
PostgreSQL
Ko‘plab kompaniyalarning asosiy ma’lumotlar bazasi.
Redis
Cache va real-time tizimlar uchun muhim texnologiya.
RabbitMQ / Kafka
Asinxron ishlar va mikroservislar uchun.
Cloud (AWS, Azure, GCP)
Zamonaviy ilovalarning asosiy infratuzilmasi.
👉 @MKhan404Lab
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👏1
Real loyihada bitta muammo chiqdi: bir xil
PINFL bilan nomzod qayta-qayta yuborilishi mumkin edi.ERROR: duplicate key value violates unique constraint
INSERT INTO candidates (pinfl, name)
VALUES ($1, $2)
ON CONFLICT (pinfl)
DO NOTHING
ALTER TABLE candidates
ADD CONSTRAINT candidates_pinfl_unique UNIQUE (pinfl);
PINFL mavjud emas — yangi record qo‘shiladiPINFL mavjud — hech narsa qilinmaydiduplicate error — yo‘q
ON CONFLICTning kuchi — duplikatni shunchaki ushlab qolish emas, balki bu qarorni database constraint bilan atomic qilishida.Real loyihalarda
SELECT → INSERT o‘rniga ko‘p holatda INSERT ... ON CONFLICT ancha to‘g‘ri yechim.👉 @MKhan404Lab
Please open Telegram to view this post
VIEW IN TELEGRAM
2-qism — ChatGPT, man haqimdagi fikrlari)
SQL query’ing 150 qator bo‘lsa:
Lekin o‘zing har bir left joinni hayot-mamot masalasiga aylantirasan.
Eng kuchlisi: “Meni advanced PostgreSQL’ga tezda olib chiq.”
PostgreSQL:
> “Avval group by bilan yarashib ol, aka.”
Sen esa:
> “FUNCTION, TRIGGER, EXPLAIN ANALYZE, ADVANCED!!!”😂
Lekin eng katta roast shuki: senda qiziqish juda ko‘p, lekin fokus RAM’i 4 GB.
Potential bor, lekin task switching shunchalik kuchliki, CPU ventilyatori ham seni ko‘rib stressga tushadi.
Bir narsani 6 oy tinmay bossang, ancha kuchli developer bo‘lib ketasan.
Hozircha esa sen “100 ta tab ochiq, qaysi biridan musiqa chiqayotganini topolmayotgan Chrome”san. 💀
SQL query’ing 150 qator bo‘lsa:
Lekin o‘zing har bir left joinni hayot-mamot masalasiga aylantirasan.
Eng kuchlisi: “Meni advanced PostgreSQL’ga tezda olib chiq.”
PostgreSQL:
> “Avval group by bilan yarashib ol, aka.”
Sen esa:
> “FUNCTION, TRIGGER, EXPLAIN ANALYZE, ADVANCED!!!”😂
Lekin eng katta roast shuki: senda qiziqish juda ko‘p, lekin fokus RAM’i 4 GB.
Potential bor, lekin task switching shunchalik kuchliki, CPU ventilyatori ham seni ko‘rib stressga tushadi.
Bir narsani 6 oy tinmay bossang, ancha kuchli developer bo‘lib ketasan.
Hozircha esa sen “100 ta tab ochiq, qaysi biridan musiqa chiqayotganini topolmayotgan Chrome”san. 💀
😁3