☕️ Java BACKEND developers </>☕️
185 subscribers
89 photos
148 videos
34 files
212 links
Download Telegram
Savol : Hozir hammada bitta kasallik avj olgan bilasizlarmi? Dasturchilar aksari bundan uzoqda bo'lsa kerak )
Одамзот доимо кам ҳаракат қилиб, кўп пул топиш пайида бўлган. Айниқса, бугунги замонда бу янада авж олмоқда.

Сўзимиз исботи бошини кўтармасдан телефонда майнинг қилаётганлар бўлади. Янги криптавлюта, ноткоин, айниқса, ҳаракатсиз бойиб кетиш иштиёқидагиларни ўзига борган сари қарам қилиб қўймоқда.

Бу ҳақида, ҳатто, домлалар ҳам яхши эмаслигини айтиб чиқишмоқда. Мен масаланинг диний жиҳатига аралашмайман. Шунчаки бир савол бермоқчиман: кетаётган вақтингиз шунга арзийдими? Шу кетаётган вақтга китоб ўқиш мумкин эди-ку.

Ўйлашингиз мумкин, китоб ўқий туриб ҳам, шу ишни қилса бўлади-ку, деб. Бироқ, инсон мияси бир пайтнинг ўзида иккита ишни қабул қилмаслигини ҳам унутмаслик керак.

Хуллас, қандай қарор қабул қилиш ўзингизга ҳавола.

@adolat_kuychisi
👍5
Forwarded from Xurshidbek Kurbanov
#virtual #thread #future #of #java
Virtual Thread, thread yaratish va ishga tushurishda tez ekanini oldingi postimizda aytib o’tgandik. Yana bir yangilikni ko'rdim yani, “#VirtualThread - #Nonblocking I/O ni qo’llab quvvatlaydi“ #Tochnami ? Odatda Blocking I/O dan qutulish uchun Spring #WebFlux & #Netty lar ishlatilinadi. Buni rost ekanini isbotlash uchun quyidagicha test case yaratildi.

1- Tomcat thread 10 ta
2- 10 sekundda response qaytaratigan API
3- Bir vaqtning o’zida 100 ta request

Time = (100 requests) / (10 tomcat threads) * (10 second API call) = 100 sec

Oddiy #PlatformThread dan foydalansak yuqoridagi testimiz 110 sekund atrofida vaqt sarflaganini va bu testimizni #VirtualThread ni ishlatib qilganimizda esa 60 sekund vaqt sarflaganini ko’rdik. Xulosa, Virtual Thread Nonblocking I/O ni qullab quvvatlaydi va bunga erishishda Continuation yield dan foydalanadi. #NIO

🔷 Join @xurshidbek_kurbanov
To'lov tizimlari uchun integratsiya. Payme, Click va boshqa turdagi tizimlarga qanday ulaniladi?

https://diary.manu.uz/blog/tolov-tizimlari-uchun-integratsiya-payme-click-va-boshqa-turdagi-tizimlarga-qanday-ulaniladi.htm

@yetimdasturchi
1👨‍💻1
Forwarded from Xurshidbek Kurbanov
#JavaEE #SpringFramework #SpringBoot

#Java man uchun asosiy dasturlash tili bo'lib kelgan. #Algoritm masalalarini asosan Javada yozaman. Magistraturada o'qiganimda, diplom himoyamdagi tadqiqotning backend qismini #JavaEE da amalga oshirgandim. Koreyada birinchi kompaniyamizda backend asosan .NET va Springda yozilar edi. .NET va mobil jamoa a'zolari bilan birgalikda Spring Study Club tashkil qilib, #SpringFramework ni o'rganib chiqqandik. O'zimizning kompaniyamizda ish boshlaganimdan buyon #SpringBoot da yozib kelaman.
Junior dasturchilarimiz o'zlari bilganicha kod yozib kelgani sababli, kodlarni kelishilgan standartga keltirish uchun vaqt kerak bo'ldi. Har safar yangi loyiha boshlaganimizda birma-bir o'zgarishlar kiritishni boshladim. Hozir esa istalgan yangi loyiha uchun bu o'zgarishlarni qo'llab kelyapmiz. Backendda qilgan dastlabki 5 ta o'zgarishimni siz bilan baham ko'rmoqchiman. Junior dasturchilarga oz bo’lsa ham foydali bo’lsa xursand bo’lamiz! LINK

🔷 Join @xurshidbek_kurbanov
2
Forwarded from Jakhongir Soataliev
Ushbu maqolamiz Custom Class Loader-larga bagʻishlanadi
https://link.medium.com/IKenJk94lLb
Maqola Oʻzbek tilida
#java #jvm #class_loader

@Jakhongir_Soataliev
Forwarded from Otabek Ismoilov
Muvaffaqiyatli Git branching modeli

Bu qo'llanmada qanday qilib Git branchlar bilan ishlash va best practikalar ko'rsatilgan

Author: @programming_everyone
Forwarded from IT suhbat
#stack

Har bir Thread runtime ma'lumotlar saqlash uchun o'z Stack xotirasiga ega bo'ladi. Stack xotiraning ma'lum hajmi bo'ladi. Agar Thread Stack xotirasiga sig'maydigan darajada ko'p elementlar bilan ishlashga harakat qilsa, StackOverflow xatoligini keltirib chiqaradi.

Java oqimlari turli operatsion tizimlarda turlicha belgilangan hajmlarga ega Stacklar bilan ishlaydi. Misol uchun:
Windows IA32 — 64 KB
Windows IA64 — 320 KB
Windows x64 — 128 KB
Linux IA32 — 128 KB
Linux IA64 — 1024 KB
Linux x64 — 256 KB
Solaris/SPARC — 512 KB

Undan tashqari JVM ning ichki oqimlari bor. Misol uchun garbage collector, code generation oqimlari. Bular uchun hamma platformalarda hajm 256 KB qilib belgilangan.

Stack hajmini o'zgartirish uchun -Xss tanlovidan foydalanish mumkin. Misol uchun:
java -Xss:512k MyApplication


@it_suhbat
Forwarded from IT suhbat
#lock

Concurrency'da lock tushunchasining o'rni katta. Bugun shu haqida gaplashamiz.

Lock o'zbekchada qulf bo'ladi. Har bir obyekt lock'ga ega. Agar biz bir nechta oqimlar bilan ishlayotgan bo'lsak, murojaatlarni shu lock orqali cheklashimiz mumkin. Tasavvur qiling, obyekt — bir xona. Unga bitta eshikdan kiriladi va bu eshikning qulfi bor. Multithreading'da obyektni lock qilish deyilganda, ana shu xonaga bitta thread kirganidan keyin eshikni qulflash tushuniladi. Thread o'ziga tegishli ishni tugatib bo'lganidan keyin eshikning qulfini ochib(unlock), xonadan chiqib ketadi, navbatdagi thread'ga o'z o'rnini bo'shatadi.

Javada lock qilishning ikki xil yo'li bor.
Birinchisi — avtomat, synchronized kalit so'zi yordamida.

Ikkinchisi — qo'lda. Buning uchun bizga Lock interfeysi va uning merosxo'rlari yordamga keladi.
ReentrantLock yordamida biz kodning istalgan joyida obyektni lock qilamiz, try yordamida asosiy ishni bajaramiz va finally'da unlock qilib chiqib ketamiz.
Undan tashqari o'qish va yozish uchun ReentrantReadWriteLock'dan foydalanish mumkin. Bu o'z o'rnida 2 xil lock imkoniyatini beradi.

Read lock — bir paytning o'zida o'qish uchun xohlagancha oqim murojaat qilishi mumkin, faqatgina yozish imkoniyatini cheklaydi.
Write lock — yozish amaliyoti bo'layotgan vaqtda qolgan oqimlarga na yozish, na o'qish imkonini beradi.

In shaa Alloh, keyingi maqolada Atomic va Lock'ning bir-biridan farqi haqida gaplashamiz, tezliklarini solishtiramiz.

@it_suhbat
Forwarded from IT suhbat
#webclient #mutate

Aytaylik siz biror servisga so'rov yuborish uchun uning oldindan yozilgan tayyor kutubxonasidan foydalanayapsiz. Ko'pincha ichki loyihalarni o'zaro integratsiyalarida shunday tayyor kutubxonalar yoziladi, client sifatida. Shu joyda WebClient ishlatilgan bo'lsa, uning bean'i oldindan build qilib, e'lon qilingan bo'ladi.

Tasavvur qilaylik, sizga shu client kutubxona orqali yuborilgan so'rovlar yoki qabul qilib olingan javoblar logga chiqarilishi kerak bo'lib qoldi. Bean'ni qaytadan hosil qilmaysiz, bu ortiqcha ish. Mana shu joyda WebClient'ning mutate metodi yordamga keladi.

Bu metod orqali hosil qilingan bean'ni qaytadan o'zgartirsa bo'ladi. Tayyor WebClient'ga o'zingizning servisingizdan turib o'zgarishlar kiritsangiz bo'ladi. Mana shunday holatlarda bu metod o'zining hosil qilinishidan maqsadini ko'rsatadi :)

@it_suhbat
👍1