آنچه یاد خواهید گرفت:
به طور مؤثر به ابزارهای فریمورک NestJS مسلط شوید.
یک REST API (تا حدودی) واقعی را از ابتدا توسعه دهید.
یک معماری مستحکم و همهکاره ایجاد کنید.
همان اپلیکیشن را از ابتدا با ویژگیها و بهبودهای جدید گسترش دهید.
توضیحات دوره
به آشکار کردن NestJS خوش آمدید! در این بخش، مدرس مشکلی را که این دوره قصد دارد به آن بپردازد، هدف آن و در نهایت ساختار آن را توضیح خواهد داد.
مشکل
Node.js یک محیط اجرایی بکاند JavaScript است که در سالهای اخیر محبوبیت بالایی کسب کرده است و یکی از دلایل آن این است که اجازه میدهد از یک زبان برنامهنویسی مشابه (JavaScript) برای توسعه فرانتاند و بکاند استفاده کنید. با این حال، اگر به تنهایی استفاده شود، محیط نسبتاً «خامی» برای توسعه است زیرا شما مسئول موارد زیر هستید:
پیکربندی کتابخانهها
معماری کد
مسیریابی
و موارد دیگر
برای توسعه سیستمهای مستحکم به روشی حرفهای، نوشتن کد در Node.js خالص ممکن است چندان جالب نباشد. بسیاری از اوقات، ممکن است متوجه شوید که در حال «اختراع مجدد چرخ» هستید در حالی که راهکارهای تثبیتشده و بهینهای از قبل وجود دارند، و حفظ سیستم در طول زمان ممکن است به طور فزایندهای دشوارتر شود. به طور خلاصه، این مشکلی است که این دوره قصد حل آن را دارد.
هدف
قصد اصلی این دوره نشان دادن چگونگی استفاده از بیشترین پتانسیل فریمورک NestJS است که در سالهای اخیر به سرعت ظهور کرده است. ما این کار را با تمرکز بر راهکارهای معماری ظریف انجام خواهیم داد، در حالی که همه چیز را به روشی بصری و دلپذیر یاد میگیریم.
در اینجا، تمام درسها با استفاده از یک رویکرد کاملاً عملی آموزش داده میشوند و ما تئوری را تنها در زمان نیاز برای حل مشکلاتی که در طول مسیر به وجود میآیند، مطالعه خواهیم کرد. این دوره همچنین تدریجی است، به این معنی که ما توسعه سیستم بکاند خود را از پایه شروع خواهیم کرد و در طول دوره آن را با قابلیتها و ارتقاءهای بیشتر بهبود میبخشیم.
یک نکته مهم، رویکرد به معماری و طراحی کد که در اینجا استفاده میشود شبیه به یک پیشنهاد است. هیچ راه کاملاً بینقص و بدون خطایی برای توسعه یک سیستم، به ویژه یک سیستم پیچیده، وجود ندارد. با این اوصاف، شما آزاد هستید و حتی دعوت میشوید تا هر زمان که صلاح دیدید تغییراتی در کد ایجاد کنید. این همچنین یک راه عالی برای توسعه تواناییها و حس انتقادی شما در مورد کیفیت کد است.
ساختار
ما سیستم بکاند یک فروشگاه آنلاین را توسعه خواهیم داد. هر چیزی که مطالعه خواهیم کرد معطوف به ایجاد این اپلیکیشن خواهد بود. قوانین کسب و کار و در نتیجه نمودار UML آن ساده هستند، اگرچه روابط و کاردینالیتیهای جالبی وجود دارد. با این حال، تمرکز روی خود منطق تجاری نخواهد بود، بلکه بر روی راهکارهایی است که برای پیادهسازی و اجرای آن به کار خواهیم گرفت. نمودار کلاس به دلیل سادگی و در عین حال کامل بودن، بسیار شبیه (با تغییرات جزئی) به نموداری است که در دوره Java (همچنین در Udemy) توسط پروفسور Nélio Alves یافت میشود.
ماژول Core به بررسی این موضوعات میپردازد:
ایجاد پروژه
پیکربندی پروژه (ارگونومی/DX)
تولید و راهاندازی منبع (entity/module/controller/service و غیره)
اعتبارسنجی (100% مبتنی بر DTO)
ایجاد پایگاه داده (با Docker)
ادغام TypeORM
پیکربندی (متغیرهای محیطی)
و موارد دیگر
دوره کامل شامل ماژولهای زیر است:
ماژول Core - توسعه بکاند با NestJS (در دسترس)
ماژول بهبودها/نکات (در دسترس)
ماژول موازی - Prisma (به زودی)
ماژول اضافی 1 - Authentication/Authorization (به زودی)
ماژول اضافی 2 - Exception Filters (به زودی)
ماژول اضافی 3 - OpenAPI Specification (به زودی)
ماژول اضافی 4 - مدیریت فایل (به زودی)
ماژول اضافی 5 - کوئری پیشرفته (به زودی)
ماژول اضافی 6 - تست خودکار (به زودی)
و در نهایت، مدرس فقط میخواهد یادآوری کند که در طول کل دوره، معماری همیشه در درجه اول اهمیت قرار دارد.
این دوره برای چه کسانی مناسب است؟
توسعهدهندگان Node.js که خواهان روش بهتری برای معماری اپلیکیشنهای خود هستند.
توسعهدهندگان مبتدی NestJS که میخواهند تسلط بهتری به این فریمورک داشته باشند.
توسعهدهندگان NestJS که میخواهند سازماندهی کد و معماری خود را بیشتر بهبود ببخشند.
توسعهدهندگانی که چیزی بیش از یادگیری ویژگیهای خاص میخواهند: توسعه سیستمهای بکاند مستحکم، مقیاسپذیر و قابل نگهداری