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