Ramziddin — Dasturlash haqida
2.02K subscribers
281 photos
22 videos
195 links
Ingliz tilida kanalim – @ramzcoder
Ramzcoder community – @ramzcodercom
Instagram — instagram.com/ramzcoder
Programming emoji pack – t.iss.one/addemoji/ramzcoder
Download Telegram
Dasturchi bo'lganim uchun ChatGPTdan yaxshi foydalanishi bilaman.

3ta pizza qilmoqchiman (skovorodka bilan, duxovka yo'qligi uchun).

To'g'ri jarayoni boshladimmi?
414😁12👍1
Ramziddin — Dasturlash haqida
Dasturchi bo'lganim uchun ChatGPTdan yaxshi foydalanishi bilaman. 3ta pizza qilmoqchiman (skovorodka bilan, duxovka yo'qligi uchun). To'g'ri jarayoni boshladimmi?
Nimaga manga pizza tayyorlash yoqdi.

Chunki recipe bo'yicha hamr tayyorlaysiz, kerakli tayyor sous ishlatasiz, pomidor bilan sir kesasiz, va duxovka/skovordkada 5 daqiqada tayyor.

Sizda xech qachon pizza tayyorlaganingizda [email protected] peer dependencie issue paydo bo'lmaydi cnunki pomidor maintaineri dependencyni update qilishi esidan chiqardi
4😁29👍4🔥21
Ertaga soat 19:00 da man va @SeoulDev (obuna bo’lib qo’ying) jonli efir o’tqazamiz.

Topics:
1. Each other’s software development journey
2. "Day in the life" comparison between Korea and Uzbekistan's tech.
3. The local developer communities in both countries
4. Side projects we’re excited about
5. Tech hot takes and unpopular opinions

Va ko’proq

Kanalda havola yuboramiz jonli efirga
🔥8👍2
Qaysi birini yozasiz?

Ohirigi payt man ko'proq 2 variant yozaman.

Man tezroq komponentni ko'rmoqchiman, va uni typelari komponentni o'qish jarayonimda yoki o'qib bo'lganimdan keyin qiziq bo'ladi.
👍4
Ramziddin — Dasturlash haqida
Qaysi birini yozasiz? Ohirigi payt man ko'proq 2 variant yozaman. Man tezroq komponentni ko'rmoqchiman, va uni typelari komponentni o'qish jarayonimda yoki o'qib bo'lganimdan keyin qiziq bo'ladi.
Bilaman, ko'pchiliklar interfacedan foydalanishadi. Balki interface bilan ham shunaqa qilish mumkin, lekin type yordamida bu narsani aniq qilishi mumkin:

Bu misolda agar variant "foo" bo'lsa, faqat "foo" propdan foydalanishingiz mumkin, agar variant "bar" bo'lsa, faqat "bar" propdan foydalanishingiz mumkin.

Bu narsani nomi esa "discriminated union".
👍111
Qanday qilib Supermiya va Superintizom Next.js ilovalarga Paymeni ulaganman

Eski kodimni sharmanda bo'lib razbor qilaman

https://youtube.com/live/zNmz5QZ2z7A?feature=share
👍4
Jonli efir 🔼
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥5👍2
Shu React component @JonliChatBot-da online userlar sonini ko'rsatishga ishlatiladi.

Qanday qilib uni test qilishimiz mumkin?

Birinchi bo'lib hayolga kelgan narsa esa useEmitOnce vs useSocketValue mock qilish va render natijasini tekshirish.

Lekin bizga farqi bo'lmaslik kerak component useEmitOncedan foydalanvottimi, to'g'ridan to'g'ri `socket.emit`dan foydalanvottimi yoki boshqa usul bilan mi. Bu esa "implementation detail".

Agar biz implementationga testlarimizani bog'lab qo'ysak – componentning implementationi update qilnganingizda testingiz ham buziladi.

Bu yerda savol paydo bo'ladi: tetsingiz o'zi to'g'ri narsani test qilvottimi yoki shunchaki funksiyalar call qilinishini test qilvottimi?

Undan ko'ra componentning natijasini test qilishimiz kerak. Buning uchun MSW yordamida WebSocket messagelarni intercept qilishimiz mumkin va funksiya darajada mock qilishi o'rniga – WebSocket protocol darajada mock qilishimiz mumkin.

Va React Testing Library yordamida role-based testing yozamiz. React Testing Librarydan foydalanish ham implementationi test qilishdan bizni uzoqlashtiradi.

Shunaqa usul yordamida, keyinchalik socket.io-dan boshqa narsaga o'tsam – testlar buzilmaydi, chunki implementation test qilishi o'rniga, testlar natijani test qiladi.

P.S.: albatta MSW bilan ishlash mocklar bilan solishtirganda ancha qiyinroq bo'lishi mumkin. Boshida ba'zi logikalarni alohida hook/funksiyaga chiqarib, uni test qilib, qolgan uni ishlatadigan qismlarni shunchaki spy yoki mock qilishimiz mumkin.
🔥41👍1
it('should render', () => {

render(<App />)

let main = screen.getByRole('main')

expect(main).toBeInTheDocument()

})
This media is not supported in your browser
VIEW IN TELEGRAM
😁1892
19:00da jonli efir @SeoulDev kanalda boshlanadi! 🔴
Please open Telegram to view this post
VIEW IN TELEGRAM
75🔥1🎉1
Dasturchilar, man ishdan ketdim...
Endi yangi yildan keyin qaytaman
🎉29😁16👍109
Yangi yil bilan, bu yil ko’proq ship qilamiz 🚀🛳️
😁33👍12🔥532
Agar <footer>da hozirgi yilni ko'rsatmoqchi bo'lsangiz, shunchaki getfullyear.com dan foydalaning

https://x.com/ramzcoder/status/1875213663642206309
30😁19👍102
Kecha birinchi marta umrimda Git saytida dokumentatsiyani chuqur o’rganmoqchi edim…

Mayli, taqdir emas ekan
😁623👍3🔥2
Test yozish? Man kod yaxshi ishlashini shunchaki sezaman
😁5413👍5🔥3