Simple Library Management with OOP | پروژه کتابخانه با شی گرایی
توضیحات جلسه
جزوه و مستندات
مفاهیم کلیدی
Record
Record یک ساختار دادهای در جاوا، از نسخه 14 به بعد، است که برای ایجاد کلاسهای حامل داده (Data Classes) استفاده میشود.
این ساختار بهصورت خودکار متدهایی مانند toString()، equals() و hashCode() را تولید میکند.
DTO (Data Transfer Object)
DTO الگویی برای انتقال داده میان لایههای برنامه است.
با استفاده از DTO، فقط اطلاعات موردنیاز به لایههای بالاتر یا کاربر منتقل میشود و تمام جزئیات موجودیت اصلی نمایش داده نخواهد شد.
Shift to Left
Shift to Left فرایندی در کار با آرایهها است که پس از حذف یک عنصر انجام میشود.
در این فرایند، برای جلوگیری از ایجاد فضای خالی با مقدار null در میانه آرایه، عناصر بعدی یک خانه به سمت چپ منتقل میشوند.
نکات مهم مصاحبهای
چرا از معماری چندلایه (Layered Architecture) استفاده میکنیم؟
معماری چندلایه برای رعایت اصل جداسازی وظایف (Separation of Concerns) استفاده میشود.
با این ساختار، تغییر در نحوه ذخیرهسازی دادهها در لایه Repository، تأثیری بر منطق برنامه در لایه Service نخواهد داشت.
تفاوت رابطه One-to-Many و Many-to-Many در این پروژه چیست؟
اگر از هر کتاب فقط یک جلد وجود داشت، رابطه از نوع یکبهچند (One-to-Many) بود.
اما چون از هر عنوان کتاب چندین جلد موجود است و هر کاربر میتواند چندین کتاب دریافت کند، رابطه از نوع چندبهچند (Many-to-Many) است.
برای مدیریت این رابطه، از یک کلاس میانی با نام Loan استفاده میشود.
هدف از استفاده از Record به جای Class در لایه DTO چیست؟
استفاده از Record باعث کاهش کدنویسی تکراری (Boilerplate Code) میشود.
همچنین، اشیای ایجادشده با Record بهصورت غیرقابلتغییر (Immutable) هستند و از امنیت دادهها هنگام جابهجایی میان لایهها محافظت میکنند.
بیشتر بدانید
نکته فنی
استفاده از کلاس LocalDate و متد now()، یکی از بهترین روشها برای ثبت تاریخ تراکنشها در جاوا است.
برای محاسبه اختلاف زمانی میان دو تاریخ نیز میتوان از متد ChronoUnit.DAYS.between() استفاده کرد.
