<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[a.ziyodbek]]></title><description><![CDATA[I have spent the last 5 years building web applications with JavaScript technologies. I love front-end and have developed numerous interesting projects using Re]]></description><link>https://ziyodbek.uz</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 08:34:21 GMT</lastBuildDate><atom:link href="https://ziyodbek.uz/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[CORS Haqida]]></title><description><![CDATA[Men ilgari CORS (Cross-Origin Resource Sharing) bizning backendni himoya qiladi deb o‘ylardim. Lekin bir kuni texnikasi kuchli dasturchi mendan shunday deb so‘radi:
“Agar CORS backend’ni himoya qilsa, nega Postman bilan API’ga hech qanday CORS sozlam...]]></description><link>https://ziyodbek.uz/cors-haqida</link><guid isPermaLink="true">https://ziyodbek.uz/cors-haqida</guid><category><![CDATA[CORS]]></category><category><![CDATA[websecurity]]></category><dc:creator><![CDATA[Ziyodbek Ahmadjonov]]></dc:creator><pubDate>Wed, 28 May 2025 10:21:13 GMT</pubDate><content:encoded><![CDATA[<p>Men ilgari CORS (Cross-Origin Resource Sharing) bizning backendni himoya qiladi deb o‘ylardim. Lekin bir kuni texnikasi kuchli dasturchi mendan shunday deb so‘radi:</p>
<p>“Agar CORS backend’ni himoya qilsa, nega Postman bilan API’ga hech qanday CORS sozlamasisiz bemalol murojaat qilish mumkin?”</p>
<p>Bu savol meni hushyor torttirdi. Biz hech qachon Postman’ni CORS ro‘yxatiga qo‘shmaymiz. Ammo u baribir ishlayveradi. Nega?</p>
<p>Ko‘pchilik dasturchilar kabi, men ham CORS nima qilishini noto‘g‘ri tushungan ekanman. Brauzerda chiqqan CORS xatolarini ko‘rib, ko‘pincha Google’dan “fix” izlab qo‘yamiz — asl sababini tushunmasdan.</p>
<p>⸻</p>
<p>Bir necha oy oldin, bu masalani chuqurroq o‘rganishga qaror qildim. Mana bir oddiy, ammo tushunarli misol:</p>
<p>Tasavvur qiling:</p>
<p>Siz brauzeringizni ochasiz va bank[nuqta]com saytiga kirib, akkauntingizga login qilasiz. Frontend esa bank-api[nuqta]com orqali API so‘rovlar yuboradi. Cookie’lar brauzerda saqlanadi.</p>
<ul>
<li><p>Keyin yangi tab ochib, notanish saytga kirasiz: unknown-site[nuqta]com.</p>
</li>
<li><p>U saytda quyidagi JavaScript kodi ishlaydi:</p>
</li>
</ul>
<p><code>fetch("</code><a target="_blank" href="https://bank-api.com/transfer?to=123&amp;amount=3000"><code>https://bank-api.com/transfer?to=123&amp;amount=3000</code></a><code>", { credentials: "include" });</code></p>
<p>Siz allaqachon login bo‘lganingiz uchun cookie’lar bor.</p>
<p>credentials: "include" ishlatilgani sababli, brauzer cookie’larni so‘rovga qo‘shadi. Backend esa shunday deb o‘ylaydi:</p>
<p><em>“Bu foydalanuvchi login bo‘lgan, pulni ko‘chirishga ruxsat.”</em></p>
<p><em>💸 Natija: pul yo‘q.</em></p>
<p>⸻</p>
<p>Endi CORS nima qiladi?</p>
<p>Brauzer bu so‘rov boshqa manbadan (<a target="_blank" href="http://unknown-site.com">unknown-site.com</a>) kelganini ko‘radi va backend’dan so‘raydi:</p>
<p>“Bu so‘rovni ruxsat beraymi?”</p>
<p>Backend quyidagicha javob beradi:</p>
<p>Access-Control-Allow-Origin: <a target="_blank" href="http://bank.com">bank.com</a></p>
<p>Brauzer esa tekshiradi va:</p>
<p> • Agar so‘rov <a target="_blank" href="http://bank.com">bank.com</a> dan bo‘lsa — ruxsat beradi.</p>
<p> • Agar <a target="_blank" href="http://unknown-site.com">unknown-site.com</a> dan bo‘lsa — bloklaydi.</p>
<p>✅ CORS — bu brauzer darajasidagi xavfsizlik.</p>
<p>❌ Backend’ning o‘zini himoya qilmaydi.</p>
<p>Postman esa brauzer emas — CORS bu yerda ishlamaydi.</p>
<p>Hatto foydalanuvchi brauzerga CORS’ni o‘chiradigan extension o‘rnatsa, zararli sayt bu himoyani chetlab o‘tishi mumkin.</p>
<p>⸻</p>
<p><em>Bu hammasi birgina savoldan boshlandi.</em></p>
<p><em>Va menga bir muhim narsani eslatdi:</em></p>
<p> <em>- 🧠 Qiziquvchanlik — bizning superqudratimiz.</em></p>
<p> <em>- “Qanday?” emas, “Nega?” degan savolni berishga o‘rgatadi.</em></p>
<p><em>Haqiqiy o‘rganish shu yerdan boshlanadi.</em></p>
<p>Source: linkedIn</p>
]]></content:encoded></item><item><title><![CDATA[Code review!]]></title><description><![CDATA[Shu paytgacha real loyihalarda code review qilmagan edik, qilsak ham nomiga qilinardi.
Aslida code review, eng kerakli bosqich ekanini ham vaqtlar o'tib tushunyapmiz.
Yani hamma o'z ilmi darajasida fikrlaydi. Kimdir shu ilmni boshqa manbalardan olgan...]]></description><link>https://ziyodbek.uz/code-review</link><guid isPermaLink="true">https://ziyodbek.uz/code-review</guid><category><![CDATA[coding]]></category><category><![CDATA[code]]></category><category><![CDATA[review]]></category><dc:creator><![CDATA[Ziyodbek Ahmadjonov]]></dc:creator><pubDate>Thu, 24 Aug 2023 04:57:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1692852983619/0f580bf9-fa45-4d04-b122-ae4bfaeaaea7.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Shu paytgacha real loyihalarda code review qilmagan edik, qilsak ham nomiga qilinardi.</p>
<p>Aslida code review, eng kerakli bosqich ekanini ham vaqtlar o'tib tushunyapmiz.</p>
<p>Yani hamma o'z ilmi darajasida fikrlaydi. Kimdir shu ilmni boshqa manbalardan olgan bo'ladi siz esa boshqasidan. Shu manbalarni birlashtirib yechim qilinsa yaxshiroq yechim bo'ladi ekan.</p>
<p><em>Bir kalla - kalla, ikki kalla - tilla!</em></p>
]]></content:encoded></item><item><title><![CDATA[JavaScript clean code examples]]></title><description><![CDATA[Clean code examples are usually needed a lot.I think the following examples are what you need for projects and everyday coding.

1. Assigning a value to the same thing conditionally using ternary operators.
https://gist.github.com/ziyodbek0300/b77cdb...]]></description><link>https://ziyodbek.uz/javascript-clean-code-examples</link><guid isPermaLink="true">https://ziyodbek.uz/javascript-clean-code-examples</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[webdev]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[#codenewbies]]></category><dc:creator><![CDATA[Ziyodbek Ahmadjonov]]></dc:creator><pubDate>Wed, 24 May 2023 10:54:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1684926359226/0c931411-f16a-4315-9039-9b86b63175a9.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Clean code examples are usually needed a lot.<br />I think the following examples are what you need for projects and everyday coding.</p>
<hr />
<h4 id="heading-1-assigning-a-value-to-the-same-thing-conditionally-using-ternary-operators">1. Assigning a value to the same thing conditionally using ternary operators.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="b77cdbd3eda51265ac387a664213fcef"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/b77cdbd3eda51265ac387a664213fcef" class="embed-card">https://gist.github.com/ziyodbek0300/b77cdbd3eda51265ac387a664213fcef</a></div><p> </p>
<h4 id="heading-2-assigning-the-same-value-to-a-specific-object-property-conditionally">2. Assigning the same value to a specific object property conditionally.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="adbeac19d8d0aa0b4035087d989cbccd"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/adbeac19d8d0aa0b4035087d989cbccd" class="embed-card">https://gist.github.com/ziyodbek0300/adbeac19d8d0aa0b4035087d989cbccd</a></div><p> </p>
<h4 id="heading-3-exporting-multiple-variables">3. Exporting multiple variables</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="aee2fb47eb1c61131888f57ef0a5891c"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/aee2fb47eb1c61131888f57ef0a5891c" class="embed-card">https://gist.github.com/ziyodbek0300/aee2fb47eb1c61131888f57ef0a5891c</a></div><p> </p>
<h4 id="heading-4-declaring-and-assigning-variables-from-object-properties">4. Declaring and assigning variables from object properties.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="f34414a0c4a4e4aa50565f7b7d75995c"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/f34414a0c4a4e4aa50565f7b7d75995c" class="embed-card">https://gist.github.com/ziyodbek0300/f34414a0c4a4e4aa50565f7b7d75995c</a></div><p> </p>
<h4 id="heading-5-declaring-and-assigning-variables-from-array-indexes">5. Declaring and assigning variables from array indexes.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="dd37b56a34aa3c166ec291b36e35f9c8"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/dd37b56a34aa3c166ec291b36e35f9c8" class="embed-card">https://gist.github.com/ziyodbek0300/dd37b56a34aa3c166ec291b36e35f9c8</a></div><p> </p>
<h4 id="heading-6-getting-multiple-elements-from-the-dom">6. Getting multiple elements from the DOM.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="dda77ea1cc24678331fcbe754a407b63"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/dda77ea1cc24678331fcbe754a407b63" class="embed-card">https://gist.github.com/ziyodbek0300/dda77ea1cc24678331fcbe754a407b63</a></div><p> </p>
<h4 id="heading-7-use-logical-operators-for-simple-conditionals">7. Use logical operators for simple conditionals.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="e8139c994f18610277ef9716370cb370"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/e8139c994f18610277ef9716370cb370" class="embed-card">https://gist.github.com/ziyodbek0300/e8139c994f18610277ef9716370cb370</a></div><p> </p>
<h4 id="heading-8-passing-parameters-conditionally">8. Passing parameters conditionally.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="e16ae874370128a857fea0611d37ee6f"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/e16ae874370128a857fea0611d37ee6f" class="embed-card">https://gist.github.com/ziyodbek0300/e16ae874370128a857fea0611d37ee6f</a></div><p> </p>
<h4 id="heading-9-dealing-with-lots-of-0s">9. Dealing with lots of 0`s.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="7cda1144df46dfcb2463710a2abcf384"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/7cda1144df46dfcb2463710a2abcf384" class="embed-card">https://gist.github.com/ziyodbek0300/7cda1144df46dfcb2463710a2abcf384</a></div><p> </p>
<h4 id="heading-10-assigning-the-same-thing-to-multiple-variables">10. Assigning the same thing to multiple variables.</h4>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="5753cc5ce770c1a857b0cd3f279e24f0"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/5753cc5ce770c1a857b0cd3f279e24f0" class="embed-card">https://gist.github.com/ziyodbek0300/5753cc5ce770c1a857b0cd3f279e24f0</a></div><p> </p>
<h4 id="heading-bonus-a-debugging-tip">Bonus⭐ (A debugging tip)</h4>
<blockquote>
<p>Debugging with <code>console.log()</code> can be a pain having to write it<br />over and over again. You can shorten it by an object destructuring<br />assignment.</p>
</blockquote>
<div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="da973d49b37f4a5fa6bb4b03839a52dc"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/ziyodbek0300/da973d49b37f4a5fa6bb4b03839a52dc" class="embed-card">https://gist.github.com/ziyodbek0300/da973d49b37f4a5fa6bb4b03839a52dc</a></div><p> </p>
<blockquote>
<p>Now Instead of having to write out <code>console.log()</code><br />you can just write <code>c()</code> which is easier to write for<br />faster debugging.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[IOS (Apple) chimisiz yoki Android chi?]]></title><description><![CDATA[Fikrimcha buyog’iga faqat Apple mahsulotlarini yani IOS qurilmalarini ishlatsam kerak. Yaqinda qurilmalarimni Allohning fazli bilan IOS ga almashtirgandim, oz-moz tug’ilgan fikrlar bilan o’rtoqlashmoqchiman.
Bu Android qurilmalari haqidagi fikrim yom...]]></description><link>https://ziyodbek.uz/ios-apple-chimisiz-yoki-android-chi</link><guid isPermaLink="true">https://ziyodbek.uz/ios-apple-chimisiz-yoki-android-chi</guid><category><![CDATA[Apple]]></category><category><![CDATA[iOS]]></category><category><![CDATA[Android]]></category><category><![CDATA[ziyodbek]]></category><dc:creator><![CDATA[Ziyodbek Ahmadjonov]]></dc:creator><pubDate>Fri, 12 May 2023 11:38:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1683893183069/880d349e-5443-4bd9-93db-ce09f6ffdef9.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Fikrimcha buyog’iga faqat Apple mahsulotlarini yani IOS qurilmalarini ishlatsam kerak. Yaqinda qurilmalarimni Allohning fazli bilan IOS ga almashtirgandim, oz-moz tug’ilgan fikrlar bilan o’rtoqlashmoqchiman.</p>
<p><em>Bu Android qurilmalari haqidagi fikrim yomon degani emas.</em></p>
<p>Lekin avvaldan faqat windows ishlatib turib MacOS ga, Android Phone ishlatib turib iPhone ga o’tilsa sezilarli darajada qulayliklar paydo bo’lar ekan.</p>
<p>Oddiy dizayn tarafini oladigan bo’lsak glassmorfizm (nima ekanligi haqida keyinroq yozaman nasib qilsa) bilan judda ham kuchli va maromida ishlanganligiga guvoh bo’lamiz. Va yoki ilovalarni ochilib yopilishdagi tezlik va animatsiyalar ham juda maromiga yetkazilgan.</p>
<p>Eng asosiylaridan biri home, uy, o’rtani bosib ilovadan chiqilishi bilan ilova tezkor hotirani ortiqcha band qilmaydi. Shuning uchun ham 6gb tezkor xotira yani operativkalik Android dan ko’ra 4gb operativkalik IOS tezroq ishlashiga guvoh bo’lamiz.</p>
<p>Menimcha Apple ning shiori “Kerak bo’lsa ishlat bo’lmasa daf qil” bo’lsa kerak. Dasturchi sifatida aytaman siz IOS qurilmangizni, xox u iPhone bo’lsin xox Macbook, bemalol ortiqcha dasturlarsiz minimal holatga olib kelsangiz va yoki o’zingizga mos ravishda sozlab olsangiz bo’ladi. Boshqa OS larda ma’lum bir ilova yoki dasturlar toifasini o’chirib tashlashga Tizim yo’l qo’ymaydi. IOS da esa hammasini emasu har xolda ko’p keraksiz deb bilganlaringizni o’chirsangiz bo’larkan.</p>
<p>P.S: Albatta IOS qurilmalarini ishlatish uchun sizda yetarlicha bilim bo’lsagina uni qulay ekanini tushunasiz. Yetarlicha bilimga ega bo’lmay turib buuncha pul sarflashni oqlamayman. 100% dan 20% qobilyatlarini ham ishlatmasangiz nima keragi bor 1000$ lik telefon yoki 3000$ lik kompyuterni 🙂</p>
<blockquote>
<p><em>Kalta fahmimga kelgan fikrlar shulardan iborat)</em></p>
</blockquote>
<p>02:13 || 06.10.2022</p>
<p>Toshkent sh.</p>
<p>Ziyodbek Ahmadjonov</p>
]]></content:encoded></item></channel></rss>