روز ۴۸ یادگیری MERN Stack

من در روز ۴۸ از مسیر مهندسی full-stack خود هستم.

دیروز، کدم را به معماری MVC منتقل کردم. امروز، لایه model خود را با استفاده از JavaScript Classes و Object-Oriented Programming بهبود بخشیدم.

استفاده از تعریف‌های بدون ساختار (loose) برای اشیاء را متوقف کردم. در عوض، کلاس‌های قابل استفاده مجدد (reusable) برای مدیریت عملیات فایل و ذخیره‌سازی داده‌ها ساختم. این تغییر، اسکریپت‌های ساده را به موتورهای مقیاس‌پذیر تبدیل می‌کند.

در اینجا نحوه ساختاردهی کدم در home.js آمده است:

  • Constructor: من از فریم‌ورک ES6 class برای ایجاد یک قالب استاندارد داده استفاده می‌کنم. اکنون هر ورودی خانه شامل نام، قیمت، مکان، امتیاز و URL عکس است. این کار ثبات داده‌ها را در سراسر سرور تضمین می‌کند.

  • متد Save: من یک متد .save() ایجاد کردم. این متد داده‌های موجود را به صورت asynchronous می‌خواند. سپس از fs.writeFile() برای به‌روزرسانی فایل homesdata.json استفاده می‌کند. این کار آرایه‌های سراسری (global arrays) را با یک فرآیند ذخیره‌سازی کنترل‌شده جایگزین می‌کند.

  • متدهای Static: من متدهای static را برای بازیابی داده‌ها پیاده‌سازی کردم. از static fetchAll() برای استخراج رکوردها از دیسک استفاده می‌کنم. این کار به کنترلرها اجازه می‌دهد بدون نیاز به ایجاد یک نمونه (instance) جدید از کلاس، به داده‌ها دسترسی داشته باشند.

استفاده از کلاس‌ها باعث می‌شود کد من تمیزتر و مقیاس‌پذیری آن آسان‌تر شود.

منبع: https://dev.to/ali_hamza_589ec7b3eb6688d/day-48-of-leaning-mern-stack-123n