<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Muhammadislom Xojimuhammedov</title><generator>teletype.in</generator><description><![CDATA[Muhammadislom Xojimuhammedov]]></description><image><url>https://img1.teletype.in/files/c4/90/c4903e25-ea17-48f8-938d-fed05d23c704.png</url><title>Muhammadislom Xojimuhammedov</title><link>https://teletype.in/@muhammadislom</link></image><link>https://teletype.in/@muhammadislom?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/muhammadislom?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/muhammadislom?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 11 Oct 2026 09:22:37 GMT</pubDate><lastBuildDate>Sun, 11 Oct 2026 09:22:37 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/0XC9EvwMVez</guid><link>https://teletype.in/@muhammadislom/0XC9EvwMVez?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/0XC9EvwMVez?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>Frontend Level Up</title><pubDate>Sun, 15 Jun 2025 10:50:24 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/6e/d5/6ed5d9b0-3eaf-4c29-ba14-9f095ec982e6.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/ba/7d/ba7de531-576c-4dd6-b99f-93ace5b2479e.jpeg"></img>Frontend Level Up kimlar uchun?]]></description><content:encoded><![CDATA[
  <h2 id="twqK">React</h2>
  <h2 id="UOwR">React Hooks</h2>
  <h2 id="NYv6">React Context</h2>
  <h2 id="btja">React lifecycle</h2>
  <h2 id="M6DK">API</h2>
  <h2 id="Umqq">State management (Redux, Redux toolkit)</h2>
  <h2 id="dAtG">React query</h2>
  <h2 id="gCj1"><a href="http://Socket.io" target="_blank">Socket.io</a></h2>
  <h2 id="3UTe">Frontend Architecture</h2>
  <h2 id="HCJc">Frontend Optimization</h2>
  <h2 id="rDHR">Nextjs</h2>
  <h2 id="3KNm">Freelance</h2>
  <p id="Zndi"></p>
  <p id="iuGE"><strong>Frontend Level Up kimlar uchun?</strong></p>
  <p id="cK0x">Frontend yo&#x27;nalishi bo&#x27;yicha real loyihalar orqali tajribasini oshirmoqchi bo&#x27;lganlar va portfoliosini kuchaytirib olmoqchi bo&#x27;lganlar dasturchilar uchun. Faqat darslar bo&#x27;ladimi? Yo&#x27;q albatta, bu <strong>2 oylik ishlab chiqilgan dastur</strong> va bunda siz 5 tagacha real loyihalar qilasiz, suhbatlarga tayyorgarlik ko&#x27;rasiz va albatta yuqorida ko&#x27;rsatilgan mavzular bo&#x27;yicha darslar o&#x27;tiladi.<br /></p>
  <p id="qRTv">Freelance asosida ishlashni ham o&#x27;rganasiz, loyihalarni qayerdan olish kerakligi va mijozlar bilan qanaqa ishlash kerakligi. O&#x27;zimning freelance loyihalarimni ushbu Frontend Level Up da o&#x27;qiganlar bilan birga qilishimiz mumkin. Bu uchun unga haq to&#x27;lanadi albatta.<br /><br />Bu bepul bo&#x27;ladimi? Yo&#x27;q bu 2 oylik ishlab chiqilgan dastur bo&#x27;lganligi sabab to&#x27;lovi mavjud va har oy 670 mingdan. Umumiy to&#x27;lov: 1mln 340 ming so&#x27;m, agar siz umumiy bitta to&#x27;lov qilmoqchi bo&#x27;lsangiz 10% chegirmaga ega bo&#x27;lasiz.<br /></p>
  <p id="2QK4">Hozirgi o&#x27;qiyotgan o&#x27;quvchilarning natijalari:</p>
  <figure id="Kfcu" class="m_original">
    <img src="https://img4.teletype.in/files/ba/7d/ba7de531-576c-4dd6-b99f-93ace5b2479e.jpeg" width="853" />
  </figure>
  <figure id="almK" class="m_original">
    <img src="https://img4.teletype.in/files/74/39/7439b655-f947-4b18-95cb-e3e4063cfde7.jpeg" width="652" />
  </figure>
  <p id="rxjn">Batafsil: <a href="https://t.me/Muhammadislom_Dev/1733" target="_blank">https://t.me/Muhammadislom_Dev/1733</a></p>
  <figure id="KjMd">
    <iframe src="https://t.me/Muhammadislom_Dev/1748?embed=1&userpic=1"></iframe>
  </figure>
  <p id="bqyq">Sizni natijangizni kafolatlayman faqat 2 oy davomida barcha aytilganlarni qilsangiz.</p>
  <p id="fxjZ">Bog&#x27;lanish uchun: @muhammadislomm</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/4ga_vBmFQfx</guid><link>https://teletype.in/@muhammadislom/4ga_vBmFQfx?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/4ga_vBmFQfx?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>Classic Architecture</title><pubDate>Tue, 14 Jan 2025 15:19:19 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/9a/58/9a589d2f-0ff1-4ec4-8c7e-57afab106633.png"></img>Arxitektura har bir dasturchi loyihani boshlayotkanida muhim omil hisoblanadi. Bu albatta loyihani boshqa dasturchilar tomonidan davom ettirilganida qulay va oson bo'lishini ta'minlab beradi. Arxitekturalarni bir necha xil turlari bor masalan, Simple Modular Architecture, Classic Architecture va hk.]]></description><content:encoded><![CDATA[
  <p id="AruG">Arxitektura har bir dasturchi loyihani boshlayotkanida muhim omil hisoblanadi. Bu albatta loyihani boshqa dasturchilar tomonidan davom ettirilganida qulay va oson bo&#x27;lishini ta&#x27;minlab beradi. Arxitekturalarni bir necha xil turlari bor masalan, Simple Modular Architecture, Classic Architecture va hk. </p>
  <p id="lWd0">Bu maqola orqali Classic Architecture haqida yozmoqchiman. Bu arxitektura orqali o&#x27;zim qilgan va qilmoqchi bo&#x27;lgan barcha loyihalarimda foydalanaman. Ixtiyoriy Frameworkda foydalanish mumkin, React yoki Vue orqali bemalol foydalanishingiz mumkin.</p>
  <p id="76nO"></p>
  <p id="wDbj"><strong>Classic Architecture</strong> hali ham eng ko‘p qo‘llaniladigan va ishonchli yondashuvlardan biri hisoblanadi. Ushbu arxitektura yondashuvi loyihani ishlab chiqishda sodda va tartibli tuzilmani ta&#x27;minlaydi. Chunki bunday arxitektura odatda barcha komponentlarni bir joyda birlashtirishga asoslangan. Ko‘pchiligimiz ushbu yondashuv asosidagi loyihalarda ishlaganmiz.</p>
  <p id="JF0Y"></p>
  <h3 id="8WFc"><strong>Asosiy Afzalliklari</strong></h3>
  <ol id="AujL">
    <li id="d2eV"><strong>Sodda va tushunarli tuzilma</strong><br />Classic Architecture odatda oddiy loyiha tuzilishiga ega bo‘lib, yangi boshlovchilar va kichik jamoalar uchun tez o‘zlashtirilishi mumkin. Bu arxitektura kodni boshqarish va tushunishni osonlashtiradi.</li>
    <li id="n7QE"><strong>Tezroq ishlab chiqish</strong><br />Barcha komponentlar bir joyda bo‘lganligi sababli, dasturiy ta&#x27;minotni ishlab chiqish jarayoni tezlashadi. Ayniqsa, kichik hajmdagi loyihalarda bu juda samarali.</li>
    <li id="SqMd"><strong>Tezkor o‘zgarishlar</strong><br />Classic Architecture&#x27;da o‘zgarishlar kiritish oson, chunki barcha komponentlar bir-biriga yaqin bog‘langan.</li>
  </ol>
  <p id="xowL"></p>
  <p id="Bi1a"></p>
  <figure id="NGO3" class="m_original">
    <img src="https://img2.teletype.in/files/9a/58/9a589d2f-0ff1-4ec4-8c7e-57afab106633.png" width="524" />
  </figure>
  <p id="2peX">Rasmda ko&#x27;rib turganizdek o&#x27;zim tuzgan real loyihaning arxitekturasi. Loyiha TypeScriptda qilinganligi sabab qo&#x27;shimcha folderlar qo&#x27;shish talab qilingan, loyihaning katta kichikligiga qarab, loyihadagi o&#x27;zgaruvchilarni saqlash va fakeDatalar uchun ham alohida folder ochilgan.</p>
  <p id="1ABZ">/assets bu qismida loyihadagi /icons, /fonts, /images folderlari tashkil qilingan.</p>
  <p id="14Dt">/components bu folderda barcha o&#x27;zgaruvchi componentlar joylashgan.</p>
  <p id="l2UU">/constants loyihadagi o&#x27;zgaruvchilarni shu yerda saqlab olingan. Masalan API uchun url, key, pagination_size, pagination_count va boshqa o&#x27;zgaruvchilarni shunday folder ichida saqlash mumkin.</p>
  <p id="h9sq">/hooks har bir loyihada API bilan ishlaganida dasturchi tomonidan ko&#x27;p joylarda foydalanadigan funksiyalarni hook sifatida qilib olinadi. Menda ushbu folderda CRUD uchun ishlab chiqilgan funksiyalar mavjud.</p>
  <p id="GECo">/pages bu folderda loyihaning barcha sahifalar jamlanmasi.</p>
  <p id="cj20">/router public va private routelar joylashgan.</p>
  <p id="xshO">/types loyiha TypeScriptda qilinganligi sabab typelar uchun bu folder tashkil qilingan.</p>
  <p id="Pggh"></p>
  <p id="nbFf">Men qilgan real projectdagi arxitektura shunday ko&#x27;rinishda, bu arxitekturada hamma components ishlab chiqilgan va ularni props shaklida boshqarish mumkin. Odatda yangi boshlagan dasturchilar folderlar joylashuvini qilishda qiynalishadi, shaxsan o&#x27;zimda bunday holat bo&#x27;lgan.</p>
  <p id="YQEb"></p>
  <p id="AF8n"><a href="https://t.me/Muhammadislom_Dev" target="_blank">https://t.me/Muhammadislom_Dev</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/XPnaG3pHT1w</guid><link>https://teletype.in/@muhammadislom/XPnaG3pHT1w?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/XPnaG3pHT1w?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>Map, Set, WeakMap, WeakSet nima?</title><pubDate>Mon, 13 Jan 2025 06:26:30 GMT</pubDate><description><![CDATA[Map, Set, WeakMap, WeakSet JavaScript data strukturalari hisoblanadi va bularning tagi object hisoblanadi. Bularni ishlashini birma bir ko'rib chiqamiz.]]></description><content:encoded><![CDATA[
  <p id="1HlC">Map, Set, WeakMap, WeakSet JavaScript data strukturalari hisoblanadi va bularning tagi object hisoblanadi. Bularni ishlashini birma bir ko&#x27;rib chiqamiz.</p>
  <p id="dso1"><strong>Map</strong> - bu JavaScript-da kalit-qiymat (key-value) juftlarini saqlash uchun ishlatiladigan ma&#x27;lumotlar tuzilmasidir. <strong>Map</strong> bilan ishlashning asosiy afzalliklari quyidagilardir:</p>
  <ol id="Euo8">
    <li id="TYqz"><strong>Har qanday turdagi kalit (key)</strong>: Obyektlar bilan ishlaganda, faqat <code>string</code> yoki <code>symbol</code> tipidagi qiymatlar kalit bo&#x27;lishi mumkin. Ammo <strong>Map</strong> har qanday turdagi kalitlardan foydalanish imkonini beradi. Masalan, <code>string</code>, <code>number</code>, yoki boshqa obyektni ham kalit sifatida ishlatish mumkin.</li>
    <li id="CVMl"><strong>Qo&#x27;shimcha funksionallar</strong>: <strong>Map</strong> obyektlarga nisbatan qulayroq metodlarni taqdim etadi, masalan, <code>size</code> xossasi orqali o&#x27;lchamini aniqlash, iteratsiya qilish, va boshqalar.</li>
  </ol>
  <pre id="GW9e">const map = new Map();
// String tipidagi kalit
map.set(&#x27;name&#x27;, &#x27;Muhammadislom&#x27;);

// Number tipidagi kalit
map.set(42, &#x27;SchoolNumber&#x27;);

// Obyektni kalit sifatida
const keyObject = { id: 1 };
map.set(keyObject, &#x27;Object Key&#x27;);
</pre>
  <p id="ABhV"><strong>Set</strong> - bu JavaScript-dagi ma&#x27;lumotlar tuzilmasi bo&#x27;lib, u <strong>takrorlanmaydigan (unique)</strong> qiymatlar to&#x27;plamini saqlash uchun ishlatiladi. <strong>Set</strong> obyektlardan farqli ravishda, kalit-qiymat juftlarini saqlamaydi, faqat qiymatlar kolleksiyasini saqlaydi.</p>
  <h3 id="smE6"><strong>Set&#x27;ning Asosiy Xususiyatlari</strong></h3>
  <ol id="LOnr">
    <li id="mqsM"><strong>Takrorlanmas qiymatlar</strong>: Set ichida bir xil qiymat bir necha marta bo&#x27;lishi mumkin emas. Agar bir xil qiymat qo&#x27;shishga urinsangiz, u qo&#x27;shilmaydi.</li>
    <li id="mDMX"><strong>Qiymatlar tartibi</strong>: Set ichida saqlangan qiymatlar qo&#x27;shilgan tartibda saqlanadi.</li>
    <li id="3Yvi"><strong>Kalitlar yo&#x27;q</strong>: Set&#x27;da kalitlar ishlatilmaydi, faqat qiymatlar mavjud.</li>
    <li id="eF60"><strong>Qiymat tipi</strong>: Har qanday qiymat tipi (<code>number</code>, <code>string</code>, <code>object</code>, va boshqalar) Set ichida saqlanishi mumkin.</li>
  </ol>
  <pre id="9D6B">const set = new Set();
set.add(1);       // Number
set.add(&#x27;Hello World&#x27;); // String
set.add({ id: 1 }); // Object

// Takroriy qiymat qo&#x27;shilmaydi
set.add(1); // Bu qiymat e&#x27;tiborga olinmaydi</pre>
  <p id="lFdR"><strong>WeakMap</strong> - bu JavaScript-da <code>key-value</code> juftlarini saqlash uchun ishlatiladigan maxsus ma&#x27;lumotlar tuzilmasi. U oddiy <strong>Map</strong> ga o&#x27;xshab ishlaydi, ammo <strong>WeakMap</strong> o&#x27;ziga xos xususiyatlarga ega:</p>
  <p id="en04">Albatta! Quyida <strong>WeakMap</strong> haqida tushunchani to&#x27;liqroq va batafsilroq yozib chiqaman:</p>
  <hr />
  <h3 id="FHY8"><strong>WeakMap</strong></h3>
  <p id="4VnX"><strong>WeakMap</strong> - bu JavaScript-da <code>key-value</code> juftlarini saqlash uchun ishlatiladigan maxsus ma&#x27;lumotlar tuzilmasi. U oddiy <strong>Map</strong> ga o&#x27;xshab ishlaydi, ammo <strong>WeakMap</strong> o&#x27;ziga xos xususiyatlarga ega:</p>
  <hr />
  <h3 id="JKaS"><strong>WeakMap&#x27;ning Asosiy Xususiyatlari</strong></h3>
  <ol id="wvsf">
    <li id="3whu"><strong>Kalit faqat obyekt bo&#x27;lishi mumkin</strong>:<br />WeakMap ichidagi har bir kalit (<code>key</code>) faqat obyekt (<code>object</code>) bo&#x27;lishi shart. Oddiy qiymatlar (<code>string</code>, <code>number</code>, va boshqalar) kalit sifatida ishlatilmaydi.</li>
    <li id="Dp8i"><strong>Garbage Collection bilan ishlash</strong>:<br />WeakMap-da saqlangan obyektlar boshqa joydan murojaat qilinmasa, avtomatik ravishda <strong>garbage collection</strong> (xotira tozalash) jarayoniga kiritiladi. Bu esa xotirani samarali boshqarishga yordam beradi.</li>
    <li id="Vsg9"><strong>Iteration imkoniyati yo&#x27;q</strong>:<br />WeakMap ichidagi ma&#x27;lumotlarni iteratsiya qilib bo&#x27;lmaydi. Chunki uning asosiy maqsadi xotirani boshqarishni osonlashtirish bo&#x27;lib, iteratsiya qilish garbage collection jarayoniga xalaqit berishi mumkin.</li>
    <li id="9gmY"><strong>O’lchamni bilib bo’lmaydi</strong>:<br />WeakMap ichida nechta element borligini aniqlash imkoniyati yo&#x27;q (<code>size</code> xossasi yo&#x27;q).</li>
  </ol>
  <pre id="ZgoB">const weakMap = new WeakMap();
const key1 = { name: &#x27;Object One&#x27; };
const key2 = { name: &#x27;Object Two&#x27; };

weakMap.set(key1, &#x27;Value for key one&#x27;);
weakMap.set(key2, &#x27;Value for key two&#x27;);</pre>
  <p id="0LRx"><strong>WeakSet</strong> - bu JavaScript&#x27;dagi maxsus ma&#x27;lumotlar tuzilmasi bo&#x27;lib, u <strong>takrorlanmaydigan obyektlar to&#x27;plamini</strong> saqlash uchun ishlatiladi. Oddiy <strong>Set</strong> ga o&#x27;xshab ishlaydi, ammo <strong>WeakSet</strong> o&#x27;ziga xos xususiyatlarga ega.</p>
  <h3 id="5h2F"><strong>WeakSet&#x27;ning Asosiy Xususiyatlari</strong></h3>
  <ol id="6XnN">
    <li id="xkk1"><strong>Faqat obyekt qiymatlari</strong>:<br />WeakSet ichida faqat obyektlar saqlanishi mumkin (<code>number</code>, <code>string</code>, yoki boshqa primitiv qiymatlar ishlatilinmaydi).</li>
    <li id="ZCzK"><strong>Takrorlanmas qiymatlar</strong>:<br />WeakSet ichida bir xil obyektni ikki marta qo&#x27;shib ko&#x27;rmoqchi bo&#x27;lsangiz, u faqat bir marta saqlanadi.</li>
    <li id="7l20"><strong>Garbage Collection bilan ishlash</strong>:<br />WeakSet ichidagi obyektlar boshqa joydan murojaat qilinmasa, ular avtomatik ravishda <strong>garbage collection</strong> (xotira tozalash) jarayoniga kiritiladi.</li>
    <li id="kOcv"><strong>Iteration imkoniyati yo&#x27;q</strong>:<br />WeakSet ichidagi obyektlarni iteratsiya qilib bo&#x27;lmaydi (<code>forEach</code> yoki <code>for...of</code> ishlamaydi).</li>
    <li id="8SB4"><strong>O’lchamni bilish imkoni yo&#x27;q</strong>:<br />WeakSet ichidagi elementlar sonini bilish uchun <code>size</code> xossasi mavjud emas.</li>
  </ol>
  <pre id="Ho8J">const weakSet = new WeakSet();
const obj1 = { name: &#x27;Object 1&#x27; };
const obj2 = { name: &#x27;Object 2&#x27; };

weakSet.add(obj1);
weakSet.add(obj2);

// Takroriy obyekt qo&#x27;shilmaydi
weakSet.add(obj1); // Bu qiymat qayta qo&#x27;shilmaydi</pre>
  <p id="12Cs"></p>
  <p id="dIZB"></p>
  <p id="1pxD">Bu savol turi interviewni topshirish leveliga qarab chuqurroq kirishi mumkin interview oluvchi. Xato va kamchiliklari bo&#x27;lsa uzr so&#x27;rayman! Share qilinganida <strong>mualliflik </strong>huquqiga amal qilinsin!</p>
  <p id="acV7"></p>
  <p id="cnvv"><a href="https://t.me/Muhammadislom_Dev" target="_blank">Muhammadislom_Dev</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/D-uWBZxBL0n</guid><link>https://teletype.in/@muhammadislom/D-uWBZxBL0n?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/D-uWBZxBL0n?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>State management in Frontend</title><pubDate>Tue, 07 Jan 2025 14:55:45 GMT</pubDate><description><![CDATA[Frontend dasturlashda state management — bu dasturni boshqarish jarayoni. Bu jarayon foydalanuvchining interfeys bilan o‘zaro aloqasini sinxronlashtirishda muhim rol o‘ynaydi. Birinchi state nima ekanini va uni boshqarish usullarini ko'rib chiqamiz.]]></description><content:encoded><![CDATA[
  <p id="yeCd">Frontend dasturlashda <strong>state management</strong> — bu dasturni boshqarish jarayoni. Bu jarayon foydalanuvchining interfeys bilan o‘zaro aloqasini sinxronlashtirishda muhim rol o‘ynaydi. Birinchi state nima ekanini va uni boshqarish usullarini ko&#x27;rib chiqamiz.</p>
  <h2 id="tToV"><strong>State nima?</strong></h2>
  <p id="uGdO">Frontendda <strong>state</strong> — bu dasturdagi ma&#x27;lumotlarning o&#x27;zgaruvchan holati. Masalan:</p>
  <ul id="HlnU">
    <li id="0R8Z">Foydalanuvchining login holati (kirgan yoki chiqib ketgan).</li>
    <li id="OAjb">Korzinkadagi mahsulotlar ro&#x27;yxati.</li>
    <li id="cC6r">Formadagi foydalanuvchi tomonidan kiritilgan ma&#x27;lumotlar.</li>
  </ul>
  <p id="wMVQ">State-ni boshqarish to&#x27;g&#x27;ri ishlatilinmasa, dastur ishlashida muammolar yuzaga kelishi mumkin, masalan:</p>
  <ul id="H3VE">
    <li id="lvk5">Ma&#x27;lumotlar sinxronligi buzilishi.</li>
    <li id="tphV">Kutilmagan xatoliklar.</li>
  </ul>
  <h2 id="4mYR"><strong>State Management turlari</strong></h2>
  <p id="UN9h">State boshqarishni ikki asosiy turga ajratish mumkin:</p>
  <h3 id="EQ3M">1. Local State</h3>
  <p id="do92">Bu komponent ichida saqlanadigan va boshqariladigan state. Odatda kichik loyihalar uchun yetarli bo‘ladi. Misol uchun, React’da <code>useState</code> va <code>useReducer</code> yordamida local state boshqariladi. </p>
  <pre id="e7VD">import React, { useState } from &#x27;react&#x27;;

function Counter() {
  const [count, setCount] = useState(0);

  return (
    &lt;div&gt;
      &lt;h1&gt;{count}&lt;/h1&gt;
      &lt;button onClick={() =&gt; setCount(count + 1)}&gt;Click&lt;/button&gt;
    &lt;/div&gt;
  );
}
</pre>
  <p id="NeHs"></p>
  <h3 id="kz4l">2. Global State</h3>
  <p id="3Nhl">Bu bir nechta komponentlar orasida ma&#x27;lumot almashinadigan state. Katta loyihalarda global state boshqarish uchun maxsus kutubxonalardan foydalaniladi.</p>
  <p id="6gFq"><strong>Foydalanish hollari:</strong></p>
  <ul id="MxFv">
    <li id="gvn2">Foydalanuvchi ma&#x27;lumotlarini boshqarish (masalan, profil yoki autentifikatsiya holati).</li>
  </ul>
  <p id="xjVX">Global state boshqarish uchun mashhur kutubxonalar:</p>
  <ul id="tXCk">
    <li id="dnoG"><strong>Redux</strong></li>
    <li id="xBvB"><strong>MobX</strong></li>
    <li id="3FIo"><strong>Zustand</strong></li>
    <li id="8nRF"><strong>React Context API</strong></li>
  </ul>
  <p id="Rmhb"></p>
  <h3 id="DS79">Shaxsiy tajriba</h3>
  <p id="3h2j">Frontend dasturchi sifatida 3 yilga yaqin tajribamdan kelib chiqib, shu paytgacha <strong>State management</strong> uchun <em>Redux</em> va <em>React query</em> foydalanganman. Ko&#x27;pgina loyihalarni o&#x27;zim boshlaganimda React querydan foydalanaman.</p>
  <p id="4oC1">Redux, Redux toolkit bulardan foydalanmaysizmi degan savol bo&#x27;lishi mumkin?</p>
  <p id="BeM9">Bulardan foydalanish loyihani qurayotkan insonga bog&#x27;liq agar u shu tehnologiyalar asosida boshlasa ishni, loyiha yakunlaganiga qadar shundan foydalanadi Frontend dasturchilar. </p>
  <p id="qUuk"></p>
  <p id="e76M">React query yordamida o&#x27;zim katta projectlar uchun hook sifatida yaratib olaman har bir Create, Update, Delete, Get uchun ulardan birini namuma sifatida ko&#x27;rsatib o&#x27;taman.</p>
  <p id="qeHI"></p>
  <pre id="g3Jq">import { useMutation, useQueryClient } from &#x27;@tanstack/react-query&#x27;;
import { useTranslation } from &#x27;react-i18next&#x27;;
import { toast } from &#x27;react-toastify&#x27;;
import { request } from &#x27;services/request&#x27;;

const deleteRequest = (url) =&gt; request.delete(url);

const useDeleteQuery = ({ listKeyId }) =&gt; {
  const queryClient = useQueryClient();
  const { t } = useTranslation();

  const { mutate, isError, error, isLoading } = useMutation(
    ({ url }: { url }) =&gt; deleteRequest(url),
    {
      onSuccess: (data) =&gt; {
        toast.success(data?.data?.message || t(&#x27;SUCCESSFULLY DELETED&#x27;));

        if (listKeyId) {
          queryClient.invalidateQueries(listKeyId);
        }
      },
      onError: (error) =&gt; {
        toast.error(error?.response?.data?.error?.message || &#x27;ERROR&#x27;);
      }
    }
  );

  return {
    mutate,
    isError,
    error,
    isLoading
  };
};

export default useDeleteQuery;
</pre>
  <p id="VP2I">Namunada ko&#x27;rganizdek Loyihadagi Delete function uchun alohida <strong><em>useDeleteQuery</em></strong> funksiyasi yozilgan va u orqali istalgan joyda, <strong>URL</strong> va <strong>KEY</strong> berish orqali foydalanish mumkin.</p>
  <p id="Or0n"></p>
  <p id="Kgo6">Shu bilan ushbu mavzudagi postni yakunlamoqchiman. Xato va kamchiliklar bo&#x27;lsa uzr va men ham sizdek shu sohadagi o&#x27;rganuvchi insonman.</p>
  <p id="KP1B"></p>
  <p id="rP4w"><strong>Mualliflik huquqiga amal qilinsin!</strong></p>
  <p id="XjDB"></p>
  <p id="H1Rc"><a href="https://t.me/Muhammadislom_Dev" target="_blank">t.me/Muhammadislom_Dev</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/cB2QOnYsBtj</guid><link>https://teletype.in/@muhammadislom/cB2QOnYsBtj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/cB2QOnYsBtj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>Js Functions</title><pubDate>Mon, 06 Jan 2025 16:53:19 GMT</pubDate><description><![CDATA[Savol: JavaScriptda funksiyalarning qanday turlari mavjud? Deklaratsiya qilingan funksiya bilan ifoda qilingan funksiya (function expression) o'rtasidagi farq nima?]]></description><content:encoded><![CDATA[
  <h3 id="SMEb">1. Funksiyalarning turlari va ularning farqlari:</h3>
  <p id="4Y6x"><strong>Savol:</strong> JavaScriptda funksiyalarning qanday turlari mavjud? Deklaratsiya qilingan funksiya bilan ifoda qilingan funksiya (function expression) o&#x27;rtasidagi farq nima?</p>
  <p id="Z7fc"><strong>Javob:</strong> JavaScriptda asosiy ikki turdagi funksiyalar mavjud: deklaratsiya qilingan funksiyalar va ifoda qilingan funksiyalar.</p>
  <ul id="lA5H">
    <li id="SRA5"><strong>Deklaratsiya qilingan funksiya:</strong></li>
  </ul>
  <pre id="qRiS">
function sum(a, b) {
    return a + b;
}</pre>
  <p id="6vF2"></p>
  <p id="O6Ng">Bu funksiya hoisting deb ataladigan jarayon orqali funksiya e&#x27;lon qilingandan oldin ham chaqirilishi mumkin.</p>
  <ul id="CsDK">
    <li id="jKqL">Ifoda qilingan funksiya (function expression):</li>
  </ul>
  <p id="GQDQ">const sum = function(a, b) {</p>
  <p id="kWAe">return a + b;</p>
  <pre id="0Ldf">Bu funksiya e&#x27;lon qilingandan keyin chaqirilishi mumkin. Ifoda qilingan funksiyalar hoisting qilinmaydi.
</pre>
  <h3 id="DGzM">2. Arrow funksiyalari:</h3>
  <p id="jBX9"><strong>Savol:</strong> Arrow funksiyalari nima va ular qanday qo&#x27;llaniladi? Arrow funksiyalarining odatiy funksiyalardan asosiy farqlari nimalarda namoyon bo&#x27;ladi?</p>
  <p id="VoMe"><strong>Javob:</strong> Arrow funksiyalari qisqa va konsiz sintaksisga ega funksiyalardir va <code>this</code> kalit so&#x27;ziga bo&#x27;lgan aloqani o&#x27;zgartiradi.</p>
  <ul id="NlL5">
    <li id="yniN"><strong>Arrow funksiya:</strong></li>
  </ul>
  <p id="4aiI">const sum = (a, b) =&gt; a + b;Asosiy farqlar:</p>
  <ul id="N7t8">
    <li id="0rjU"><code>this</code> kalit so&#x27;zi o&#x27;zgarmaydi, ya&#x27;ni arrow funksiya yaratish vaqtida qiymatini saqlaydi.</li>
    <li id="IYgY">Arrow funksiyalari konstruktor sifatida ishlatilmaydi va <code>new</code> operatori bilan chaqirilmaydi.</li>
  </ul>
  <h3 id="sy07">3. Callback funksiyalari:</h3>
  <p id="FErD"><strong>Savol:</strong> Callback funksiyalari nima va ular qanday ishlaydi? Biror misol bilan callback funksiyasini tushuntirib bera olasizmi?</p>
  <p id="bClK"><strong>Javob:</strong> Callback funksiyalari boshqa funksiya tugallangandan keyin chaqiriladigan funksiyalardir.</p>
  <ul id="3OMx">
    <li id="FPOJ"><strong>Misol:</strong></li>
  </ul>
  <pre id="WCcZ">function fetchData(callback) {
   setTimeout(() =&gt; {
   callback(&#x27;Data fetched&#x27;);
   }, 2000);
}

function logData(data) {
    console.log(data);
}
fetchData(logData);
</pre>
  <p id="nRAE">Bu yerda <code>logData</code> funksiya <code>fetchData</code> funksiyasiga callback sifatida o&#x27;tkaziladi va setTimeout tugagandan keyin chaqiriladi.</p>
  <h3 id="8bgg">4. Asynchronous funksiyalari:</h3>
  <p id="0qiP"><strong>Savol:</strong> Asynchronous funksiyalari va promise&#x27;lar haqida tushuntirib bera olasizmi? Async/Await sintaksisini tushuntirib bera olasizmi va qachon qo&#x27;llaniladi?</p>
  <p id="PBz6"><strong>Javob:</strong> Asynchronous funksiyalar boshqa kod bajarilishi davomida boshlanadigan jarayonlarni bajarishga imkon beradi va natija tayyor bo&#x27;lganda keyin davom etadi.</p>
  <p id="FNRd"><strong>Promise:</strong></p>
  <pre id="8p2o">const fetchData = new Promise((resolve, reject) =&gt; {
   setTimeout(() =&gt; {
   resolve(&#x27;Data fetched&#x27;);
   }, 2000);
});
fetchData.then(data =&gt; console.log(data));</pre>
  <p id="h0Gd"><strong>Async/Await:</strong></p>
  <pre id="ud0j">async function getData() {
   const data = await fetchData;
   console.log(data);
}
getData();</pre>
  <p id="fBEj"><code>async</code> kalit so&#x27;zi funksiyani asinxron holga keltiradi, <code>await</code> esa promise natijasini kutib turadi.</p>
  <h3 id="gBFj">5. Higher-order funksiyalari:</h3>
  <p id="Sa1F"><strong>Savol:</strong> Higher-order funksiyalari nima va ular qanday ishlaydi? Biror misol bilan higher-order funksiyasini tushuntirib bera olasizmi?</p>
  <p id="5AT6"><strong>Javob:</strong> Higher-order funksiyalar boshqa funksiyalarni argument sifatida qabul qiladigan yoki funksiyani natija sifatida qaytaradigan funksiyalardir.</p>
  <ul id="69Ju">
    <li id="GXDp"><strong>Misol:</strong></li>
  </ul>
  <pre id="qcz2">function createMultiplier(multiplier) {
        return function(x) {
        return x * multiplier;
   }
}
const double = createMultiplier(2);
console.log(double(5)); // 10</pre>
  <p id="hQDW">Bu yerda <code>createMultiplier</code> higher-order funksiyasi bo&#x27;lib, funksiya qaytaradi.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/FnC4nwvtcos</guid><link>https://teletype.in/@muhammadislom/FnC4nwvtcos?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/FnC4nwvtcos?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>Socket.io</title><pubDate>Sat, 04 Jan 2025 15:11:03 GMT</pubDate><description><![CDATA[Socket.IO — bu Node.js va browserlar o'rtasida real vaqt rejimida ikki tomonlama aloqa o'rnatishga yordam beruvchi kutubxona desak ham bo'ladi. U WebSocket protokoli asosida ishlaydi, ammo undan tashqari boshqa transport vositalarini ham qo'llab-quvvatlaydi, bu esa uni yanada moslashuvchan qiladi.]]></description><content:encoded><![CDATA[
  <p id="Uz12">Socket.IO — bu Node.js va browserlar o&#x27;rtasida real vaqt rejimida ikki tomonlama aloqa o&#x27;rnatishga yordam beruvchi kutubxona desak ham bo&#x27;ladi. U <strong>WebSocket</strong> protokoli asosida ishlaydi, ammo undan tashqari boshqa transport vositalarini ham qo&#x27;llab-quvvatlaydi, bu esa uni yanada moslashuvchan qiladi.</p>
  <p id="xW1p"><strong>Asosiy xususiyatlari:</strong></p>
  <ol id="aD8z">
    <li id="hqMO"><strong>Ikki tomonlama aloqa</strong>: Ma&#x27;lumot server va mijoz o&#x27;rtasida bir vaqtda harakatlanishi mumkin.</li>
    <li id="mt8p"><strong>Transport fallback</strong>: Agar WebSocket qo&#x27;llab-quvvatlanmasa, HTTP polling kabi alternativ transport vositalariga o&#x27;tadi.</li>
    <li id="HGRT"><strong>Avtorizatsiya</strong>: Xavfsiz aloqani ta&#x27;minlash uchun autentifikatsiya mexanizmlarini qo&#x27;llab-quvvatlaydi.</li>
  </ol>
  <h3 id="k8CZ"><strong>Socket.IO Qanday Ishlaydi?</strong></h3>
  <p id="qKnq">Socket.IO ikkita asosiy qismini o&#x27;z ichiga oladi:</p>
  <ul id="KVoJ">
    <li id="jiBD"><strong>Server qismi</strong>: Bu server tomonida Node.js yordamida ishlaydi.</li>
    <li id="oxbC"><strong>Client qismi</strong>: Browser yoki JavaScript orqali ishlaydi. </li>
  </ul>
  <p id="nUuT">Aloqa quyidagi tarzda amalga oshadi:</p>
  <ol id="bcOk">
    <li id="ltFT"><strong>Mijoz ulanishi</strong>: Socket.IO avtomatik ravishda eng mos transport protokolini tanlaydi.</li>
    <li id="bZXb"><strong>Ma&#x27;lumot uzatish</strong>: Ma&#x27;lumot JSON formatida server va mijoz o&#x27;rtasida ketadi.</li>
    <li id="CHoQ"><strong>Aloqani boshqarish</strong>: Ulanish uzilgan taqdirda, Socket.IO qayta ulanishni ta&#x27;minlaydi.</li>
  </ol>
  <p id="GZqH">Socket.io orqali o&#x27;zim real loyihada foydalanilgan code orqali namuna ko&#x27;rsatib o&#x27;taman.</p>
  <pre id="zA3h">  import { io } from &#x27;socket.io-client&#x27;;
  useEffect(() =&gt; {
    const socket = io(socketEnv, {
      extraHeaders: {
        Authorization: &#x60;Bearer ${token}&#x60;
      }
    });

    socket.on(&#x27;connect&#x27;, () =&gt; {
      console.log(&#x27;Connected.&#x27;);
    });

    socket.on(&#x27;message&#x27;, (data) =&gt; {
      console.log(data);
    });
    socket.on(&#x27;employee-check-in&#x27;, (data) =&gt; {
      console.log(data);
    });

    socket.on(&#x27;error&#x27;, (data) =&gt; {
      console.log(data);
    });

    socket.on(&#x27;disconnect&#x27;, () =&gt; {
      console.log(&#x27;Disconnect.&#x27;);
    });

    return () =&gt; {
      socket.disconnect();
    };
  }, []);
</pre>
  <p id="AZgA">Birinchi o&#x27;rinda socket.io sayti orqali <em><strong>install</strong></em> qilish kerak bo&#x27;ladi va uni import qilinadi. Socketda <strong>event</strong> tinglanadi ya&#x27;ni hodisani kuzatish desak ham bo&#x27;ladi. Namunada <strong>employee-check-in eventi</strong> tinglangan va u orqali siz keladigan data ni ko&#x27;ra olasiz.</p>
  <p id="TC35"></p>
  <p id="WIga">Ko&#x27;pchilik Socket, Websocket haqida tushunmasligi mumkin bunga oddiy misol telegram va chat yozishmali ilovalarni va saytlarni misol keltirish mumkin.</p>
  <p id="B7Lr">Shu bilan Socket bo&#x27;yicha kichik bir maqolani yakunlayman. Nasib qilsa bu asosida amal ham qilmoqchiman.</p>
  <p id="u5k0"></p>
  <p id="7eaL">Foydalanilgan resurslar: <a href="http://socket.io" target="_blank">socket.io</a></p>
  <p id="e844"></p>
  <p id="kyaP"><strong>Mualliflik huquqiga amal qilinsin!</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@muhammadislom/oxaWCf1x96A</guid><link>https://teletype.in/@muhammadislom/oxaWCf1x96A?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom</link><comments>https://teletype.in/@muhammadislom/oxaWCf1x96A?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=muhammadislom#comments</comments><dc:creator>muhammadislom</dc:creator><title>IT dagi birinchi daromad va ish</title><pubDate>Sat, 21 Dec 2024 17:26:08 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/a7/08/a7087ef4-4b7c-4d32-984c-5289e284c336.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/e8/69/e869a9f8-4a68-4cc4-83c3-1accdc045bfe.png"></img>Assalomu alaykum ushbu postni o'qiyotgan har bir inson shaxsiy fikrlarim asosida o'zimdagi tajribadan kelib chiqish asosida yozyapman.]]></description><content:encoded><![CDATA[
  <p id="nQLn">Assalomu alaykum ushbu postni o&#x27;qiyotgan har bir inson shaxsiy fikrlarim asosida o&#x27;zimdagi tajribadan kelib chiqish asosida yozyapman.</p>
  <p id="GMKt">Hozirgi kunda O&#x27;zbekiston bozorida IT sohasida dasturchilarga talab oshmoqda buni yangi kompaniyalar va chet el kompaniyalarining kirib kelish natijasida bo&#x27;lmoqda. Lekin shunga qaramasdan o&#x27;rganuvchilar va ishga topshiruvchilar ham juda ko&#x27;p. Aksariyat holatda ishga topshiruvchilarda to&#x27;g&#x27;ri resume va portfolio yaxshi holatda emasligi mavjud. </p>
  <p id="NltQ"><strong>IT dagi birinchi ishni qanday topish mumkin?</strong></p>
  <p id="ftkI">To&#x27;g&#x27;ri resume tayyorlagan va portfolio mavjudligi sizni ishga topshirayotkanda suhbatga chaqirish imkonini oshiradi. To&#x27;g&#x27;ri bu gapni hamma ham aytadi lekin hamma ham amal qilmaydi. O&#x27;zimdagi shaxsiy tajribadan kelib chiqsam yangi boshlaganimda menda ham resume juda <strong>dabdala</strong> edi desam bo&#x27;ladi, hozir o&#x27;sha resumeni ko&#x27;rsam kulgim keladi. Agarda sizning tanishingiz sizning sohangizda bo&#x27;lsa u bilan yaxshi muloqotni yo&#x27;lga qo&#x27;yishni tavsiya qilaman. Atrofingizdagi yaqinlaringiz bilan ham yaxshi networking qilish bu ishga kirish imkoniyatingizni bir muncha oshiradi.</p>
  <p id="uFFO"><strong>HR ga yozganimda xabarimga javob bermadi yoki o&#x27;qimadi ham?</strong></p>
  <p id="KkQL">Buni hamma boshdan o&#x27;tkazgan vaqti kelsa o&#x27;zimda ham hozir shunday bo&#x27;ladi. Bunga o&#x27;zimdagi yechimni taklif qilaman bu orqali oz bo&#x27;lsa-da javob olish imkoniyati oshadi.</p>
  <figure id="lYHJ" class="m_original">
    <img src="https://img3.teletype.in/files/e8/69/e869a9f8-4a68-4cc4-83c3-1accdc045bfe.png" width="713" />
  </figure>
  <p id="FM7X">Siz yuborayotkan resumening nomi shunday ko&#x27;rinishda bo&#x27;lgani ma&#x27;qul sababi siz topshirayotkan kompaniya bir vaqtning o&#x27;zida 3-4 xil yo&#x27;nalishdagi vakansiya e&#x27;lon qilgan bo&#x27;lishi mumkin va bu orqali siz HR ga tushunarli qilasiz va o&#x27;zingizni hurmat qilish darajangizni ham belgilab beradi bunday kichik ish. </p>
  <figure id="lKxI" class="m_original">
    <img src="https://img1.teletype.in/files/8a/42/8a42a735-dcbe-44f0-95ab-224845c7fb53.png" width="706" />
  </figure>
  <p id="UyGj">Shunga o&#x27;xshash ko&#x27;rinishda HR ga habar yuborgan yaxshi, juda ko&#x27;pchilik ishga topshirganida HR ga shunchaki resume o&#x27;zini yuboradi hech qanday &quot;<strong>Salom</strong>&quot; ham yozmaydi, bunday inson albatta javob olmaydi.</p>
  <p id="xY8Y">IT va umuman boshqa sohalarda birinchi ishni topish uchun shularga amal qilinsa <strong>suhbat</strong> uchun imkon topiladi. Suhbatdagi holat esa u kandinantning tajribasiga bog&#x27;liq vaziyat.</p>
  <p id="SRfR"><strong>IT dagi daromadga kelsak....</strong></p>
  <p id="YZik">Agarda siz ingliz tili yoki rus tili bilsangiz freelance saytlar orqali ish olib daromad qila olasiz. Freelance saytlardan <a href="http://kwork.ru" target="_blank">kwork.ru </a>va <a href="http://upwork.com" target="_blank">upwork.com</a> shu saytlar orqali ish olib daromad qilsa bo&#x27;ladi. O&#x27;zbekistonda freelance asosida ishlaydigan tanishlariz bo&#x27;lsa ular bilan birgalikda ishlab tajriba orttirib olsa ham bo&#x27;ladi. Birinchi ishga joylashish va daromad qilish uchun albatta <strong><em>tajriba</em></strong> juda muhim. </p>
  <p id="YqQp"><strong>O&#x27;zimdagi tajriba</strong></p>
  <p id="ZYbn">Hozirda <strong><a href="https://datagaze.uz/" target="_blank">Datagaze LLC</a></strong> kompaniyasida Frontend (Reactjs, Nextjs) dasturchi sifatida ishlab kelmoqdaman. Umumiy tajribam davomida <em><strong>freelance</strong></em> asosida <strong>30</strong> ga yaqin loyihada ishlaganman va ularning barchasi o&#x27;z egalariga topshirilgan. Hozirda ham freelance asosida o&#x27;zim loyiha olib ishlab kelaman. Shu bilan ushbu postni yakunlamoqchiman. </p>
  <h3 id="CxqI"><strong><em>E&#x27;tiboringiz uchun rahmat!</em></strong></h3>
  <p id="ZSIA"></p>
  <p id="iR6C"><em>Xato va kamchiliklar bo&#x27;lsa uzr so&#x27;rayman va forward qilinganida iltimos mualliflik huquqiga amal qilinsin. </em></p>
  <p id="vHkd">Telegram blog manzili: <a href="https://t.me/Muhammadislom_Dev" target="_blank"><strong><em>Muhammadislom_Dev</em></strong></a></p>

]]></content:encoded></item></channel></rss>