5-modul · 5-dars: Lombok · Faker
Daraja: O'rta
Lombok · Faker. Java kutubxonalari va Stream bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Lombok · Faker tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Annotatsiyalar (`@Getter`, `@Setter`, `@Data`, `@Builder`...) orqali getter/setter, constructor, toString kabi takroriy (boilerplate) kodni compile paytida avtomatik yaratadi.
Test va namoyish uchun soxta (fake), lekin real ko'rinishdagi ma'lumot (ism, manzil, email, raqam) generatsiya qilish uchun.
## Intervyuga tayyorgarlik ### Lombok-ning vazifasi nima? Annotatsiyalar (`@Getter`, `@Setter`, `@Data`, `@Builder`...) orqali getter/setter, constructor, toString kabi takroriy (boilerplate) kodni compile paytida avtomatik yaratadi.
### JavaFaker Library nima uchun ishlatiladi? Test va namoyish uchun soxta (fake), lekin real ko'rinishdagi ma'lumot (ism, manzil, email, raqam) generatsiya qilish uchun.
## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.
Manbadagi 17 dars oldingi o‘quv arxividagi 10 guruhga birlashtirilgan: Lombok/Faker va Stream/Collectors hamda HttpClient/Gson/Reflection/Annotations birgalikda o‘rganiladi.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/5-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
// Lombok @Getter/@Builder compile-time processor talab qiladi.
// Faker test ma'lumotlari uchun; Java bilan deterministik alternativ:
var random = new java.util.Random(42);
System.out.println("student-" + random.nextInt(1000));
Keng tarqalgan xatolar
- Lombok ni IDE plagini o'rnatmasdan ishlatish - kod qizil bo'lib ko'rinadi.
- `@Data` ni entity ga qo'yish - `equals`/`hashCode` bog'lanishlarni ham qamrab, cheksiz rekursiya bo'lishi mumkin.
Mashqlar
- Bitta class ni Lombok bilan va Lombok siz yozib, qatorlar sonini solishtiring.
- `@Builder` bilan obyekt yaratib, o'qish qulayligini baholang.
Teglar: modul-05, pdp, nazariya