Simple University Project with OOP | پروژه دانشگاه با شی گرایی
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
-
Validation (اعتبارسنجی)
بررسی صحت دادههای ورودی (مانند طول کد ملی، وجود اعداد در نام یا پیچیدگی رمز عبور) قبل از ذخیرهسازی در دیتابیس. -
DTO (Data Transfer Object)
آبجکتهایی که برای انتقال داده بین لایهها استفاده میشوند؛ به خصوص زمانی که نیاز داریم ترکیبی از فیلدهای چند کلاس مختلف (مثلاً نام درس و نمره) را با هم منتقل کنیم. -
Middle Table (جدول واسط)
کلاسی که برای مدیریت روابط چند-به-چند (Many-to-Many) بین موجودیتها (مانند رابطه دانشجو و درس) استفاده میشود تا مشخص کند هر دانشجو چه درسهایی را اخذ کرده است.
نکات مهم مصاحبهای
-
چرا باید لایه Service و Repository را از هم جدا کرد؟
برای رعایت اصل تفکیک مسئولیتها (Separation of Concerns)؛ لایه سرویس فقط درگیر منطق برنامه است و لایه ریپازیتوری فقط نگران نحوه ذخیره و بازیابی دادههاست، که این کار تستنویسی و نگهداری کد را آسانتر میکند. -
تفاوت اعتبارسنجی کمهزینه و پرهزینه چیست؟
در اعتبارسنجیها ابتدا باید موارد ساده و کمهزینه مثل چک کردن طول رشته (length) را انجام داد و سپس سراغ موارد پرهزینه مانند پیمایش تکتک کاراکترها با حلقهforرفت تا پرفورمنس برنامه حفظ شود. -
چرا در پروژه از فیلدهای static برای آرایههای داده استفاده میکنیم؟
چون اگر آرایه به صورتinstanceتعریف شود، با هر بارnewکردن لایه سرویس یا ریپازیتوری، یک دیتابیس خالی جدید ایجاد میشود؛ اماstaticباعث میشود دادهها در سطح کلاس و بین تمام نمونهها مشترک باشند.
بیشتر بدانید
- Clean Code: متدها را تا حد امکان کوچک و تکمنظوره بنویسید. این کار باعث میشود کد شما خواناتر شده و قابلیت استفاده مجدد (Reusability) پیدا کند.
- Naming Convention: برای متدهایی که خروجی
booleanدارند، بهتر است نام را با کلماتی مثلisیاhasشروع کنید (مانندisValidNameیاisAccepted) .
