آموزش نست‌جی‌اس آزاد شده: توسعه بک‌اند‌های قوی و قابل نگهداری - آخرین آپدیت

دانلود NestJS Unleashed: Develop Robust and Maintainable Backends

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

تسلط بر NestJS: معماری قدرتمند و مقیاس‌پذیر برای REST API

با استفاده از چارچوب قدرتمند NestJS، معماری‌ای پایدار و مقیاس‌پذیر برای پروژه‌های خود بسازید. این دوره به شما کمک می‌کند تا ابزارهای NestJS را به طور کامل فرا گرفته و یک REST API واقعی از ابتدا تا انتها توسعه دهید.

اهداف کلیدی دوره:

  • استفاده بهینه از پتانسیل‌های چارچوب NestJS برای ساخت معماری‌ای مستحکم و مقیاس‌پذیر.

  • تسلط کامل بر ابزارهای چارچوب NestJS و پیاده‌سازی حرفه‌ای آن‌ها.

  • توسعه یک REST API واقعی از پایه، گام به گام.

  • ایجاد یک معماری قدرتمند و چندمنظوره برای اپلیکیشن‌های وب.

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

پیش‌نیازها

  • مبانی برنامه‌نویسی (مانند برنامه‌نویسی شیءگرا و کمی برنامه‌نویسی تابعی).

  • آشنایی با TypeScript (و در نتیجه JavaScript).

  • مبانی پایگاه داده (توصیه می‌شود).

  • درک مفاهیم REST (توصیه می‌شود).

معرفی دوره NestJS Unleashed

به NestJS Unleashed خوش آمدید! در این بخش، به بررسی مشکلی که این دوره به حل آن می‌پردازد، هدف اصلی دوره و ساختار آن می‌پردازیم.

مشکل: پیچیدگی‌های توسعه بک‌اند با Node.js خام

Node.js یک محیط اجرایی جاوا اسکریپت برای بک‌اند است که در سال‌های اخیر به محبوبیت زیادی دست یافته است. یکی از دلایل این محبوبیت، امکان استفاده از یک زبان برنامه‌نویسی واحد ( JavaScript ) برای توسعه هم در فرانت‌اند و هم در بک‌اند است. با این حال، استفاده به تنهایی از Node.js می‌تواند محیطی "خام" و نیازمند مدیریت جزئیات فراوان باشد، که مسئولیت آن‌ها با شماست، از جمله:

  • تنظیم کتابخانه‌ها
  • معماری کد
  • مسیریابی (Routing)
  • و موارد دیگر

برای توسعه سیستم‌های قدرتمند به صورت حرفه‌ای، ممکن است کدنویسی با Node.js خام جذابیت چندانی نداشته باشد. اغلب اوقات، مجبورید چرخ را دوباره اختراع کنید، در حالی که راه‌حل‌های تثبیت شده و بهینه‌ای وجود دارند. این امر می‌تواند نگهداری سیستم را در طول زمان دشوارتر کند. به طور خلاصه، این مشکلی است که این دوره قصد حل آن را دارد.

هدف دوره: تسلط بر NestJS برای توسعه حرفه‌ای

هدف اصلی این دوره، نمایش نحوه استفاده حداکثری از پتانسیل‌های چارچوب NestJS است که در سال‌های اخیر به سرعت رشد کرده است. این کار را با تمرکز بر راه‌حل‌های معماری زیبا انجام خواهیم داد و در عین حال، همه چیز را به شیوه‌ای شهودی و دلپذیر خواهیم آموخت.

در اینجا، تمام درس‌ها با یک رویکرد کاملاً عملی ارائه می‌شوند و ما تئوری را تنها در صورتی مطالعه خواهیم کرد که برای حل مشکلات پیش‌بینی شده در طول مسیر ضروری باشد. این دوره همچنین تکاملی است، به این معنی که توسعه سیستم بک‌اند خود را از ابتدا آغاز کرده و آن را با قابلیت‌ها و ارتقاءهای بیشتری در طول دوره بهبود خواهیم بخشید.

نکته مهم این است که رویکرد به معماری و طراحی کد که در اینجا استفاده می‌شود، مانند یک پیشنهاد است. هیچ روش کاملاً بی‌نقص و بدون نقصی برای توسعه یک سیستم وجود ندارد، به خصوص سیستمی پیچیده. با این وجود، آزادانه و حتی دعوت می‌شوید که در صورت مناسب دیدن، تغییراتی در کد ایجاد کنید. این همچنین راهی عالی برای توسعه توانایی‌ها و حس انتقادی شما نسبت به کیفیت کد است.

ساختار دوره: از پایه تا پیشرفته

ما سیستم بک‌اند یک فروشگاه آنلاین را توسعه خواهیم داد. هر آنچه مطالعه می‌کنیم، به سمت ایجاد این اپلیکیشن هدایت خواهد شد. قوانین کسب و کار و در نتیجه نمودار UML آن ساده هستند، اگرچه روابط و کاردینالیتی‌های جالبی وجود دارند. با این حال، تمرکز اصلی بر خود منطق کسب و کار نخواهد بود، بلکه بر راه‌حل‌هایی که برای زنده کردن آن پیاده‌سازی می‌کنیم، خواهد بود. کلاس دیاگرام با تغییرات جزئی، مشابه دیاگرام موجود در دوره جاوا (که آن هم در Udemy توسط پروفسور نلیو آلوز ارائه شده است) می‌باشد، به دلیل سادگی و در عین حال کامل بودن آن.

ماژول هسته (Core Module):

  • ایجاد پروژه
  • تنظیمات پروژه (راحتی استفاده / تجربه توسعه‌دهنده - DX)
  • تولید و تنظیم منابع (موجودیت/ماژول/کنترلر/سرویس و غیره)
  • اعتبارسنجی (۱۰۰% مبتنی بر DTO)
  • ایجاد پایگاه داده (با استفاده از Docker)
  • یکپارچه‌سازی با TypeORM
  • پیکربندی (متغیرهای محیطی)
  • و موارد بیشتر

کل دوره شامل ماژول‌های زیر است:

  • ماژول هسته - توسعه بک‌اند با NestJS
  • ماژول بهبودها/نکات
  • ماژول اضافی ۱ - احراز هویت/مجوز
  • ماژول اضافی ۲ - فیلترهای خطا (Exception Filters)
  • ماژول اضافی ۳ - مشخصات OpenAPI
  • ماژول اضافی ۴ - مدیریت فایل
  • ماژول اضافی ۵ - کوئری‌های پیشرفته
  • ماژول اضافی ۶ - تست‌های خودکار
  • ماژول موازی - Prisma
  • بهبودهای بیشتر

و در نهایت، مایلم یادآوری کنم که در طول کل دوره، معماری همیشه حائز اهمیت است.

سفر آغاز می‌شود

با توجه به این توضیحات، امیدوارم تجربه خوبی در توسعه این پروژه با من داشته باشید و در جهات بسیاری به عنوان یک توسعه‌دهنده بک‌اند، خود را بهبود بخشید. در صورت تهیه دوره، آنجا شما را خواهم دید. بهترین آرزوها.

اعتبار ویدیوی تبلیغاتی:

  • انیمیشن/تدوین ویدیو - Fluxo Digital + EngajeEasy
  • موسیقی - AudioCoffee

سرفصل ها و درس ها

مقدمه Introduction

  • ارائه Presentation

  • نسخه‌های فعلی Current Versions

  • ابزارهای مورد نیاز Required Tools

ارتقاء نسخه NestJS Upgrading NestJS Version

  • ارتقاء پکیج‌ها (ncu) - NestJS نسخه ۹ به ۱۰ Upgrading Packages (ncu) - NestJS v9 to v10

  • NestJS نسخه ۱۰ به ۱۱ NestJS v10 to v11

قدم‌های اولیه First Steps

  • ایجاد پروژه Project Creation

  • پیکربندی پایه Basic Configuration

  • اولین انتیتی - کاربر First Entity - User

اعتبارسنجی Validation

  • اعتبارسنجی Validation

  • اعتبارسنجی پایه Basic Validation

  • اعتبارسنجی مشخص‌تر More Specific Validation

  • ممنوع کردن فیلدهای عجیب Forbid Strange Fields

  • چه موارد دیگری می‌توانند اعتبارسنجی شوند؟ What else could be validated?

  • اعتبارسنجی آیدی Id Validation

  • فایل اختصاصی گزینه‌ها Options Dedicated File

ایجاد پایگاه داده Database Creation

  • ایجاد پایگاه داده با Docker Database Creation with Docker

یکپارچه‌سازی TypeORM TypeORM Integration

  • یکپارچه‌سازی TypeORM TypeORM Integration

  • اتصال به پایگاه داده Database Connection

  • نگاشت انتیتی‌ها Entity Mapping

  • مهاجرت‌ها Migrations

  • الگوی Repository Repository Pattern

موضوعات مستقل Standalone Topics

  • صفحه‌بندی Pagination

  • محدودیت‌های DTO DTO Limitations

  • ترکیب Decorator Decorator Composition

پیکربندی Configuration

  • پیکربندی Configuration

  • متغیرهای محیطی Environment Variables

  • دسترسی و اعتبارسنجی Availability and Validation

  • استفاده از متغیرها Using the Variables

  • فضای نام پیکربندی و ثبت جزئی Configuration Namespace and Partial Registration

  • کاهش کد تکراری Reducing Boilerplate

  • متغیرهای محیطی در فایل اصلی Env Vars in Main File

  • تولید URL پایگاه داده در کد Generating Database URL in Codebase

انتیتی‌های باقی‌مانده Remaining Entities

  • انتیتی سفارش Order Entity

  • انتیتی پرداخت Payment Entity

  • انتیتی دسته بندی Category Entity

  • انتیتی محصول Product Entity

  • انتیتی آیتم سفارش Order Item Entity

منطق باقی‌مانده Remaining Logic

  • منطق دسته بندی Category Logic

  • منطق محصول Product Logic

  • اعتبارسنجی تو در تو Nested Validation

  • بارگذاری تابع Function Overload

  • منطق سفارش Order Logic

  • نمایش فیلدهای دریافت Exposing Get Fields

  • منطق پرداخت Payment Logic

تغذیه داده Seeding

  • تغذیه داده Seeding

پایان‌بندی Closing

  • پایان‌بندی Closing

ماژول بهبودها/نکات Improvements/Tips Module

  • ارائه Presentation

  • حذف نرم افزار چیست؟ What is Soft Delete?

  • مشکلی با تبدیل ضمنی A Problem with Implicit Conversion

  • رفع - تبدیل بولین Fix - Boolean Casting

  • حذف نرم Soft Delete

  • بازیابی Recover

  • اعتبارسنجی رمز عبور Password Validation

  • الگوی Regex Regex Pattern

  • اعتبارسنج سفارشی Custom Validator

  • اعتبارسنجی‌های متعدد Multiple Validations

  • CORS CORS

  • Helmet Helmet

  • UUID UUID

ماژول اضافی ۱ - احراز هویت/مجوز Extra Module 1 - Authentication/Authorization

  • ارائه Presentation

  • هش کردن رمز عبور Password Hashing

  • راه حل پایه Basic Solution

  • سرویس انتزاعی Abstract Service

  • شنونده رویداد Event Listener

  • حذف رمز عبور Excluding Password

  • احراز هویت Authentication

  • استراتژی محلی (۱/۳) Local Strategy (1/3)

  • استراتژی محلی (۲/۳) Local Strategy (2/3)

  • استراتژی محلی (۳/۳) Local Strategy (3/3)

  • Decorator کاربر درخواست Request User Decorator

  • رابط کاربر درخواست Request User Interface

  • میان‌افزار اعتبارسنجی Validation Middleware

  • نکته - میان‌افزار عمومی Tip - Generic Middleware

  • استراتژی JWT (۱/۳) JWT Strategy (1/3)

  • استراتژی JWT (۲/۳) JWT Strategy (2/3)

  • استراتژی JWT (۳/۳) JWT Strategy (3/3)

  • مسیرهای عمومی Public Routes

  • مجوز Authorization

  • نقش Role

  • مهاجرت درج مدیر Insert Admin Migration

  • مسیر اختصاص نقش Assign Role Route

  • ذخیره نقش در کاربر درخواست Storing Role in Request User

  • نیاز به مجوزها Requiring Permissions

  • ممنوعیت آرایه‌های خالی Forbid Empty Arrays

  • بررسی‌های بیشتر مجوز More Authorization Checks

  • محدودیت نرخ درخواست Rate Limiting

  • رفع - مسیر بازیابی Fix - Recover Route

ماژول اضافی ۲ - فیلترهای استثناء Extra Module 2 - Exception Filters

  • ارائه Presentation

  • فیلتر استثناء یافت نشد NotFound Exception Filter

  • ساختار پایه فیلتر Filter Basic Structure

  • ساختار خطا Error Structure

  • استخراج داده پیام Extracting Message Data

  • پیکربندی پاسخ Response Setup

  • فیلتر استثناء پایگاه داده Database Exception Filter

  • پیکربندی پایه Basic Setup

  • ایجاد داده خطا Creating Error Data

  • آخرین مراحل Last Steps

ماژول اضافی ۳ - مشخصات OpenAPI Extra Module 3 - OpenAPI Specification

  • ارائه Presentation

  • سند پایه Base Document

  • پلاگین Swagger CLI Swagger CLI Plugin

  • انواع نگاشت شده Swagger Swagger Mapped Types

  • تشخیص فیلدهای اختیاری Detecting Optional Fields

  • پسوندهای نام فایل File Name Suffixes

  • بصیرت کامنت‌ها Comments Introspection

  • Decoratorهای API Api Decorators

  • فعال کردن احراز هویت Enabling Authentication

  • سرویس کشف Discovery Service

  • محدودیت - شمای پاسخ نادرست Limitation - Innacurate Response Schema

ماژول اضافی ۴ - مدیریت فایل Extra Module 4 - File Management

  • ارائه Presentation

  • مسیر فایل پایه Basic File Route

  • اعتبارسنجی فایل File Validation

  • اعتبارسنجی اندازه و پسوندها Validating Size and Extensions

  • تابع کارخانه برای اعتبارسنج‌های فایل Factory Function for File Validators

  • رفع - تبدیل انواع فایل به انواع رسانه Fix - Converting File Types to Media Types

  • پذیرش آرایه فایل Accepting File Array

  • اعتبارسنجی امضای فایل Validating File Signature

  • سرویس ذخیره‌سازی (۱/۳) Storage Service (1/3)

  • سرویس ذخیره‌سازی (۲/۳) Storage Service (2/3)

  • سرویس ذخیره‌سازی (۳/۳) Storage Service (3/3)

  • مسیرهای کنترلر Controller Routes

  • منطق سرویس Service Logic

  • دریافت محصولات با نام فایل Fetching Products with Filenames

  • سرو استاتیک Serve Static

  • فیلتر استثناء فایل‌ها (۱/۲) Files Exception Filter (1/2)

  • فیلتر استثناء فایل‌ها (۲/۲) Files Exception Filter (2/2)

  • مستندسازی مسیرهای فایل‌ها Documenting Files Routes

  • نکته - استخراج بدنه از Multipart Formdata Tip - Extract Body from Multipart Formdata

ماژول اضافی ۵ - پرس‌وجوی پیشرفته Extra Module 5 - Advanced Querying

  • ارائه Presentation

  • یافتن و شمارش Find and Count

  • ساختار پرس‌وجو Querying Structure

  • فیلد متادیتا Metadata Field

  • مستندسازی پاسخ‌های صفحه‌بندی شده Documenting Paginated Responses

  • ارکستراسیون DTO DTO Orchestration

  • همه چیز در یک زمان Everything at Once

  • کپسوله کردن فیلتر متن Encapsulating Text Filter

  • اپراتورهای فیلتر (۱/۴) Filter Operators (1/4)

  • اپراتورهای فیلتر (۲/۴) Filter Operators (2/4)

  • اپراتورهای فیلتر (۳/۴) Filter Operators (3/4)

  • اپراتورهای فیلتر (۴/۴) Filter Operators (4/4)

ماژول اضافی ۶ - تست خودکار Extra Module 6 - Automated Testing

  • ارائه Presentation

  • رفع در درس بعدی Fix in next lesson

  • پیکربندی Jest Jest Configuration

  • تست‌های واحد Unit Tests

  • Mockها Mocks

  • تست‌های سرویس باقی‌مانده Remaining Service Tests

  • تست‌های کنترلر Controller Tests

  • تست‌های e2e e2e Tests

  • محیط شبیه‌سازی شده Simulated Environment

  • تست جریان‌های کامل Testing Entire Flows

ماژول موازی - Prisma Parallel Module - Prisma

  • ارائه Presentation

  • پیکربندی Prisma/Docker Prisma/Docker Setup

  • مدل کاربر User Model

  • منطق کاربر User Logic

  • مدیریت خطا Error Handling

  • مدل سفارش Order Model

  • مدل پرداخت Payment Model

  • مدل دسته بندی Category Model

  • مدل محصول Product Model

  • مدل آیتم سفارش Order Item Model

  • منطق دسته بندی Category Logic

  • منطق محصول Product Logic

  • منطق سفارش Order Logic

  • منطق پرداخت Payment Logic

  • تغذیه داده Seeding

  • نکته - سریال‌سازی Tip - Serialization

بهبودهای بیشتر Further Improvements

  • ارائه Presentation

  • اعتبارسنجی‌های بیشتر More Validations

  • ارسال ایمیل Sending Emails

  • بررسی سلامت Health Checks

  • کارهای زمان‌بندی شده (Cron Jobs) Cron Jobs

نمایش نظرات

آموزش نست‌جی‌اس آزاد شده: توسعه بک‌اند‌های قوی و قابل نگهداری
جزییات دوره
13 hours
170
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
267
4.8 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Daniel Maranhão Daniel Maranhão

توسعه‌دهنده بک‌اند