Dev thinking loud
1.68K subscribers
119 photos
8 videos
3 files
321 links
Dasturlash boyicha video darslar, subyektiv fikrlar, kundalik misollar, bahsli mavzular.

Youtube kanal: https://www.youtube.com/@ravshansbox

Muallif: @ravshansbox
Download Telegram
Pair programming

Dasturlashda ishlatiladigan foydali uslublardan biri "pair programming" hisoblanadi.
Bir qarashda unumsiz tuyulsa ham (ikki dasturchi bir ishni ustida ishlayotgani uchun) aslida unday emas.
Bu uslubning quyidagi foydalari bor:
1) Tajriba almashish - dasturlashda eng muhim ruknlardan hisoblanadi, ayniqsa boshlovchilar orasida, bunda ikki dasturchi bir-birining bilmagan tomonlarini to'ldiradi, o'rgangan bilimlarini esa mustahkamlaydi
2) Masalaga taklif qilingan yechimlar sonini ko'pligi togriroq yechimga kelishga sabab bo'ladi va kelib chiqishi mumkin bo'lgan buglarning ehtimolini kamaytiradi
3) Komandadagi dasturchilarning yozilayotgan dastur haqida koproq bilishlarini taminlaydi
4) Komanda azolari orasidagi munosabatlarga ijobiy tasir korsatadi
5) Jamoaviy kod egalik (code ownership) hissini oshiradi
6) Real-time code reviewni taminlaydi
👍15
Test yozish: savol-javoblar

Mehmon: Ayyubxon Farg'oniy

https://youtu.be/O2VJ13dzHEg
👍14
Forwarded from R4Y🍉
CAREER VISION

I see a lot of software engineers are trying to reach FAANG companies. While the reasons might be understandable, I want to ask 1 question.

Do we really want it OURSELVES or we just think we HAVE to do it to succeed?
If you have a clear vision, that's totally okay. But if you feel lost...

Finding our niche in software development is crucial, I say. That's what makes us stand out in a big crowd.
Just analyze yourself. What is your strongest side in SWD?
- Are you good at working with audio/video?
- Do you have some experience in building complex data visualizations?
- Do you know a particular framework better than your peers?
- Do you have enough expertise in building ecommerce platforms?

Whatever it is, working on that areas and gaining more experience makes us special.

Let's not blindly follow dreams of someone else.
Let's find that mole which makes us unique in our field.

#morning_thougts
👍23
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
👍14🔥4
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.
👍21
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
👍40🔥6🙏1🤣1
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_loud
👍342