This media is not supported in your browser
VIEW IN TELEGRAM
Kodni teskari yozgan paytda 😂
This media is not supported in your browser
VIEW IN TELEGRAM
Ishlayaptimi? Tegma!
Biror joyga ishga borganda avval yozilgan loyihaga qo'shilsangiz, biror ortiqcha kodga ko'zingiz tushsa, uning ortiqchaligiga 100% ishonsangiz ham avval comment yoki documentationni o'qing. Aks holda videodagi holat bo'lishi mumkin. ;)
Biror joyga ishga borganda avval yozilgan loyihaga qo'shilsangiz, biror ortiqcha kodga ko'zingiz tushsa, uning ortiqchaligiga 100% ishonsangiz ham avval comment yoki documentationni o'qing. Aks holda videodagi holat bo'lishi mumkin. ;)
#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'proqnew keyword ishlatiladi.
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
#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 <-
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 <-
dasturlash.uz
Dasturlash | Dasturlashni oson va bepul o'rganing
https://dasturlash.uz - Dasturlash tillaridan tushinishga oson, namunalarga boy bo'lgan o'zbek tilida bepul darsliklar. Darsliklar, video, misollar va manunalarga boy manba!
❤1
Media is too big
VIEW IN TELEGRAM
📹 Qanday qilib GitHub Akkount ni Kuchaytirish Mumkin? GitHub va Git Haqida O'zbek Tilidagi Dars.
#FOYDALI
#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
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.
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.
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:
@ali_shaymanov_14_07
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
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
💻 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
📊 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:
2. JWT’ni validatsiya qilish:
Spring Security yordamida JWT ni tekshirish va tokenni boshqarish osonlashadi.
✅ 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 🇺🇿
🛡 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 🇺🇿
Telegram
Java UZ 🇺🇿
Bu kanalda Java va Spring Framework hamda yangi texnologiyalar bo'yicha ma'lumotlar berilib boriladi