Lombok CleanUp
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
-
Resource Management مدیریت منابع به فرآیند آزادسازی منابعی مانند
Connectionدیتابیس یاPreparedStatementگفته میشود که پس از اتمام کار باید بسته شوند تا از نشت حافظه و مشکلات عملکردی جلوگیری شود. -
Lombok یک کتابخانه در Java است که با استفاده از انوتیشنهای مختلف، کدهای تکراری (Boilerplate code) را کاهش میدهد و فرآیند توسعه را سریعتر میکند.
-
Annotation نوعی فراداده (Metadata) است که به کد اضافه میشود و به کامپایلر یا ابزارهای دیگر دستورات خاصی را برای اجرا یا تولید کد در هنگام کامپایل میدهد.
-
@Cleanup انوتیشنی در کتابخانه Lombok که وظیفه بستن خودکار منابع را بر عهده دارد. این انوتیشن جایگزینی برای بلوکهای پیچیده
try-finallyیاtry-with-resourcesاست. -
Try-with-resources یک ویژگی در Java (از نسخه ۷ به بعد) که به برنامهنویس اجازه میدهد منابع را درون پرانتز جلوی
tryتعریف کند تا پس از اتمام بلوک، به صورت خودکار بسته شوند. -
Finally Block بخش پایانی در ساختار مدیریت استثنا که تضمین میکند کدهای داخل آن، چه خطایی رخ دهد و چه رخ ندهد، در انتهای کار اجرا میشوند؛ معمولاً برای بستن منابع استفاده میشود.
-
Decompiler ابزاری که فایلهای کامپایل شده (
.class) را به کد قابل خواندن توسط انسان (.java) تبدیل میکند تا متوجه شویم در پشت صحنه چه کدهایی توسط ابزارهایی مثل Lombok تولید شده است.
موارد مصاحبه ای
-
چرا باید منابع (Resources) را حتماً بست؟ بستن منابعی مثل کانکشنهای دیتابیس ضروری است، زیرا در صورت باز ماندن، منابع سیستم اشغال شده و ممکن است برنامه با افت سرعت یا خطای اتمام ظرفیت منابع مواجه شود.
-
تفاوت اصلی @Cleanup با try-with-resources چیست؟ انوتیشن
@Cleanupکد را بسیار کوتاهتر و تمیزتر میکند و نیاز به ایجاد بلوکهای تودرتو را از بین میبرد. با این حال،try-with-resourcesیک استاندارد داخلی Java است، در حالی که استفاده از@Cleanupبه کتابخانه Lombok وابسته است. -
انوتیشن @Cleanup در پشت صحنه چگونه کار میکند؟ در زمان کامپایل، Lombok کدی تولید میکند که متغیر مورد نظر را درون یک بلوک
tryقرار داده و در بخشfinallyابتدا چک میکند که متغیرnullنباشد و سپس متدclose()آن را صدا میزند. -
آیا برای استفاده از @Cleanup نیاز به پیادهسازی اینترفیس خاصی است؟ به طور پیشفرض، این انوتیشن به دنبال متدی به نام
close()در آن شیء میگردد تا آن را صدا بزند.
بیشتر بدانید
-
IDE Tip برای مشاهده تغییراتی که Lombok در کد ایجاد میکند، میتوانید پروژه را
clean installکنید و سپس فایل کلس تولید شده در پوشهtargetرا باز کنید تا کد نهایی و بازسازی شده را ببینید. -
Development Tool استفاده از سایتها یا ابزارهای Online Java Decompiler به شما کمک میکند تا بایتکدهای تولید شده را بررسی کرده و درک عمیقتری از نحوه عملکرد انوتیشنها در پشت صحنه داشته باشید.
-
نکته کاربردی اگر متد بستن منبع شما نامی غیر از
close()دارد، میتوانید آن را در مقابل انوتیشن مشخص کنید، مثلاً:(value = "dispose") @Cleanup.
