Dev thinking loud
Kanalga Telegramβda oβtish
Dasturlash boyicha video darslar, subyektiv fikrlar, kundalik misollar, bahsli mavzular. Youtube kanal: https://www.youtube.com/@ravshansbox Muallif: @ravshansbox
Ko'proq ko'rsatish1 585
Obunachilar
-624 soatlar
-77 kunlar
+3030 kunlar
Postlar arxiv
1 585
Repost from Jakhongir Rakhmonov - IT
Ingliz tilini bilmasangiz siz yaxshi dasturchi emassiz.
@jakhonrakhmonov
1 585
MongoDB aggregationlar haqida yaxshi manba ekan:
https://www.practical-mongodb-aggregations.com
1 585
Mana nima sababdan JavaScriptda hamma o'zgaruvchilar heapda saqlanadi: chunki stackdagi joy function tugashi bilan tozalanadi (function ozi stackdan "pop" bo'ladi), closuredagi functionga esa u joy keyin ham kerak.
Manba:
https://exploringjs.com/deep-js/ch_environments.html#recursion-via-environments
1 585
ES6(ES2015) va undan keyin qoshilgan ES "proposal"larni yillik "specification"lar boyicha qayta korib chiqamiz (balki esimizdan ko'tarilganlari bordir)
https://github.com/sudheerj/ECMAScript-features
1 585
React boyicha interview savol va javoblar ro'yhati:
https://github.com/sudheerj/reactjs-interview-questions
1 585
JavaScript boyicha interview savol va javoblar ro'yhati. Foydali bo'ladi degan umiddamiz
https://github.com/sudheerj/javascript-interview-questions
1 585
Utilise it as much as it does not hurt you!
Bugun bitta postga koβzim tushib qoldi. TypeScriptni qanchalik chuqur va murakkab ishlatish haqida. Muallif hammaga maβlum Evan You. Yuqoridagi maslahatni bergan.
Men odatda bu maslahatni testing uchun berardim. Chunki βqancha test yozish kerak?β (qanchasi sizni qoniqtirsa), βcode coverage threshold qancha boβlishi kerak?β (oβzi kim oβylab topgan bunaqa talab boβlishi kerakligini?) yoki βqaysi tur testlarni koβproq yozish foydali?β (uzun mavzu, umumiy qilib aytganda hammasini yozib koring, qaysi kamroq resurs olsa oshani koβproq) kabi koβp tabiiy savollar uchrab turadi. Men odatda bitta implementation uchun eng kamida bitta case (happy path) koβrilishi kerak deb aytardim.
Masalan React component implement qilinsa oshani hech bolmasa render test yozish kerak. Bu narsani odat qilgandan keyin bir muddat oβtib sal murakkabroq holatni test qilish ishtiyoqi paydo boβladi. Nega deysiz mi? Chunki bu muddat ichida basic component render testlar qanaqadir natija berishga ulgurgan boβladi, bazi regressionlarni oldini olganiga dasturchi guvoh boβlgan boβladi. Keyin qiziqish paydo boβladi, sal murakkabroqroq va hosroq holatlarni ham test qila olaman mi degan savol paydo boβladi. Orqasidan izlanish, oβrganish, eksperiment, tatbiq qilish, odatga aylantirish, tdd va hkβ¦ Undan keyin esa test yozmasdan commit qila olmaslik βkasalligiβ paydo boβladi, peerlar review request qilishganda ozgargan filelar ichidan birinchi test filelarni qidirish odati chiqadi.
Hammasi esa eng birinchi qadamdan boshlangan edi: utilise it as much as it does not hurt youβ¦
@dev_thinking_loud1 585
Semantic HTML
Web dasturlarning strukturasini yasayotganda muhim qadamlardan biri toβgri elementlarni tanlash hisoblanadi.
Bazi saytlarga kirib devtoolsni ochib qaralsa asosan
div va span elementlardan tashkil topgan boβladi. Balki muallifi HTML semantikasini yaxshi bilmas, balki unga bunday talab ham qoyilmagandir(oβzi bunaqa talab qoyilishiga ehtiyoj bormikin?), lekin bu tashlab oβtib ketiladigan mavzu emas, menimcha.
Semantic HTML deb βcontent parchaβsi bilan birga faqat funksionalning ozi emas balki unga tegishli mano/mohiyat (bu yerda osha βcontent parchaβsining mazkur documentga nisbatan munosabati nazar tutilgan) ham birga kelishiga aytiladi. Aytaylik documentga βHello Worldβ degan matn bor, agar uni h1 elementga oβrasak u content bu document uchun birlamchi heading vazifasini bajaradi (Headinglarga tegishli qoidalar bor). Agar bu contentni div elementga oβrasak, bu shunchaki manosiz content boβladi.
Shu oβrinda aytib oβtishimiz kerak, tag elementlar hech qachon browser ularga bergan default βstyleβlar bilan tanlanmaydi, chunki βstyleβlar istalgan vaqtda istalgan shaklda βoverrideβ qilinishi mumkin.
Semantic elementlar ishlatishning quyidagi afzalliklari bor:
- Functionality. Togri element bilan togri funksional keladi. Masalan div yoki spandan toβlaqonli button yoki a yasashning imkoni yoq.
- Accessibility. Bazi elementlarda imkoniyatlari cheklangan foydalanuvchilar uchun qulayliklar bor. Oβrniga div va span ishlatish ularning sayt bilan muloqotini qiyinlashtiradi.
- SEO. Search enginelar togri semantika bilan tuzilgan saytlarni yuqoriroq baholaydi(divlar oβrniga main, section, aside, nav, header, footerβ¦)
- Easy testing. Semantic elementlarni ishlatish elementlarni testlarda togri topib olishni osonlashtiradi va test id (darvoqe, test idlarni ishlatish antipatternligini bilarmidingiz?) larga ehtiyojlarni keskin kamaytiradi.
Savol: ohirgi marta ul (unordered list) o'rniga qachon ol (ordered list) elementini ishlatgansiz va ularning qanday farqi bor?
@dev_thinking_loud1 585
Qo'shimcha ishlash(overtime)
So'nggi paytlarda maslakdoshlarimdan shu masalada ko'p etirozlar eshityapman. Bazan ish beruvchilar hodimlarni qo'shimcha ishlashga(overtime) majburlash holatlari kuzatilayotgan ekan. Ustiga ustak bu vaqtlar uchun maosh ham to'lanmas ekan.
Bu holat bir paytlari o'zimning ham boshimdan bir necha marotaba o'tgani va har gal bu menga juda qattiq salbiy tasir qilgani uchun shu mavzu haqida yozishga qaror qildim.
Bu mavzuda bir qancha tomonlar bor, keling birgalikda bir-bir o'tib chiqaylik.
Masalaning birinchi tomoni, bu holat sabab hodimning foydali ish koeffisiyenti tushib ketadi(burnout). Bu masalaning eng dolzard tomoni, chunki bunda har ikki tomon zarar ko'radi. Ishdan keyin qo'shimcha soatlarda yoki shanba/yakshanba kunlari majburiy ishlatilgan hodimning keyingi kun/haftadagi ish unumdorligi keskin tushib ketadi (bazan hodim juda yosh bo'lsa bu sezilmasligi mumkin, ammo bu holat bir muddat davom etgandan keyin albatta seziladi), natijada bundan biznes ham zarar ko'radi.
Masalaning ikkinchi tomoni, bunaqa tajriba hodimga psihologik jihatdan salbiy tasir ko'rsatadi va hodim sekin-asta boshqa kompaniya qidirishga tushadi, alal oqibat qayerdandir hatto pastroq oylikka bo'lsa ham ish chiqadi va hodim kompaniyani tark qiladi. Natijada kompaniya hodimdan ayriladi. Yangi hodimni qidirib topish, uning unumli ishga tushib ketishi esa biznes uchun ham vaqtdan ham moliyaviy jihatdan zarar yetkazadi.
Masalaning uchinchi tomoni, bunaqa holat bilan ishdan ketgan hodim kompaniya haqida hech qachon ijobiy gapirmaydi, natijada kompaniyaning sohadagi obro'si tushib ketadi va tajribali hodim hech qachon bunaqa kompaniyaga ishga kelmaydi. Yana kompaniya zararda.
Masalaning to'rtinchi tomoni, bir insonni o'z roziligisiz yoki muhtojlik holatidan foydalanib qo'shimcha ishlashga majburlash na insoniy va na shar'iy tomondan to'gri bo'lmaydi. Bu ish hodimga nisbatan shar'an zulm hisoblanadi. Bunaqa biznesdan baraka ko'tariladi.
Endi masalaning sabablariga kelsak. O'zi nega bu tajriba qo'llaniladi?
Odatda har qanaqa biznes/reja "vaqt tahmin"(estimation)lariga asoslanadi. Mana shu "vaqt tahmin"larni togri hisob-kitob qilish odatda boshqaruv(management)ning zimmasida bo'ladi. Agar shu bosqich noaniq bajarilsa (yoki umuman bajarilmasa), boshqaruv ozi qilgan xatolarni qoplash uchun mazkur tajribaga murojaat qiladi. Yani qo'pol qilib aytganda boshqaruvning xatolarini hodimlar qoplashi kerak bo'lib qoladi.
Endi masalaning yechimiga kelsak. Bunaqa holatlarning oldini olish uchun boshqaruv bilan shug'ullanadigan qatlamga maslahatim o'zingizning sohangiz bo'yicha biron joyda bilim oling yoki malaka oshiring. "Biznesni boshqaruv" yoki "Proyektni boshqaruv" degan fanlar bor, bular bo'yicha universitetlarda yo'nalishlar va markazlarda kurslar bor. O'zingizning malakasizligingiz uchun boshqalarni qiynashdan voz keching.
@dev_thinking_loud
1 585
Backend projectni dockerlashtirib serverga joylaymiz
https://youtu.be/vnWgKxhJv-s
1 585
Bugun bir yaxshi resursga ishim tushdi
https://www.schemastore.org
Editorlarda json configuration yozayotganda togri qildimmikin, kalitni ismini togri yozdimmi yoki berilgan qiymatni turi/formati togrimikin deb hech ikkilangan bolsangiz bu hissiyotda yolgiz emassiz.
Zamonaviy editorlarda bu yerdagi schemalarning bazilari kiritilgan, masalan
.eslintrc fileni edit qilayotganimizda editor code complete qila oladi. Lekin bu joyda juda kop sonli formatlar uchun schema bor ekan. Kerak bolgan schemani topib, IDsini JSON config faylimizga $schema kalitiga kiritsak editorimiz (magically) yordam berishni boshlaydi.1 585
TypeScriptda assignability
TypeScriptda qaysi tur(type)dagi qiymat(value) qaysi turga qoyish(assign) mumkin bolishi - assignability deyiladi.
https://www.typescriptlang.org/docs/handbook/type-compatibility.html
1 585
Frontend projectni dockerlashtirib serverga joylaymiz
https://youtu.be/JIcfuZnq13I
Endi mavjud! Telegram Tadqiqoti 2025 β yilning asosiy insaytlari 
