UzDevid – Telegram
UzDevid
4.57K subscribers
78 photos
19 videos
117 links
Dasturlash - bu nafaqat mening kasbim, balki bu mening yoqtirgan mashg'ulotim. Men uchun doimiy o'rganish va rivojlanish manbai.

https://tirikchilik.uz/uzdevid
Download Telegram
gPort-dan 19124510 soniya foydalanilibti. Ya'ni bu 5302 soat yoki 221 kun degani

@uzdevid
🔥3👏2👍1🤯1
So'ngi vaqtlarda kiber jinoyat, kartadan pul o'marishlar ko'paygani bois, payme mana shunday test sinovlari o'tkazyabti ekan. Tavsiya qilaman.

https://cybersecurity.repost.uz

@uzdevid
👍9👏2🔥1
PHP-da funksiyalar obyektlarni qanday qabul qilishi (qiymat bo‘yicha yoki havola bo‘yicha) dasturdagi o‘zgaruvchilar bilan ishlash uslubini belgilaydi. Obyektlar va oddiy ma'lumot turlari bilan ishlashda farqlar mavjud. Keling, obyektlar funksiyaga qanday uzatilishini qisqacha ko‘rib chiqamiz.

Obyektlarni qiymat va havola bo‘yicha uzatish

PHP-da oddiy ma'lumot turlari (masalan, integer, string, array) funksiyaga qiymat bo‘yicha uzatiladi. Bu shuni anglatadiki, o‘zgaruvchining nusxasi funksiyaga yuboriladi, va funksiyada o‘zgarishlar asl o‘zgaruvchiga ta'sir qilmaydi. Ammo obyektlar bilan ishlaganda bu jarayon boshqacha ishlaydi. PHP 5-dan boshlab obyektlar havola bo‘yicha uzatiladi, bu esa obyektga to‘g‘ridan-to‘g‘ri kirish imkonini beradi.

Obyektlarni havola bo‘yicha uzatish

Obyektlar PHP-da funksiyaga havola bo‘yicha uzatiladi. Bu shuni anglatadiki, funksiya obyektning manziliga murojaat qiladi va o‘zgarishlar to‘g‘ridan-to‘g‘ri asl obyektga ta'sir qiladi. Masalan, funksiyada obyektning biror xususiyati o‘zgartirilsa, bu o‘zgarish asl obyektga ham ta'sir qiladi.

class Product {
public $price = 100;
}

function changePrice($item) {
$item->price = 200;
}

$product = new Product();
changePrice($product);
echo $product->price; // Result: 200


Bu yerda $product obyektini funksiyaga uzatganda, obyektning manzili uzatiladi. Shuning uchun funksiya ichida xususiyat o‘zgarishi asl obyektga ta’sir ko‘rsatadi.

Obyektlarni klonlash va nusxa qilib uzatish

Ba’zi hollarda obyektning asl qiymatini saqlab qolish kerak bo‘ladi. Bunday hollarda obyektni funksiyaga yuborishdan oldin klonlash orqali nusxa yaratish mumkin. Buning uchun clone operatoridan foydalaniladi.

class Product {
public $price = 100;
}

function changePrice($item) {
$item->price = 200;
}

$product = new Product();
$clonedProduct = clone $product;
changePrice($clonedProduct);
echo $product->price; // Result: 100
echo $clonedProduct->price; // Result: 200


Bu misolda $clonedProduct obyektning nusxasi sifatida yaratiladi va funksiya bu nusxani o‘zgartirsa ham, asl $product obyektining qiymati saqlanib qoladi.

Qiymat va havola bo‘yicha uzatish o‘rtasidagi farq

- Qiymat bo‘yicha uzatishda obyektning nusxasi uzatiladi, bu esa asl obyektga ta’sir qilmaydi.
- Havola bo‘yicha uzatishda esa obyektning manzili uzatiladi va funksiyadagi o‘zgarishlar obyektning asl qiymatiga ta’sir ko‘rsatadi.

Xulosa

PHP-da obyektlar avtomatik ravishda havola bo‘yicha uzatiladi, ya'ni funksiyalar obyektning asl qiymatini o‘zgartirishi mumkin. Agar funksiyaga uzatilgan obyektning asl qiymati o‘zgarishini istamasangiz, uni clone yordamida nusxalash mumkin. Bu tushunchalar kodni optimallashtirishda va obyektlar bilan ishlashda muhim rol o‘ynaydi, shuningdek, PHP dasturlarini to‘g‘ri tushunib yozishga yordam beradi.

@uzdevid
👍14👏31🔥1
RESTful API — bu REST tamoyillariga to‘liq amal qiladigan API bo‘lib, mijoz va server o‘rtasidagi o‘zaro aloqa uchun mo‘ljallangan samarali va oddiy interfeysdir. RESTful API lar HTTP protokoli orqali resurslarni boshqarishga imkon beradi. (davomi)

@uzdevid
👍8👏2🔥1
is_null yoki \is_null, qaysi biri afzal va nima uchun?

is_null - php-ning bu funksiyasi haqida yozish shart emas deb o'ylayman. Ushbu funksiyani har ikki hil chaqirish uslubi bir xil natija qaytarsada ularning chaqirilish mexanizmi tarafdan farqi bor.

Nom bo'shlig'i (namespace) mavjud bo'lgan loyihada, is_null deya chaqirilsa, php avvalo joriy nom bo'shlig'dan (namespace) is_null nomli funksiyani qidiradi, topaolmasa so'ng global funksiyalar ichidan ushbu funksiyani chaqiradi. Va bu orada sezilarli bo'lmagan vaqt sarflaydi.

\is_null (backslash) orqali funksiya chaqirilsa, php joriy nom bo'shlig'iga (namespace) ahamiyat bermasdan, bevosita global funksiyalar ichidan chaqiradi.

Bu tezlikning farqi amalda sezilmasligi mumkin, lekin murakkab loyihalar 'namespace' bilan ishlaganda \is_null afzalroq bo'ladi.

Huddi shu tartib is_array, in_array, class_exists, end va boshqa global funksiyalarda ham ishlaydi.

@uzdevid
👍12🔥3👎2👏2
Dependency inversion va injection nima va ularning farqi nimada?

Dasturlashda modullar o'rtasida bog'lanishlarni boshqarish juda muhimdir. Bu maqsadda "Dependency Inversion" (DI) va "Dependency Injection" (DI) tushunchalari ko'pincha bir-biriga o'xshash tarzda qo'llaniladi, lekin ularning ma'nolari va ishlatilishida farqlar bor. (davomi)

@uzdevid
👍15👎3🔥2👏2🥰1
Mikroservislar: Kichik xizmatlar bilan katta tizimlar yaratish

Mikroservislar arxitekturasi katta va murakkab dasturiy tizimlarni kichik, mustaqil xizmatlarga bo‘lib boshqarish imkonini beradigan usuldir. Har bir mikroservis o‘ziga xos vazifani bajaradi va boshqa mikroservislar bilan minimal o‘zaro bog‘liq holda ishlaydi. Bu yondashuv tizimlarni qurishda kengayuvchanlik, mustaqillik va texnologik xilma-xillikni ta'minlaydi.

### Mikroservislar qanday ishlaydi?
Mikroservislar monolit yondashuvga nisbatan kichikroq hajmli va mustaqil komponentlardan iborat bo‘ladi. Har bir mikroservis alohida jamoa tomonidan ishlab chiqilishi va boshqarilishi mumkin. Ular HTTP, gRPC, RabbitMQ yoki WebSocket kabi turli protokollar orqali bir-biri bilan muloqot qiladi.

Mikroservislar afzalliklari:
1. Kengayuvchanlik: Har bir xizmat alohida kengaytiriladi, bu esa tizim yukini balanslashda qulaylik yaratadi.
2. Texnologik mustaqillik: Har bir mikroservis o‘z texnologiyasi va dasturlash tili yordamida yaratilishi mumkin.
3. Yuqori mavjudlik: Biror mikroservis ishdan chiqqanda, boshqa xizmatlar ishlashda davom etadi.
4. Tezkor joriy etish: Kichik xizmatlar tezroq ishlab chiqilib, yangilanishlar tez-tez amalga oshiriladi.

Mikroservislar kamchiliklari:
1. Murakkablik: Ko‘plab xizmatlarni bir-biri bilan sinxronlashtirish, monitoring qilish va muvofiqlashtirish murakkab bo‘lishi mumkin.
2. Tarmoq kechikishlari: Xizmatlar o‘zaro tarmoq orqali muloqot qilgani sababli, kechikishlar yuzaga kelishi mumkin.
3. Ma'lumotlarni boshqarish: Har bir xizmat o‘z ma'lumot bazasiga ega bo‘lishi mumkin, bu esa ma'lumotlarning izchilligini saqlashni qiyinlashtiradi.

Xulosa
Mikroservislar yirik dasturlarni boshqarish, ishlab chiqish va kengaytirishda zamonaviy yechim hisoblanadi. Kichik xizmatlar ko‘rinishida dasturlarni tashkil etish orqali tizim mustaqilligi va kengayuvchanligi oshadi. Biroq, ularni muvaffaqiyatli amalga oshirish0 murakkablik va tarmoq muammolariga qarshi ehtiyotkorlik talab qiladi.

@uzdevid
👍33👎6🔥3😢2👏1
Mikroservis Tamoyillari: Yirik Tizimlarni Qismlarga Ajratish Asoslari

Mikroservis arxitekturasi samarali ishlashi uchun ma'lum tamoyillarga amal qilish muhim. Ushbu tamoyillar mikroservislarni mustaqil, kengayuvchan va ishonchli tizimlar yaratishga yordam beradi.

1. Xizmatlar Mustaqilligi
Har bir mikroservis alohida ishlab chiqilishi, joylashtirilishi va boshqarilishi kerak. Bu ularning boshqa xizmatlardan mustaqil bo‘lishini ta'minlaydi va bir xizmat ishdan chiqsa, boshqa xizmatlar ishlashda davom etishi mumkin.

2. Yagona Mas'uliyat Printsipi (SRP)
Mikroservislar faqat bitta vazifani bajarishi kerak. Kichik va aniq funksiyalarni bajaruvchi xizmatlar yaratish tizimni oson boshqarish va kengaytirishga imkon beradi.

3. Avtonomiyat
Xizmatlar o‘z muammolarini mustaqil hal qilishi kerak. Har bir mikroservis o‘z biznes jarayonlariga ega bo‘lishi va alohida texnologiya to‘plamidan foydalanishi mumkin. Bu ularga mustaqillikni va moslashuvchanlikni oshiradi.

4. Mustaqil Joylashtirish
Har bir mikroservis alohida joylashtirilishi va yangilanishi mumkin bo‘lishi kerak. Bu yangi funksiyalarni tezroq joriy etish va mavjud xizmatlarni yangilashda tizimga minimal ta'sir ko‘rsatish imkonini beradi.

5. Decentralizatsiyalangan Ma'lumotlar Boshqaruvi
Mikroservislar ma'lumotlarni o‘z ichida boshqarishi kerak. Markazlashtirilgan ma'lumotlar omboridan ko‘ra, har bir mikroservis o‘ziga tegishli ma'lumotlarni boshqarib, o‘z ma'lumotlar omboridan foydalanadi.

6. Tarmoq orqali Muloqot
Mikroservislar o‘zaro API yoki xabar tizimlari orqali muloqot qiladi. Bu ular orasidagi bog‘liqlikni kamaytiradi va ularni kengaytirishga imkon beradi, lekin bu tarmoq kechikishlari va ishonchlilikka e'tibor berishni talab qiladi.

7. Monitoring va Logging
Har bir mikroservis uchun monitoring va log yuritish jarayoni mustahkam bo‘lishi kerak. Bu xizmatlarning sog‘lig‘ini kuzatish va muammolarni tezda aniqlashga yordam beradi.

Xulosa
Mikroservis tamoyillari ulardan samarali foydalanish uchun muhimdir. Xizmatlar mustaqilligi, avtonomiyat va mustaqil joylashtirish orqali yirik tizimlarni yanada moslashuvchan va kengayuvchan qilish mumkin.

@uzdevid
👍7016👎9🤔9🔥5🥰5
Yangi chiqayotgan (hali chiqmagan) Yii3 freymvorki haqida video kurs chiqaraylikmi?
Anonymous Poll
57%
Xa
23%
Albatta
20%
Zarar qilmaydi
👍53😁30🔥137🥰3👎2👏2
Backendda tashqi Rest-API lar bilan integratsiyani qanday amalga oshirasiz? curl_* funksiyalari orqalimi yoki Guzzle mijozi bilanmi? Integratsiyalarni qulay va OOP uslubida qilishga nima deysiz?

Conflux-HTTP - moslashuvchan va keng imkoniyatlarga ega HTTP sdk.

Kamchiliklari bo'lsa issue yoki PR kutaman 👨‍💻

@uzdevid
👍73🔥2👏2
Yii3 frameworkining dunyodagi ilk video kursi 👨‍💻

Ushbu birinchi video darsda Yii3 fraymorki bilan ishlashni boshlash uchun zarur bo'lgan barcha asosiy tushunchalar va vositalar bilan tanishasiz. Darsda Yii3 ilovasini yaratish, sozlash va uni ishlatishning boshlang'ich bosqichlari ko'rsatiladi. Har bir qadamni aniq tushuntirib, sizni Yii3 bilan ishlashda to'g'ri yo'naltiramiz. Bu darsda Yii3 arxitekturasi, fayl tuzilmasi, va birinchi ilovangizni yaratishga qaratilgan amaliy misollar ko'rsatiladi.

https://www.youtube.com/playlist?list=PLjQt6UfhObShjbLyRcl3KcgM4gmpqlCUo
🔥8👏4😁3👍2
Ushbu video darsda PSR-15 middleware’lari haqida va ularni Yii3 frameworkida qanday qo‘llash mumkinligi haqida batafsil tushuntirib beriladi. Dars davomida middleware nima ekanligi, ularning vazifasi va qanday ishlashi haqida nazariy tushunchalar beriladi, shuningdek, real amaliy misollar orqali Yii3 ilovasiga middleware’larni qanday qo‘shish va sozlash ko‘rsatib o‘tiladi.

Ayniqsa, so‘rovlarni filtrlash, autentifikatsiya, loglash kabi funksiyalarni qanday amalga oshirish mumkinligi o‘rganiladi.

https://www.youtube.com/watch?v=zQs3zZaSzb8

@uzdevid
👍3🔥3👏31
Final sinflar va metodlar — afzalliklar, muammolar va yechimlar.

PHP dasturchilar ko‘pincha final yordamida sinf va metodlarni himoya qilishadi. Biroq bu qaror foydali bo‘lishi bilan birga, ba’zida muammolarga ham sabab bo‘lishi mumkin. Davomini medium-da o'qing
🔥6👍31👏1
Yuqoridagi kod nimani aks ettiradi?

👍 - a
🔥- 455
👎 - Fatal error

@uzdevid
🔥27👎7👍5👏1
Yuqoridagi kod nimani aks ettiradi?

👍 - 2
🔥 - 3
🤔 - 1

@uzdevid
🔥31👍8🤔52👏1
Ushbu darsda biz Yii3 doirasida zamonaviy dasturlash tamoyillaridan biri bo'lgan Dependency Inversion Principle (DIP) va Dependency Injection (DI) konsepsiyalarini ko'rib chiqamiz.

https://youtu.be/46f1Dw3tOiM

@uzdevid
👍4🔥4👏21
gPortni serverini qaytadan Yii3-da yozmoqchiman. Yii3da web socket bilan ishlaydigan paket yo'q ekan. Avval shu paketni yozmoqchiman 🔥


Client => (ws://) => Centrifugo => (grpc://) => RoadRunner => Yii3


Maqsad uy qurish, lekin, avval sement zavodini qurish kerak...

@uzdevid
🔥11👍32👏2😁2