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
🚀 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
🎯 Why use DTO (Data Transfer Object)?

Ko‘pchilik Requestni to‘g‘ridan-to‘g‘ri modelga uzatadi:

User::create($request->validated());


Bu kichik loyihada ishlaydi. Lekin loyihangiz o‘sgan sayin validation, authorization, transformatsiya, mapping — hammasi Controllerda aralashib ketadi.

🔄 DTO yordamida esa:
1) request'dan faqat kerakli ma'lumot ajratiladi
2) typelar aniq bo‘ladi (misol: string $email, Carbon $birthday)
3) Service yoki Action klasslarga toza data uzatiladi

$userDto = new CreateUserDTO(
name: $request->name,
email: $request->email,
birthday: Carbon::parse($request->birthday)
);

$this->userService->create($userDto);


📦 DTO — kod arxitekturasini modular va testga qulay qiladi.
Controller faqat data qabul qiluvchi, service esa ish bajaruvchi bo‘ladi.

#Laravel #BestPractice #CleanCode
👍4🔥3
O'zi videolarimni ko'radiganlar bormi 😄
👍9🤔3
Assalomu Alaykum, barchaga!

Xudo xohlasa, ertaga 1 oylik harbiy xizmatga yo‘l olaman.
Lekin yaqinda yangilik chiqdi — endi 1 oylik emas, 3 oylik harbiy xizmat bo‘lib qolarkan. Iyul yoki sentabrdan kuchga kiradi deyishdi, shuning uchun imkon borida erta borishga qaror qildim.

Barcha duolaringizni kutaman!
Tez orada sog‘-salomat qaytaman, silar bilan — Oddiy askar Azizbek 💪🇺🇿

P.S. Sizlarga ham maslahat — imkoniyat bo‘lsa, 1 oylik bo‘lgan paytda borib oling 🙂
9🔥4😱1
Assalomu Alaykum barchaga 🐲
🔥7
🧩 Laravel Lifehack: $this->when() bilan shartli qiymatlar qo‘shing!

📦 Muammo:
API response'da har doim barcha field'larni chiqarish shart emas. Ba'zilarini ma’lum holatdagina chiqarish kerak bo‘ladi (masalan: admin bo‘lsa, ko‘rsatilsin).

📌 when() 2 ta parametr oladi:
Shart (boolean)
Qiymat (agar shart true bo‘lsa, shu qiymat qo‘shiladi)

🎯 Foyda:
Kodingiz toza bo‘ladi
API response ixcham
Performance yaxshilanadi

#laravel #api #resource #azizdev #php #lifehack
🔥7