AzizDev | Dashturlash
118 subscribers
59 photos
1 video
1 file
75 links
🧬 Young Lord of Code
👨‍💻 Backend Engineer from the Future
⚙️ Laravel | Scaling | Microservices
🐲 Dragon-born ideas & legendary code
📡 Connect: @Isroilov_Azizbek
Download Telegram
Kimdir mening serverimga buzib kirishga urinmoqda... 🤔 Qiziq, loyiha hali ommaga chiqmagan, lekin allaqachon uni buzishga umid qilayotganlar bor. 😅

Xavotirga o'rin yo‘q! 🔒 WhiteList yo‘lga qo‘yiladi – faqat ruxsat berilganlar kirishi mumkin!

#CyberSecurity #WhiteList #HackerlarKuzatuvOstida
🔥4👍2😁2
🚀 Laravel’da Ko‘p Query Muammosidan qochish!

Ko‘pchilik ortiqcha query’lar tufayli Laravel API’larini sekinlashtiradi! 😱

Yomon usul (100 ta post = 101 ta query! 🐢)
$posts = Post::all();
foreach ($posts as $post) {
echo $post->user->name;
}


To‘g‘ri usul (faqat 2 ta query! ⚡️)
$posts = Post::with('user')->get();
foreach ($posts as $post) {
echo $post->user->name;
}

🔹 with('user') orqali ortiqcha query’lar kamayadi, backend esa tezlashadi! 🚀

#Laravel #PHP #Backend #Optimization #Lifehack
👍7🔥2
🚀 Laravel Performance Hack: Query’larni Cache bilan Tezlashtiring!

Ko‘pchilik Laravel’da bir xil so‘rovlarni har safar qayta ishga tushiradi va API’larning sekinlashishiga sabab bo‘ladi. 😩

Oddiy, lekin sust usul:
$users = User::where('status', 'active')->get();

Bu kod har safar bazadan ma’lumot olib keladi, bu esa serverga ortiqcha yuk tushirishiga olib keladi. 🐌

Tezroq va samaraliroq usul (Cache ishlatamiz! 🚀)
$users = Cache::remember('active_users', now()->addMinutes(10), function () {
return User::where('status', 'active')->get();
});

🔹 Foydasi:
Query’larni optimallashtiradi
Server yukini kamaytiradi
Sahifalar tezroq yuklanadi

Laravel’ni yanada tez va samarali qilish uchun caching’dan unumli foydalaning! 🔥

#Laravel #PHP #Optimization #Performance #CodingTips
🔥6👍3
🚀 Laravel Lifehack: Mass Assignment’ni To‘g‘ri Ishlatish!

Ko‘pchilik create() yoki update() ishlatishda xatoga yo‘l qo‘yib, qo‘shimcha muammolarni keltirib chiqaradi! ⚠️

Noto‘g‘ri usul (Har bir ustunni alohida belgilash kerak! 🐢)
$user = new User();  
$user->name = 'Azizbek';
$user->email = 'azizbek@example.com';
$user->password = bcrypt('secret');
$user->save();


To‘g‘ri usul (Mass Assignment bilan kodni soddalashtiring! ⚡️)
User::create([
'name' => 'Azizbek',
'email' => 'azizbek@example.com',
'password' => bcrypt('secret'),
]);


📌 Muhim! User modelida $fillable e’lon qilingan bo‘lishi kerak:
protected $fillable = ['name', 'email', 'password'];


Kodni soddalashtiradi
Kamroq yozish – tezroq ishlash! 🚀
SQL Injection va xatolar xavfini kamaytiradi

Laravel’da to‘g‘ri usullarni ishlatib, kod samaradorligini oshiring! 🔥

#Laravel #PHP #Optimization #BestPractices #Security
🔥7👍3👏1
Laravel Lifehack: whenLoaded bilan Resource-ni Optimallashtirish

🚀 Laravelda Eloquent Resource ishlatganda, ba’zi munosabatlar (relations) har doim load() qilinmasligi mumkin. Bunday holatda $this->whenLoaded() ishlatish orqali ortiqcha query’larni oldini olish mumkin!

🎯 Muammo: Har doim user munosabatini chaqirish
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'user' => new UserResource($this->user), // User doim yuklanadi!
];
}

🔴 Muammo: Agar with('user') qilinmasa, bu kod N+1 problem chiqarishi mumkin!

Yechim: whenLoaded ishlatish
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'user' => new UserResource($this->whenLoaded('user')), // Faqat user yuklangan bo‘lsa, qo‘shiladi
];
}

🔥 Foydasi:
✔️ Ortiqcha query’lar yo‘qoladi – Faqat kerakli bo‘lsa, user yuklanadi!
✔️ API tezligi oshadi – Har doim UserResource ishlamaydi!
✔️ N+1 muammosi oldi olinadi – Agar with('user') bo‘lmasa, Laravel null qaytaradi!

#Laravel #PHP #Optimization #BestPractices #Security
🔥3👍1👏1
🚀 Laravel Octane bilan API’larni 100x tezlashtirish
Laravel API’lari ko‘pincha sekin ishlaydi, chunki har bir so‘rovda framework boshidan yuklanadi. ProPay loyihasida men Octane (Swoole) ishlatib, 3-4 soniyalik requestlarni 30-40ms gacha tushirdim! 😎

🔹 Laravel Octane nima qila oladi?

⚡️ Har bir request uchun Laravelni qayta yuklamaydi – Foydalanishga tayyor ilova xotirada saqlanadi.
⚡️ Super tezkor ishlaydi – PHP-FPM ga qaraganda kamida 10 baravar tezroq!
⚡️ Parallel so‘rovlarni qayta ishlaydi – Birdaniga ko‘p requestlarni tez bajaradi.
⚡️ WebSocket, real-time va async task’larni qo‘llab-quvvatlaydi.
⚡️ Database ulanishlarini saqlab qoladi – Har safar qayta bog‘lanish shart emas.

🔥 ProPay loyihasida Octane bilan nima o‘zgardi?

🔹 Ilgarigi request vaqti – 3-4 soniya.
🔹 Octane bilan – ⚡️ 30 - 40ms.

💡 Soddaroq qilib aytganda, Laravel API’lar endi 100x tez ishlaydi!

📌 Laravel Octane qachon ishlatish kerak?

Tezkor API’lar uchun – Past latency talab qilinadigan joylarda.
WebSocket va real-time chat uchun – Har doim ochiq turgan serverlar.
Ko‘p request keladigan tizimlar uchun – 1 sekundda minglab so‘rov bo‘lsa.
Oddiy admin panel yoki kam trafficli saytlar uchun shart emas.

🎯 Xulosa

🚀 Laravel Octane bilan API’lar tezligi 100 baravar oshdi!
🚀 PHP har bir requestda Laravelni qayta yuklamaydi, natijada maksimal performance!
🚀 Database ulanishlari, session va cache optimallashtirildi!

#Laravel #Octane #Performance #Optimization #BestPractice
🔥5👍3👏1
💡 Har bir insonda super qudratlar va "patch" kerak bo‘ladigan joylar bo‘ladi. Mana, meniki! 🔥 Yaxshi tomonlarimni level up qilaman, kamchiliklarimni esa bugfix qilishga harakat qilaman. 😃

🎯 Siz-chi? O‘zingiz haqingizda shunday tahlil qilib ko‘rganmisiz? 👀
🔥3👏3😱1
📌 Eloquent'da when() funksiyasidan foydalanish

Ko‘pchilik if bloklaridan foydalansa ham, when() orqali kodni ancha ixcham qilish mumkin!

⚡️ Misol:
$users = User::when(request('role'), function ($query, $role) {
return $query->where('role', $role);
})->get();

Agar request da role bo‘lsa, where() qo‘llanadi.
Agar bo‘lmasa, oddiy User::get() ishlaydi.

🔥 Laravel kodini ixcham va chiroyli qilish uchun when() dan foydalaning!


#Laravel #when #Performance #Optimization #BestPractice
🔥4👍2👏1
⚡️ Laravel + Node.js + Redis – Real-time chat nechta foydalanuvchini ko‘tara oladi?

Men yaqinda Laravel + Node.js + Redis yordamida real-time chat yaratdim. Ammo bir savol tug‘iladi: bu tizim bir vaqtning o‘zida nechta foydalanuvchini ko‘tara oladi? 🤔

🔍 Texnologiyalar:
Laravel – Backend API
Node.js + Socket.io – Real-time aloqani ta’minlash
Redis – WebSocket xabarlarini tez uzatish

💡 Chat qanday ishlaydi?
1) Laravel API orqali user autentifikatsiya qiladi
2) Node.js + Socket.io chat xabarlarini Redis pub/sub orqali boshqaradi
3) Redis – chat serverlar o‘rtasida tezkor ulanishni ta’minlaydi

📊 Yuklama testi natijalari (taxminiy):
🚀 10,000 ta parallel user hech qanday kechikishsiz ishlashi mumkin
🚀 50,000+ user bilan Redis hali ham stabil ishlashi mumkin
🚀 100,000+ user da WebSocket ulanishlar soni oshib ketib, Redis Cluster + Load Balancer kerak bo‘lishi mumkin

🔧 Yaxshiroq ishlashi uchun nima qilish kerak?
1️⃣ Redis Cluster – katta hajmli ulanishlarni boshqarish
2️⃣ Horizontally Scaling (Ko‘paytirish) – bir nechta Node.js serverlarini ishlatish
3️⃣ Load Balancer – Traffikni teng taqsimlash

📌 Xulosa:
Oddiy Redis konfiguratsiyasi bilan 50K user hech qanday muammosiz ishlaydi. Katta miqdordagi foydalanuvchilar uchun Redis Cluster + Load Balancer qo‘shish kerak.
🔥4👍3
🔍 Vite.js qanday o‘qiladi?

To‘g‘ri variant: "Vit"
Noto‘g‘ri variantlar:
— Vayt
— Vitey
— Vitya
— Vitamin

⚠️ Agar siz ham "Vayt" deb o‘ylagan bo‘lsangiz, iltimos:
npm uninstall vite && sudo apt install fonetika


💡 Eslatma: Vite fransuzcha "vite" (tez) so‘zidan kelib chiqqan bo‘lib, "Vit" deb talaffuz qilinadi. 🚀

#Vite #Frontend #JS #TalaffuzMasalasi
👍3😁2😱1
💻 Hosting vs VPS – Qaysi biri kerak?

Hosting tanlang, agar:
🔹 Saytingiz kichik va trafik kam bo‘lsa
🔹 Texnik ishlarga vaqt sarflamoqchi bo‘lmasangiz
🔹 WordPress yoki oddiy blog yuritmoqchi bo‘lsangiz

🚀 VPS tanlang, agar:
🔹 Kuchli backend (Laravel, Node.js, e.t.c) ishlatsangiz
🔹 Trafik ko‘p bo‘lsa va serverni o‘zingiz boshqarmoqchi bo‘lsangiz
🔹 O‘ziga xos konfiguratsiya kerak bo‘lsa (custom software, AI, mikroservislar)

#VPS #Hosting #Server #Laravel #WebDevelopment #DevOps #Backend
🔥4👍2
🔷 Laravelda Multiple Database – Nega ishlatish kerak?

Ko‘pchilik uchun bitta database kifoya qiladi, lekin ayrim holatlarda bir nechta database ishlatish shart:

1. Ma’lumotlarni ajratish – Masalan, asosiy database user ma’lumotlarini saqlasa, log va statistikalar boshqa database da bo‘lsa, asosiy bazaga yuk tushmaydi.

2. Yangi va eski tizimlarni bog‘lash – Agar eski database bilan ishlashingiz kerak bo‘lsa, uni yangi loyihaga qo‘shish osonlashadi.

3. Microservices arxitekturasi – Har bir xizmat (auth, payments, orders) o‘z bazasiga ega bo‘lsa, tizim mustahkam va kengayuvchan bo‘ladi.

4. Turli xildagi database turlari – Masalan, asosiy ma’lumotlar MySQL da, analytics ma’lumotlari esa MongoDB da saqlanishi mumkin.

📌 Laravelda buni qanday ishlatish kerak?
🔹 config/database.php faylida qo‘shimcha connection qo‘shing:
'connections' => [
'logs_db' => [
'driver' => 'mysql',
'host' => env('LOGS_DB_HOST'),
'database' => env('LOGS_DB_DATABASE'),
],
],

🔹 Kerakli modelga connection belgilang:
class Log extends Model
{
protected $connection = 'logs_db';
}

🔹 Query Builder orqali ishlating:
DB::connection('logs_db')->table('logs')->insert([...]);

Noto‘g‘ri yondashuv:
🚫 Har doim DB::connection() bilan ishlash – kodni chalkashtirib yuboradi.
🚫 Transactionlar har doim bitta database ichida bo‘lishi kerak, aks holda ishlamaydi!

#Laravel #BestPractice #database
🔥2👍1
Hamma o‘zini boshqachaman deb o‘ylaydi. Agar shunday bo‘lsa, men boshqalar shunday o‘ylashini bilaman... va shu sababli men HAQIQATDAN ham boshqachaman! 🤯🧠

Agar siz ham shunday o‘ylagan bo‘lsangiz... men allaqachon buni bilardim! 😃
😁7🤯2
Мен жеңілдім, себебі әлсізбін, ештеңе істеген жоқпын, істей алмадым.
😢4
🐰 RabbitMQ nima uchun kerak?
Kodda “qimmat” vazifalarni (masalan: email, to‘lov, bildirishnoma) background-ga o‘tkazish kerak bo‘lsa — RabbitMQ yordam beradi.

Message Broker – service-lar o‘zaro xabar almashadi
Queue – navbatga qo‘yadi, navbati bilan ishlaydi
Reliable – xabar yo‘qolmaydi, qayta yuboriladi

🎯 Katta tizimlar uchun Redis emas — aynan RabbitMQ kerak!

#Laravel #BestPractice #rabbitmq
🔥4👍1👏1
image_2025-04-16_20-46-30.png
8.7 KB
Nima gap 😎 Monster : )
🔥7😱1