☕️ Java BACKEND developers </>☕️
185 subscribers
89 photos
148 videos
34 files
212 links
Download Telegram
Microservices are evil 👿

Ha, to'g'ri o'qidingiz. Mikroservislar yomon. Ular dasturchilarning samaradorligini tushiradi, juda sekin ishlay boshlashlariga sabab bo'ladi, kodni qiyinlashtiradi va sekinlashtiradi. Undan tashqari yana bir qancha muammolar olib keladi. Mikroservislar hech qachon monolitlarga tenglasha olmaydi bu jihatdan.

Lekin nega unda Mikroservislar shuncha haypga sabab bo'ldi? Nega hamma ularni ishlatishga, o'rganishga harakat qiladi?

Sababi bitta: boshqa yaxshiroq iloji yo'q.

Siz qilgan produktning foydalanuvchilar soni ko'paygan sari, severlaringizga yuk oshgan sari, siz qurgan produktingizni bo'lishga majbur bo'lasiz. Monolitngizni mikroservislarga bo'lasiz. Bitta katta ma'lumotlar bazasini bir nechta kichikroq bazachalarga bo'lasiz. Ha, aytganimdek ular ishingizni juda ham qiyinlashtiradi. Lekin sizning yangi millionlab foydalanuvchilaringiz sizning produktingizdan foydalanishda davom etishadi.

Bitta muammoni ikkinchi muammo yordamida yechgan bo'lasiz. Bu holatda ikkinchi muammo (mikroservislar) birinchi muammodan (produktingiz yukni ko'tara olmay, ishlamay qolishidan) kichikroq. Hayot davom etadi.

Bu holatni huddi Saraton (Rak) kassaligi va uning davolash usuliga, yani Kimyoterapiyaga solishtirsa bo'ladi. Kimyoterapiya ham odam organizmi uchun juda juda juda katta zarar. Nega unda dunyo bo'ylab aynan shu usuldan foydalaniladi?

Sababi bitta: boshqa yaxshiroq iloji yo'q.

Bitta muammoni ikkinchi muammo yordamida yechgan bo'lasiz. Bu holatda ikkinchi muammo (Kimyoterapiya) birinchi muammodan (Saraton kasalligidan kelib chiqqan o'limdan) kichikroq. Hayot davom etadi.

Tushindingiza? Mikroservislarni faqatgina majbur bo'lganda ishlatish kerak.

Ba'zi bir dasturchilar va kompaniyalar haypga berilib, 10ta foydalanuvchisi yo'q bo'lgan produktlarini mikroservislar yordamida qurishni boshlashadi. Natijada dasturchilar juda sekin ishlashadi, kodda xatolar ko'p bo'ladi, o'zgartirish juda qiyin bo'ladi. Pul olib keladigan foydalanuvchilar yo'q, lekin millionlab foydalanuvchisi bor produktlarda bor bo'lgan muammolar bor. "Worst of the both worlds" deyiladi ingliz tilida. Borib borib korxonada pul qolmasligi mumkin, yoki tezroq ishlaydigan raqib kompaniya bozorni egallab qo'yishi mumkin. Chunki ular mikroservis ishlatmaganda boshidayoq.

Hype Driven Development yaxshilikka olib kelmaydi odatda.

O'zi asli kodni o'zi bu "evil". Iloji boricha kodsiz hal qilgan yaxshi ishlarni. Kodni faqat majbur bo'lganda yozish kerak.

@jakhonrakhmonov
👍2
Yes, AI can code. But coding is only a small part of what competent software engineers do.

@jakhonrakhmonov
Bilasizlarmi men nima qilgan bo’lar edim? Qadamma qadam tushuntiraman:

1. https://github.com/codecrafters-io/build-your-own-x repositoriyasiga kirardim
2. Loyihalar ro’yxatini yaxshilan o’rganib chiqqan bo’lar edim
3. Eng yoqqanini tanlagan bo’lar edim.
4. O’sha mavzuni yaxshilab o’rganib chiqqan bo’lar edim.
5. Qurmoqchi bo’lgan narsamni kerak bo’lsa chizib chiqib dizayn qilgan bo’lar edim. Grafik dizayn bo’lishi shart emas. Hattoki Command-Line loyihalarni ham dizayn qilinadi. API tarafdan.
6. Loyihani o’zimga yoqadigan qilib qurgan bo’lar edim. Huddi o’zim uchun uy qurgan kabi. Bu loyiha men uchun. Boshqalarga arendaga bergani emas. Ichidagi hamma narsani sifatli qilgan bo’lar edim. Boshqalar “mehmonga” kelganda hayratda qolsin. Lekin eng asosiysi o’zim hursand bo’lay.

@jakhonrakhmonov
👍1
Forwarded from CODE_UZ
👋 Assalomu alaykumlar.
🥳 Uzoq kutilgan Spring Boot video darslari tez orada chiqadi.

👍 Notification on ni bosib qo'yamiz.

https://www.youtube.com/watch?v=uVvJJTqPVbY
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Software Engineering
@Transactional(rollbackFor = Exception.class)
Forwarded from Software Engineering
Bugun bir qiziq malumotga ko'zim tushib qoldi. @Transactional anotatsiyasi default holatda faqat Unchecked Exception lar bo'lganida rollback bo'lar ekan. Checked Exception larda esa commit bo'lar ekan. Bu muammoni hal qilish uchun @Transactional anotatsiyasidagi rollbackFor propery ni o'zgartirishimiz kerak.

Buni o'zgartirib qo'yishimiz shart. Chunki Database da muammo bo'lganida ko'pincha bizning backend imizda Checked Exception chiqadi va default holatda rollback bo'lishning o'rniga commit bo'lib ketadi. Yani database dan muammo chiqqanida @Transactional anotatsiyasi ACID(Atomicity, Consistency, Isolation, Durability) prinsipiga rioya qilmasligi mumkin.
👍3
Forwarded from Xurshidbek Kurbanov
#virtual #thread #javafuture
Java #BackEnd dan interview qilsam #Thread haqida 3 ta savol beraman.
1- Main thread nima va request larni faqat main thread olishda qanday muammo bor?
2- Request larni Main thread emas alohida yangi Thread da olish qanday muammo bor?
3- Yangi Thread muammosini Thread Pool qanday hal qiladi?

Ular qatoriga #Virtual #Thread ham qo’shildi, u #Javaning #kelajagi sifatida ko’rilmoqda. Lightweight threaded model 2018-yil #ProjectLoom bilan birga ishga tushilgan va 2023 yilda #JDK21 ning xususiyati sifatida qo’shildi. Chuqurroq kirib Thread va Virtual Thread farqlarini solishtirib ko’rdim.

#Thread:
- 1,000,000 ta threadlarni ishga tushirish: ~ 31.64 sekund
- Platform Thread
- Scheduling by OS
- Kernel thread, 1:1 mapping
- Runnable

#VirtualThread:
- 1,000,000 ta threadlarni ishga tushirish: ~ 0.38 sekund
- Virtual Thread
- Scheduling by JVM
- Carrier thread, 1:N mapping
- Continuation

🔷 Join @xurshidbek_kurbanov
Savol : Hozir hammada bitta kasallik avj olgan bilasizlarmi? Dasturchilar aksari bundan uzoqda bo'lsa kerak )
Одамзот доимо кам ҳаракат қилиб, кўп пул топиш пайида бўлган. Айниқса, бугунги замонда бу янада авж олмоқда.

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

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

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

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

@adolat_kuychisi
👍5