Farhod Nematov


Гео и язык канала: Узбекистан, Узбекский
Категория: Образование


Full stack web developer from Uzbekistan
Team Lead, Teacher, Mentor.
Hayotiy tajribalarimdan foydalangan holda o’z bilimlarim bilan o’rtoqlashaman

Связанные каналы

Гео и язык канала
Узбекистан, Узбекский
Категория
Образование
Статистика
Фильтр публикаций


Ba'zi odamla sama moykaga oddiy moykachilani ishidan qoniqmaganligi uchun boradi. O'zim "idea" qilib yuvaman deb.

Keyin nima bo'ladi?

Nimayam bo'lardi, moykachilani qadriga yetib qaytadi 😂😂


O'zbeklarimiz qiziqda. Moshinani moyka qigani "sam moy" ga borib, yuvib bolib, quritayotkanimda, yonimdagi bitta aka, bugunga ov havo yomg'ir ko'rsatkandi deydi 🤪🤪


Matematikani oyog’ini osmondan qiladigan dasturlash bu :))


Bugun kechroq, shu haqida gaplashamiz


ChatGPT ishlatadiganlar, manashu so’rovni GPT ga yuborib bir “tarsaki” qabul qilib oling 😄

Roast me as hard as you can based on everything you know about me. Don’t hold back even a little bit. I can take it all in Uzbek.

Natijadan ruhiy tushkunlikka tushish yo’q 🙃

Manba: https://t.me/AlisherAhmatovich/1175

@fnematov_blog


Репост из: Xayrulla Hamidov official
Видео недоступно для предпросмотра
Смотреть в Telegram
Осмонга етса ҳам ақлу расоинг,
Пойидан ўзга жой эмасдир жойинг –
Қулоққа айлансин ҳар бир аъзоинг,
Онанг сўзламоққа чоғланган маҳал!

Бу суҳбат чоғинда ғуборларни еч,
Ҳар қандоқ чиройли балоғатдан кеч!
Осмон ҳам жим турар, сезганмисан ҳеч,
Онанг сўзламоққа чоғланган маҳал?!

Зинҳор туриб олма ўтирган бўлсанг,
Чўкка туш мабодо тик турган бўлсанг,
Ҳатто ичингда ҳам жоизмас кулсанг,
Онанг сўзламоққа чоғланган маҳал!

Ризолиқ истасанг кўнглига бойлан,
Ҳар бир хизматига юракдан шайлан!
Жим бўлгин, муваққат соқовга айлан,
Онанг сўзламоққа чоғланган маҳал!

Хайрулло, берилма фоний ўйинга,
Меҳр қўй волиданг ётган уйингга,
Калом ўқимоқни қолдир кейинга,
Онанг сўзламоққа чоғланган маҳал!

@xayrulla_hamidov


Shu o’rinda biz juda muhum savollar berishimiz kerak:

- Texnalogik kompaniyalar, o’zlari yaratayotgan Sun’iy intellekt bilan mas’uliyat bilan harakat qilishadimi?
- Ular biz haqimizda to’planayotgan juda katta hajmdagi ma’lumotlarni nima qilishadi?
- Ular nafaqat noto’g’ri ma’lumotlarni targ’ib qiluvchi, balki odamlarni “mahsulot”ga aylantiradigan va jamiyatga zarar yetkazadigan reklama modellaridan foydalanishni davom ettirishadimi?


Xulosa qiladigan bo’lsak, ilgari AQSH dunyoda demokratiyani targ’ib qiluvchi asosiy mamlakat edi. Ammo, bugungi kunda u aynan demokratiyaga zarar yetkazuvchi yetakchi vositaga aylandi. Qiziq, bunda texnalogik kompaniyalarning rahbarlari bunga rozimi yoki uni o’zgartirish uchun chora ko’rishadimi? Bunga qaror qabul qilishlari kerak.

@fnematov_blog


Ian Brammer nima haqida gapirgan?

Ingliz tilida qiynaladiganlar uchun o’zbek tilida soddaroq qilib tushuntirishga harakat qilaman. (Albatta ingliz tilida tushunib eshitish zavqi boshqacha. Shuning uchun ingliz tilini o’rganing 😊)

Dunyoni kim boshqarishi haqida oddiy hulosalar.

Dunyoni kim boshqaradi?

Oldin, javob oddiy edi.
Agar siz 45 yoshdan katta bo’lsangiz, dunyo AQSH va Sovet ittifoqi tomonidan boshqarilishini eslasangiz kerak.
Agar siz 45 yoshdan kichik bo’lsangiz, unda Sovet Ittifoqi qulaganini, va AQSH dunyodagi yagona super kuchga ega davlat sifatida dunyoni boshqarishini aytishingiz mumkin.

Taxminan 15 yillar oldin, jarayon biroz murakkablashdi. AQSH dunyoda tartibni nazoratga soluvchi yoki global savdo va iqtisodiyotni asosiy tarafdori bo’lishni hohlamay qoldi. Natijada, boshqa davlatlar, o’rnatilgan qoidalarni o’zlari uchun yoqmaydiganlarini bekor qilishdi va ba’zilari, o’zlari uchun yangi qoidalar o’ylab topishdi.

Nima uchun bunday bo’ldi? Uchta sabab:
1. Rossiya G’arb institutlariga kiritilmadi, ya’ni G’arb u bilan birlashishni inkor qildi. U kuchli davlat edi va bundan tabiiyki jaxli chiqdi.
2. Xitoy Amerika bilan birlashib ketadi (majoziy manoda) degan umid bilan AQSH boshchiligidagi muassasalarga kiritilindi, ammo Xitoy, Xitoyligicha qoldi.
3. Boy hisoblangan demokratik mamlakatlardagi ko’p odamlar, o’zlarini globallashuvdan ortda qolayotgandek his qildi va buning uchun rahbariyatni aybladi.

Yuqoridagi 3 ta sabab, biz xozirgi kunda ko’rayotgan muojarolarning asosiy sabablaridandir. Va endi biz, dunyoda yakdil hukumronlar bo’lmagan davrda yashamoqdamiz.

Kelajakda bizni nimalar kutmoqda?

Biz dunyoni, bir yoki ikki super kuchlar boshqaradigan davrga qaytara olmaymiz, uni o’rniga, biz yashash va fikrlash tarzimizga ta’sir o’tkaza oladigan uchta bir-biriga o’xshash dunyo tartibiga ega bo’lamiz:

1. Global xavfsizlik tartibi: AQSH va uning ittifoqchilari harbiy jihatdan eng kuchli hisoblanadi va ular o’z harbiylarini dunyoning istalgan nuqtasiga yuborishi mumkin. Xitoy esa Osiyoda o’z qo’shinlarini ko’paytirmoqda. Shu sababli, boshqa davlatlar himoyalanish uchun ko’proq AQSH ga bog’lanmoqda. Keyingi o’n yil ichida AQSH hukmron harbiy kuch bo’lib qolishi mumkin.

2. Global iqtisodiy tartib: Hokimiyat bir nechta mamlakatlar o’rtasida taqsimlanadi. AQSH kuchli iqtisodiyotga ega, ammo, u boshqa mamlakatlarni o’z iqtisodiy istaklarini bajarishga majburlay olmaydi. AQSH va Xitoy iqtisodiy jihatdan bir biriga juda bog’lanib qolgan va ular buni nazorat qila olishmaydi. Bundan tashqari, Yevropa Ittifoqi, Hindiston va Yaponiya kabi davlatlar ham muhim o’yinchilardur. Demak, Global iqtisodiyot ko’p qutbli bo’lib qoladi va hech qanday davlat uni nazorat qila olmaydi.

3. Raqamli tartib (Texnalogik kompaniyalar): Bu eng muhumi va u hukumatlar tomonidan emas, balki texnalogik kompaniyalar tomonidan boshqariladi. Bu kompaniyalar urushlar, siyosat va shaxsiy daxlsizligimizga ta’sir qiladi. Masalan, bunday kompaniyalar Ukrainani Rossiyadan bo’ladigan kiberxujumlardan asrab qolishdi, Sotsial media platformalari yordamida Trump butun halq bilan gaplasha olishi, yoki ular to’g’ri bo’lmagan ma’lumot tarqatishi orqali urushlarga sabab bo’lishi mumkin. Eng yomoni, algoritmlar endi bizni shaxsiyatimizni tabiat va tarbiya bilan birgalikda shakllantiradi.


Raqamli tartibning kelajagi quydagilarga bog’liq:

- Agar tex kompaniyalar hukumatlar bilan kelishib olsalar, masalan AQSH yoki Xitoy bilan, raqamli dunyo ikkiga bo’linib, raqamli sovuq urushga duch kelishimiz mumkin. Bu qanday bo’ladi, tasavvur ham qilolmayman

- Agar tex kompaniyalar, o’zlarining biznes modellarini saqlasalar, biz globallashuvning yangi shakliga ega bo’lishimiz mumkin. Bu - global raqamli tartib bo’ladi.

- Agar tex kompaniyalar hukumatdan kuchliroq bo’lib qolishsa, ular global miqyosda katta kuchga aylanib, “texno-qutbli” dunyoga olib kelishi mumkin. Bu esa cheksiz imkoniyatlarni yoki erkinlikni yo’qotishni anglatadi.


TAD degan tashkilot bor. Asosan konferensiyalar o’tkazish va qiziq suhbatlar, podkastlar tashkil qilish bilan shug’ullanadi. Odatda bu tashkilotda juda yaxshi “speaker” lar bo’ladi.

Siyosat va IT haqidagi qiziq chiqishni ko’rib qoldim, siz ham bir qiziqib ko’ring:

https://www.youtube.com/watch?v=uiUPD-z9DTg


Idempotent kalitlar haqida

Muhum nuqtalarda, client tarafidan keladigan bir xil requestlarni qayta va qayta ushlab, bir xil ishni takrorlamaslik uchun, har requestni unique ekanini validate qilish kerak va buning uchun idempotencyKey degan tushuncha ishlatilishi kerak bo’ladi.

idempotencyKey unique bo’lishi kerak va har requestda client tomonidan u yangilanishi kerak.

Masalan, loyihada to’lov qismi mavjud va To’lash tugmasi qayta bosilganda, nimadur xatolik bilan keyingi sahifaga o’tmay qolishi mumkin, shu vaqtda mijoz uni qayta va qayta bosishi mumkin. Shunda siz qayta va qayta to’lov qilmasligingiz uchun har bir requestni unique ekanligini taminlashingiz kerak. Ana shunday hollar uchun idempotencyKey qulay.

Mana bu yerda yozishlaricha, Nemis soliq idorasidan 1700 ta xat olgan :)))

Shuninig uchun to’g’ri idempotencyKey ishlatish juda muhum 😉️️️️️️

@fnematov_blog


PHP 8.4 release bo’ldi.

Yangiliklar:

- Property hooks. C# da bor edi bu narsa, getter/setter larni, propertyni o’ziga yozib ketish:

php < 8.4

class Test
{

public function __construct(
private string $phpVersion,
) {}

public function getPhpVersion()
{
return $this->phpVersion;
}

public function setPhpVersion(string $version)
{
$this->phpVersion = $version;
}
}


php 8.4

class Test
{
public string $phpVersion
{
get => $this->phpVersion;
set (string $version) {
$this->version = $version;
}
}
}


- Asymmetric Visibility. Swiftda bor edi bu feature. Bu imkoniyat sizga o’zgaruvchini kim o’qiy olishi va kim o’zgartira olishini boshqarish imkonini osonlashtirib beradi.

php < 8.4

class Test
{
public string $version = '8.3';
}

$test = new Test();
var_dump($test->version); // string(3) "8.3"
$test->version = 'PHP 8.4'; // No error


php 8.4

class Test
{
public private(set) string $version = '8.4';
}

$test = new Test();
var_dump($test->version); // string(3) "8.4"
$test->version = 'PHP 8.3'; // Visibility error


- Deprecated attribute. Eskirgan property, method yoki classlarga shu attribute ishlatilinsa, bu uni eskirganini bildiradi va dasturchiga ogohlantirish beradi.

- class obektini yaratib qavssiz methodni chaqirish: new MyClass()->method(). Javada ko’rgandim bu narsani juda qulaylik beradi:

php < 8.4

var_dump((new Test())->getPhpVersion());


php 8.4

var_dump(new Test()->getVersion());


- Yangi array_* funksiyalar: array_find(), array_find_key(), array_any(), va array_all()


Qolgan yangiliklarni shu yerda o’qishingiz mumkin: https://www.php.net/releases/8.4/en.php


@fnematov_blog






Mana bu yerda Aziz Rahimov juda yaxshi mavzu haqida yoziptilar.

Rostdan ham ingliz tili juda muhum darajaga chiqdi.

Man ayniqsa dasturchi bo'lishka harakat qilayotgan va ingliz tili haqida qayg'urmayotgan yoshlarga hayron qolaman.

Xozirgi kunda eng baland oyliklarni xalqaro kompaniyalar taklif qilishyapti. Ularga esa ingliz tili shunchaki must have.

Shuning uchun ingliz tilini o'rganing, misli ko'rilmagan imkoniyatlar ochiladi, aql bovar qilmas bilim manbaalariga ega bo'lasiz!


@fnematov_blog


Ya’ni:

🎯️️️️ Kichik scope class/methodlar uchun - Uzun nomlar ishlatilinadi

🎯️️️️ Keng scope class/methodlar uchun - Qisqa nomlar ishlatilinadi

🎯️️️️ Kichik scope o’zgaruvchi va parametrlar uchun - Qisqa nomlar ishlatilinadi

🎯️️️️ Keng scope o’zgaruvchilar va parametrlar uchun - Uzun nomlar ishlatilinadi

#clean_code

@fnematov_blog


Scope.

Bu class, method, variable yoki property larni qanchalik darajada keng ishlatilinishini anglatadi.

Ya’ni deylik BaseModel degan model class bor, bunda scope keng, Chunki bu model juda kop joyda ishlatilinadi.

Yoki masalan, StripeChargePaymentRequest degan DTO (Data Transfer Object) class bor, buni scope hajmi juda kichkina, chunki bu aynan ma’lum bir joyda ishlatilinadi holos.


Demak scope deganda biz dasturlashdagi ma’lum bir funksiya bajaruvchilarining qanchalik keng ko’lamda ishlatilinishini tushunamiz ekan.

Dasturlashda nomlash aynan scopega bog’liq.

#clean_code

@fnematov_blog


Clean Code. Naming (Nomlash)

Kompyuter uchun genymdhms va generateTimeStamp degan so’zlar bir xil, Lekin insonlar uchun unday emas 😊️️️️️️

Nomlashdagi qoidalar:

1. Nom sizga 3 ta narsani aytishi kerak: nima uchun mavjudligini, vazifasi nima ekanini va qanday ishlatishni. Agar nomga comment (sharh) yozish kerak bo’lsa unda maqsadni ko’rsatish shart emas.

2. Qidirishka oson nomlardan foydalaning. Ya’ni siz nomlagan funksiya yoki o’zgaruvchi odatiy so’zlardan foydalanilgan bo’lsin. Bitta so’zli nomlar FAQAT metod ichidagi local o’zgaruvchilarda ishlatilinishi kerak.

3. Ko’dlamang. Ya’ni qandaydur ko’dlash so’zlar yoki prefix lardan qoching

4. Bir so’z, bir ma’no. Abstraksiyadan qochish uchun faqat bitta ma’noni beradigan so’zlardan foydalaning.

5. Ma’noli farqlarga e’tibor bering. Ya’ni imloni o’zgartirmang. Chunki nom allaqachon boshqalar tomonidan ishlatilingan bo’lishi mumkin.

6. Talaffuz qilish oson so’zlardan foydalaning. Ya’ni genymdhms bilan generateTimeStamp o’rtasida talaffuzda katta farq bor.

#clean_code

@fnematov_blog


Sinab ko’ramiz, mening oxirgi proektimdagi kodlarim…
Опрос
  •   Focused
  •   DRY qoidalariga mos keladi
  •   KISS qoidalariga mos keladi
  •   Extendable - kengaytirish oson
  •   Minimal bog’liqliklar (dependencies) bilan
  •   Test yozilgan
  •   Expressive - tushunarli nomlangan
  •   Well thought out - Yaxshi o’ylangan
7 голосов


Aslida Clean Code nimani anglatadi?

🎯 Focused - Markazlashtirilgan desak ham bo’ladi. Ya’ni aynan bir vazifaga qaratilingan bo’lishi kerak. Aniq bir maqsad uchun xizmat qilishi kerak

🎯 Nonredundant - DRY (Don’t repeat yourself) qoidasiga to’liq amal qilingan holda yozilishi kerak. Bu degani kodda bir xil yoki o’xshash vazifani bajaruvchi takrornaladigan ko’dlar bo’lmasligi kerak

🎯️️️️ Pleasant - Kod huddi bir ertak kitobni o’qib maza qilib tushungandak, tushunarli bo’lishi kerak. KISS (Keep it Simpl, Stupid) qoidasiga amal qilgan holda, sodda va tushunarli bo’lishi kerak

🎯️️️️ Easily Extended - Kengaytirish uchun oson. Bunda o’zidan boshqa dasturchilar qanday o’ylashlarini hisobga olgan holda, ular uchun ham tushunarli yozilgan bo’lishi kerak.

🎯️️️️ Minimal Dependencies - Minimal bog’liqliklar. Ya’ni kod boshqa service yoki xizmatlarga bog’liqligi minimal darajada bo’lishi kerak.

🎯️️️️ Tests - Toza kodda doim test bo’ladi

🎯️️️️ Expressive - To’liq ifodalangan ya’ni klass, metod yoki o’zgaruvchilar tushunish uchun qulay nomlangan bo’lishi kerak

🎯️️️️ Well thought out - Yaxshi o’ylangan. Ya’ni uni tushunish uchun dasturchilar ko’p vaqt sarflashi kerak emas, oson tushuna olishlari kerak.

#clean_code

@fnematov_blog


Hadeb Project management haqida gaplashurmasdan, dasturlash haqidayam gaplashib tursak, nima dedingizlar? 🙂


Bugun bir oz Clean Code (Toza kod) haqida gaplashamiz.

Clean Code - The only way to make the deadline - the only way to go fast - is to keep the code as clean as possible at all times. (Robert C. Martin, Clean Code)

Clean Code - yaxshiroq, tezroq va sifatliroq loyihani yetkazib beradi.

Clean Code deganda nimani tushunamiz? Clean code nimani anglatadi?

Clead Code bu:

✅ o’qish uchun
✅ tushunish uchun
✅ qo’llab quvvatlash (davom ettirish) uchun
✅ nima qidirayotkaningizni topish uchun
✅ o’zgarishlarni kiritish uchun
✅ tekshirish (test) uchun

OSON bo’lishi kerak.

#clean_code

@fnematov_blog


Scope haqida yozganimni o’qib ko’rsam, juda tushunarli bo’lmagan ekan :))

Shuning uchun soddaroq tushuntirishga harakat qilaman.

Scope - bu so’zni o’zbekcha to’g’ridan to’g’ri tarjimasi ko’lam ekan. Endi buni soddaroq qilib tushuntiraman. Scope bu proekt boshlanishidan oldin tuziladigan reja.

Ya’ni tasavvur qiling, siz Super Ad deb nomlangan marketing (SEO, SMM ishlarini qiladigan) firmada ishlaysiz. Va loyiha keldi, ComapnyA ga SEO va SMM xizmatlari kerak. “Ok, bajaramiz, qani boshladik” - deb ishni boshlashdan oldin, albatta uni xujjatlashtirish kerak bo’ladi. Demak mana shu jarayon yani xujjatlashtirish, Scope deb ataladi ekan.

Hosh, Scope nima ekanini tushundik, endi unda nimalar bo’ladi?

1. Dastlab, albatta kirish qismi bo’lishi kerak. Ya’ni bu loyiha nima o’zi, kim uchun qilinyapti va undagi stakeholders (manfaatdor tomonlar) kimlar ekanligi yoziladi.

2. Undan so’ng esa, Project Scope tayorlanadi. Scope ichida Scope :)). Bunda loyihadagi requirementlar yoziladi. Ya’ni ma’salan, loyiha izlanishni o’z ichiga olishi (chunki unikal seo kontent yozish uchun albatta izlanish kerak), yozish yoki Suniy intellekt yordamida maqolalar chop etishning afzalliklari va kamchiliklari yoki bo’lmasam qidiruv tizimlarini optimizatsiya qilish uchun nimalar qilish kerakligi va ho kazo. Va oxirida, Super Ad va CompanyA rahbarlari bu materiallar bilan tanishib chiqadi va natijani falon sanada ko’rib chiqishi mumkinligi yoziladi.

3. Keyingi bo’lim bu Deliverables deb ataladi. Ya’ni bu yetkazib beriladigan mahsulot nima va qanday bo’lishi haqida yoziladi. Masalan deylik, falon falon kalit so’zlar bo’yicha qidiruv qilinganda CompanyA web sahifasi qidiruv natijalarining top 5 talik ichida bo’lishi kerak yoki falon sanaga qadar web sahifada deylik 6 ta marketing mavzusida unikal maqola chop etilishi kerakligi va ho kazolar.

4. Bu qism Acceptance criteria deb nomlanadi. Ya’ni loyiha muvaffaqiyatli bo’lganligini bildiradigan muhum elementlar yoziladi. Masalan yuqorida aytganim qidiruv natijasida top 10 talikda web sahifa paydo bo’lishi, yoki korxona haqida bir nechta top sotsial sahifalarda reklamalar berilgani va ho kazolar.

5. Exclusion - bunda loyihada qanday elementlar kiritilmasligini yoziladi. Masalan marketing loyihani bajarishda video fayl tayorlash yoki deylik rasmlarni montaj qilish orqali reklama postlar tayorlash kirmaydi.

6. Constraints - Bu proektga qattiq chegaralar qo’yish uchun ishlatilinadi. Deylik, deadline ya’ni vaqt chegarasi. Masalan bu ishlarning barchasi 15-mar 2025 yilga qadar bajarilishi kerakligi yoki bo’lmasam byudjet chegarasi masalan sarf qilinadigan xarajatlar 5000$ dan oshib ketmasligi kerakligi va ho kazolar


Yuqoridagilarni qaysidurlari boshqa loyihalarda bo’lmasligi mumkin. Bu o’zgartirish up to you :))

Lekin, bularni hammasini yozib, qog’ozga chiqarib mijozga va rahbarga imzolatish kerak. Bo’lmasam loyihada muammo chiqishi mumkin (deyarli aniq chiqadi 😊️️️️️️)

#project_management

@fnematov_blog

Показано 20 последних публикаций.