5 subscribers
15 photos
13 videos
3 files
21 links
14❤️
Download Telegram
#SAVOL

Object nima va Object yaratish usullari?

#JAVOB

Object bu qaysidir classdan olingan nusxa. Bitta class dan bir nechta object olsak bo'ladi.



Ob'ekt yaratish usullari.
Javadan object yaratishning bir nechta usuli bor.

By new key word - new kalit so'zi orqali.
By newInstance() metod - newInstance() metodi orqali.
By clone() metod - clone metodi orqali.
By deserialization - deserializatsiya orqali.
By factory method - factory usuli orqali.

Ko'proq new keyword ishlatiladi.
#SAVOL

OOP nima ?

#JAVOB

OOP - Object Oriented Programming ya'ni ob'ektga asoslangan dasturlash deb tarjima qilinadi. OOP bu qisqartmasi.

OOP bu Ob'ektga asoslanga dasturlash bo'lib dasturlash davomida asosan ob'yekt lardan foydalaniladi.

Code yozish uchun oson.
Yozilgan kodlarni tushunish , o'zgartirish oson.
Bitta yozilgan kodni qayta ishlatish mumkin.
Parallel dasturlashni imkonini beradi. Ya'ni loyihani qismlarga ajratib bir vaqtni o'zida qismlarni ishlash mumkin.
Xavsizlik tomonidan kuchliroq.
Vorislik, Polimorfizm , Inkapsulatsiya , Abstraksiya  tamoyillaridan foydalanish imkonini beradi.

->MAQOLANI O'QISH <-
1
Media is too big
VIEW IN TELEGRAM
📹 Qanday qilib GitHub Akkount ni Kuchaytirish Mumkin? GitHub va Git Haqida O'zbek Tilidagi Dars.

#FOYDALI
1
#dasturlash

Aynan dasturchilar uchun kuchli chellenj. Ushbu sayt orqali oʻzingiz biladigan dasturlash tilingiz bo'yicha kod yozib bilimingizni sinab ko'ring.

LINK 👉 codewars.com

#FOYDALI
1
Java Backend
1695993267428.png
𝗪𝗵𝗲𝗻 𝘁𝗼 𝘀𝗲𝗹𝗲𝗰𝘁 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝐬?

Choosing the correct design pattern in software engineering is critical to practical problem-solving.
This post will try to simplify the process, helping you decide between patterns based on specific needs.
To select a pattern, we must first go through the problem identification. If the problem is related to:
🔸 Object Creation? → Creational Patterns
🔸 Object Assembly? → Structural Patterns
🔸 Object Interactions? → Behavioral Patterns
1. Singleton: Ensures only one instance exists.
2. Factory Method: Delegates object instantiation to subclasses.
3. Abstract Factory: Creates related object families without specifying their concrete classes.
4. Prototype: Clones objects for a prototypical instance.
5. Builder: Constructs complex objects step by step.
6. Adapter: Bridges incompatible interfaces.
7. Bridge: Separates abstraction from implementation.
8. Composite: Treats single and composite objects uniformly.
9. Decorator: Adds behaviors to objects dynamically.
10. Facade: Simplifies complex system interfaces.
11. Flyweight: Shares objects to reduce memory.
12. Proxy: Controls object access.
13. Observer: Notifies changes to multiple objects.
14. Strategy: Encapsulates interchangeable algorithms.
15. Command: Encapsulates a request as an object.
16. State: Changes object behavior with internal state.
17. Visitor: Adds operations to object structures without modifying them.
18. Memento: Captures and restores object states externally.
19. Iterator: Sequentially accesses elements of a collection.
20. Mediator: Centralizes complex communications.
21. Chain of Responsibility: Passes requests along a chain of handlers.
22. Template Method: Defines the skeleton of an algorithm.
2
#Collections

Yuqoridagi rasmda Javadagi deyarli har bir ma'lumot tuzilmasini qaysi vaziyatda tanlashlik uchun diagramma ishlab chiqilgan va juda tushunarli.
2
#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


@ali_shaymanov_14_07
1👍1
Algoritm texnikalari:

1. Prefix sum
2. Two pointers
3. Sliding window
4. Fast and slow pointers
5. Linked list in-place reversal
6. Monotonic stack
7. Top K elements
8. Overlapping intervals
9. Modify binary search
10. Binary tree traversal
11. Depth-First Search(DFS)
12. Breadth-First Search(BFS)
13. Matrix traversal
14. Backtracking
15. Dynamic Programming(DP)

Bularni bilsangiz, leetcode'dagi koʻplab masalalarni qiynalmasdan ishlay olasiz.

@1407
Bugungi masalani ancha o'ylab o'tirdim boshida.

Keyin bir yaxshi yechim kelib qoldi))
3
💻 Dasturchilar uchun "Must have" platformalar!

📊 Hozirda IT sohasida muvaffaqiyatga erishish uchun eng foydali va samarali platformalarni topish, mavjud resurslar ko‘pligi sababli, Sizning rivojlanishingizga katta ta'sir ko‘rsatadi.
🚀 Quyida Sizning ko‘nikmalaringizni yanada boyitishga yordam beradigan 5 ta platformani taqdim etamiz.

1. GitHub
Kod saqlash va versiyalarni boshqarish uchun asosiy platforma. Dasturchilar bilan hamkorlik qiling, open-source loyihalarga hissa qo‘shing va o‘z loyihalaringizni boshqaring.
🌐 GitHub’ga o‘tish

2. Stack Overflow
Kodlashda muammo bormi? Stack Overflow’da javob bor! Eng yirik IT mutaxassislari hamjamiyatiga qo‘shiling va texnik qiyinchiliklarni bartaraf eting.
🌐 Stack Overflow’ga o‘tish

3. LinkedIn Learning
IT ko‘nikmalaringizni rivojlantirish uchun professional kurslar. Bulut texnologiyalari, kiberxavfsizlik va boshqa sohalarda bilim oling.
🌐 LinkedIn Learning’ga o‘tish

4. Coursera
Dunyodagi eng yaxshi universitetlar va texnologik kompaniyalardan o‘rganing. Muhim IT ko‘nikmalarni egallang va xalqaro sertifikatlarga ega bo‘ling.
🌐 Coursera’ga o‘tish

5. LeetCode
Kodlash bo‘yicha muammolarni hal qilish ko‘nikmalaringizni oshiring va texnik intervyularga tayyorlaning. Bu platforma Sizni eng yaxshi texnologiya kompaniyalari darajasiga olib chiqadi!
🌐 LeetCode’ga o‘tish

💡 Sizning sevimli platformangiz qaysi? Izohlarda bo‘lishing!

@digitalitvacancy
🌐 JWT va Spring Cloud Gateway yordamida mikroxizmatlar xavfsizligini ta'minlash


🛡 Mikroxizmatlar arxitekturasi bilan ishlaganda xavfsizlikni ta'minlash juda muhim.
Ushbu postda JWT (JSON Web Token) va Spring Cloud Gateway orqali mikroxizmatlar xavfsizligini ta'minlash usullarini ko‘rib chiqamiz.


💡 JWT nima?

JWT (JSON Web Token) – bu foydalanuvchi autentifikatsiyasini va ma’lumot almashinuvini xavfsiz amalga oshiruvchi, raqamli imzo bilan tasdiqlangan token. JWT uch qismdan iborat:
1️⃣ Header – algoritm va token turi haqida ma’lumot.
2️⃣ Payload – foydalanuvchi va huquqlar haqidagi ma’lumot.
3️⃣ Signature – tokenning o‘zgartirilmaganligini tasdiqlovchi imzo.


🚪 Spring Cloud Gateway nima?

Spring Cloud Gateway – bu mikroxizmatlar uchun API gateway vazifasini bajaruvchi vosita bo‘lib:
✔️ Xizmatlarga so‘rovlarni marshrutlash.
✔️ Xavfsizlikni boshqarish.
✔️ So‘rovlarni o‘zgartirish yoki kuzatish imkonini beradi.


⚙️ JWT va Gateway yordamida autentifikatsiya

📌 JWT ishlash jarayoni
1️⃣ Foydalanuvchi tizimga kirganda server JWT yaratadi.
2️⃣ Har bir so‘rovda foydalanuvchi JWT’ni yuboradi.
3️⃣ Gateway JWT’ni tekshiradi va xizmatlarga ruxsat beradi.


🛠 Spring Cloud Gateway’da JWT ishlatish:

Gateway’da JWT autentifikatsiyasini qo‘llash uchun:
1. Tokenni tekshirish uchun filter qo‘shish:

@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
return http.csrf().disable()
.authorizeExchange(exchanges -> exchanges
.pathMatchers("/auth/**").permitAll()
.anyExchange().authenticated()
)
.oauth2ResourceServer(ServerHttpSecurity.OAuth2ResourceServerSpec::jwt)
.build();
}


2. JWT’ni validatsiya qilish:

Spring Security yordamida JWT ni tekshirish va tokenni boshqarish osonlashadi.

spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: https://your-issuer.com



Afzalliklari:

✔️ Markazlashgan xavfsizlik: Gateway orqali barcha xizmatlarni himoya qilish.
✔️ Skalabillik: Har bir xizmatga tokenni tekshirishni yuklamaslik.
✔️ Ochiqlik: JWT ma’lumotlari shifrlanmagan, lekin imzo bilan himoyalangan.

🛑 E’tiborga olish kerak bo‘lganlar:
⚠️ Tokenning muddati: Har bir JWT’ni o‘z vaqtida tugatib yangilab turish kerak.
⚠️ Man-in-the-Middle (MITM) hujumlar: HTTPS’dan foydalaning.
⚠️ Tokenni nazorat qilish: Ixtiyoriy tokenlarni qayta chaqirish mexanizmini joriy qilish foydali.

📚 Manbalar:
📌 Spring Security hujjatlari: Spring Security JWT
📌 Spring Cloud Gateway: Spring Cloud Gateway

💬 Siz JWT bilan ishlashda qanday qiyinchiliklarga duch kelgansiz? Fikrlaringizni qoldiring! 😊

📌 Ko‘proq bilim olish uchun obuna bo‘ling:

👉 🔗 Java UZ 🇺🇿
💡 Spring Cloud Hystrix: Mikroservislar uchun mustahkamlik vositasi

Mikroservis arxitekturasida, servislar o‘zaro bog‘langan va birining ishlamasligi butun tizimga ta’sir qilishi mumkin. Spring Cloud Hystrix mikroservislar ichida xatoliklarni boshqarish va ularning o‘zaro mustahkamligini ta’minlash uchun yaratilgan circuit breaker vositasi hisoblanadi.


💡 Hystrix nima?
Hystrix – bu mikroservislar orasida xatoliklarni izolyatsiya qilish va ularni tizimda keng tarqalishini oldini olish uchun ishlatiladigan kutubxona.
U xizmat ko‘rsatishda kechikishlar yoki nosozliklarni aniqlab, alternativ yo‘nalish (fallback) taklif qiladi.


🛠 Afzalliklari
✔️ Xatoliklarni izolyatsiya qilish: Biror xizmat ishlamasa, uning ta’siri boshqalarga yetib bormaydi.
✔️ Fallback mexanizmi: Asosiy xizmat ishlamay qolsa, zaxira javobni taqdim etadi.
✔️ Tizim monitoringi: Qo‘shimcha kuzatuv imkoniyatlari bilan tizim holatini baholash.
✔️ Qo‘llash osonligi: Spring ekotizimi bilan oson integratsiya qilinadi.


📄 Hystrix kod namunalari
1️⃣ Oddiy xizmatni himoya qilish:

@HystrixCommand(fallbackMethod = "fallbackMethod")
public String getUserInfo(String userId) {
// Asosiy xizmat
return restTemplate.getForObject("http://user-service/users/" + userId, String.class);
}

// Fallback xizmati
public String fallbackMethod(String userId) {
return "Foydalanuvchi haqida ma’lumot vaqtincha mavjud emas.";
}

Izoh: Agar user-service ishlamasa, fallbackMethod avtomatik ishga tushadi.


📈 Asosiy foydalanish hollari
1️⃣ Xizmatlararo kechikishlarni boshqarish: Sekin ishlayotgan xizmatlarni izolyatsiya qilish.
2️⃣ Trafikni boshqarish: Yuqori yuklama paytida zaxira xizmatlarni yoqish.
3️⃣ Monitoring va kuzatuv: Tizim holatini real vaqt kuzatish orqali nosozliklarni aniqlash.


⚠️ Best Practices
✔️Fallback mexanizmini har doim sozlang: Xizmat ishlamasa, foydalanuvchi muammosiz javob olishi kerak.
✔️Timeout qiymatlarini sozlashni unutmang: Kechikishlar xatolik sifatida aniqlanishi kerak.
✔️Monitoring vositalaridan foydalaning: Hystrix Dashboard yoki Turbine bilan tizimni kuzating.

📚 Xulosa
Spring Cloud Hystrix mikroservislar uchun barqarorlik va ishlash samaradorligini oshirishda muhim vosita hisoblanadi. U yordamida xizmatlar orasidagi xatoliklarni boshqarib, tizimni barqaror qilish mumkin.

💬 Siz Hystrix bilan ishlaganmisiz? Fikr va tajribangizni izohlarda qoldiring! 👇

📌 Ko‘proq bilim olish uchun obuna bo‘ling:

👉 🔗 Java UZ 🇺🇿
1👍1
🤖 Java ilovasida ChatGPT integratsiyasi 🚀

ChatGPT – OpenAI tomonidan taqdim etilgan kuchli AI modeli. Uni Java ilovalariga qo‘shish orqali foydalanuvchilar bilan muloqotni avtomatlashtirish, matn tahlili va boshqa AI imkoniyatlarini qo‘llash mumkin.


🛠 Integratsiya uchun talablar
✔️OpenAI API kaliti (https://platform.openai.com/signup sahifasidan ro‘yxatdan o‘tib, API kalitini oling).
✔️Java ilovasi uchun HTTP klient (masalan, OkHttp yoki RestTemplate).
✔️JSON parser (masalan, Jackson yoki Gson).


📄 Namuna kod:

import okhttp3.*;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ChatGPTClient {
private static final String API_URL = "https://api.openai.com/v1/chat/completions";
private static final String API_KEY = "YOUR_API_KEY";

public String sendMessage(String message) throws Exception {
OkHttpClient client = new OkHttpClient();
ObjectMapper mapper = new ObjectMapper();

String json = mapper.writeValueAsString(Map.of(
"model", "gpt-3.5-turbo",
"messages", new Object[]{Map.of("role", "user", "content", message)}
));

Request request = new Request.Builder()
.url(API_URL)
.header("Authorization", "Bearer " + API_KEY)
.post(RequestBody.create(json, MediaType.parse("application/json")))
.build();

try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
}


📈 Foydalanish hollari:

1️⃣ Chatbotlar: Foydalanuvchilar so‘rovlariga avtomatik javob.
2️⃣ Avtomatlashtirish: Hisobotlar va ma’lumotlarni qayta ishlash.
3️⃣ Tahlil: Matnlarni tahlil qilish va tarjima qilish.

⚠️ Maslahatlar:
✔️API kalitni xavfsiz saqlang.
✔️Ma’lumotlarni optimallashtiring va ortiqcha tokenlar ishlatilishiga yo‘l qo‘ymang.

📚 Xulosa:
Java va ChatGPT integratsiyasi bilan foydalanuvchi tajribasini kuchaytiruvchi intellektual ilovalarni yaratishingiz mumkin!

📌 Ko‘proq bilim olish uchun obuna bo‘ling:

👉 🔗 Java UZ 🇺🇿

📌 Hash taglar:
#ChatGPT #OpenAI #ArtificialIntelligence #Chatbot@Java_Backend_Developer
2