آموزش NestJS Zero to Hero - توسعه Back-end مدرن TypeScript

NestJS Zero to Hero - Modern TypeScript Back-end Development

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: توسعه و استقرار برنامه‌های کاربردی بک‌اند سازمانی با استفاده از بهترین شیوه‌ها با استفاده از Node.js و TypeScript آشنایی با چارچوب NestJS و اجزای آن طراحی و توسعه API‌های REST که عملیات CRUD را انجام می‌دهند احراز هویت و مجوز برای برنامه‌های بک‌اند استفاده از TypeORM برای تعامل با پایگاه داده بهترین شیوه‌های امنیتی هش رمز عبور و ذخیره اطلاعات حساس تداوم داده ها با استفاده از پایگاه داده استقرار برنامه های کاربردی در حالت آماده تولید در خدمات وب آمازون نوشتن کد تمیز و قابل نگهداری در راستای استانداردهای صنعت استفاده از رابط خط فرمان NestJS (CLI) با استفاده از Postman برای آزمایش سرویس‌های بک‌اند استفاده از pgAdmin به‌عنوان ابزار واسط برای مدیریت پایگاه‌های داده PostgreSQL پیاده‌سازی ورود کارآمد در یک برنامه پشتیبان مدیریت پیکربندی مبتنی بر محیط و متغیرهای محیطی پیاده‌سازی اعتبارسنجی داده‌ها و استفاده از نقاط پایانی Pipes Guarding برای کاربران مجاز با استفاده از نهادهای مدل‌سازی Guards برای persis بهترین شیوه های لایه tence TypeScript مدیریت عملیات ناهمزمان با استفاده از async-await استفاده از اشیاء انتقال داده (DTO) تجربه عملی با JSON Web Tokens (JWT) واحد تست برنامه های NestJS استفاده از GraphQL با NestJS تداوم پایگاه داده با MongoDB پیش ها:Having جاوا اسکریپت و/یا NodeJS داشتن دانش اولیه از TypeScript توصیه می شود، اما الزامی نیست

NestJS یک چارچوب توسعه Back-end Node.js است که بر اساس Express ساخته شده است و از قدرت TypeScript استفاده می کند.

NestJS از محبوبیت و استحکام باورنکردنی جاوا اسکریپت به عنوان یک زبان و Node.js به عنوان یک فناوری بهره می برد. این از کتابخانه ها و چارچوب های رایجی مانند Angular، React و Vue الهام گرفته شده است که بهره وری و تجربه توسعه دهنده را بهبود می بخشد.

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

NestJS یک معماری کاربردی خارج از جعبه ارائه می‌کند که به توسعه‌دهندگان و تیم‌ها اجازه می‌دهد تا برنامه‌های بسیار آزمایش‌پذیر، مقیاس‌پذیر، کم‌پیوند شده و به راحتی قابل نگهداری را ایجاد کنند.


به تازگی، چارچوب NestJS به دلیل ویژگی‌های باورنکردنی آن محبوبیت زیادی پیدا کرده است؛

  • Leverages TypeScript - زبان قوی تایپ شده که یک مجموعه فوق العاده از جاوا اسکریپت است

  • استفاده ساده، یادگیری آسان و تسلط آسان

  • ابزار قدرتمند Command Line Interface (CLI) که بهره وری و سهولت توسعه را افزایش می دهد

  • مستندات دقیق و به خوبی نگهداری شده

  • توسعه و نگهداری پایگاه کد فعال

  • مجوز منبع باز (مجوز MIT)

  • از ده‌ها ماژول مخصوص لانه پشتیبانی می‌کند که به شما کمک می‌کند به راحتی با فناوری‌ها و مفاهیم رایج مانند TypeORM، Mongoose، GraphQL، Logging، Validation، Caching، Websockets و موارد دیگر ادغام کنید

  • برنامه‌های آزمایش واحد آسان

  • ساخته شده برای سرویس‌های مونولیت و میکرو (کل بخش در اسناد مربوط به نوع Microservice یک برنامه NestJS، و همچنین تکنیک‌ها و دستور العمل‌ها).

در این دوره من می‌خواهم شما را در فرآیند برنامه‌ریزی، توسعه و استقرار یک برنامه کاربردی بک‌اند با ویژگی‌های کامل، بر اساس تجربه خود در توسعه و نگهداری سیستم‌هایی که از ده‌ها میلیون کاربر همزمان در مقیاس پشتیبانی می‌کنند، راهنمایی کنم./p>


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

مقدمه ای بر NestJS و پیش نیازها Introduction to NestJS & Pre-requisites

  • نسخه جدید دوره به صورت زنده (ژوئن 2021) NEW COURSE VERSION LIVE (JUNE 2021)

  • به دوره خوش آمدید! Welcome to the course!

  • نصب Node.js و Yarn Installing Node.js and Yarn

  • نصب NestJS CLI Installing the NestJS CLI

  • (اختیاری) نصب VSCode و برنامه های افزودنی (Optional) Installing VSCode and Extensions

برنامه مدیریت وظایف (REST API) Task Management Application (REST API)

  • بررسی اجمالی پروژه Project Overview

  • ایجاد پروژه ما از طریق NestJS CLI Creating our project via the NestJS CLI

  • ساختار پروژه NestJS NestJS Project Structure

  • مقدمه ای بر ماژول های NestJS Introduction to NestJS Modules

  • ایجاد یک ماژول وظایف Creating a Tasks Module

  • مقدمه ای بر NestJS Controllers Introduction to NestJS Controllers

  • ایجاد در Tasks Controller Creating at Tasks Controller

  • مقدمه ای بر ارائه دهندگان و خدمات NestJS Introduction to NestJS Providers and Services

  • ایجاد یک سرویس وظایف Creating a Tasks Service

  • ویژگی: دریافت همه وظایف Feature: Getting All Tasks

  • نصب پستچی Installing Postman

  • ایجاد مجموعه پستچی Creating a Postman Collection

  • تعریف یک مدل وظیفه Defining a Task Model

  • ویژگی: ایجاد یک وظیفه (قسمت 1 - کنترلر) Feature: Creating a Task (Part 1 - Controller)

  • ویژگی: ایجاد یک کار (قسمت 2 - سرویس) Feature: Creating a Task (Part 2 - Service)

  • مقدمه ای بر اشیاء انتقال داده (DTO) Intro to Data Transfer Objects (DTO)

  • در حال پیاده سازی CreateTaskDto Implementing CreateTaskDto

  • ویژگی: گرفتن یک کار با شناسه Feature: Getting a Task by ID

  • چالش: حذف یک کار Challenge: Deleting a Task

  • راه حل: حذف یک کار Solution: Deleting a Task

  • چالش: به روز رسانی وضعیت وظیفه Challenge: Update Task Status

  • راه حل: به روز رسانی وضعیت وظیفه Solution: Update Task Status

  • ویژگی: جستجو و فیلتر کردن Feature: Searching and Filtering

  • آزمون خلاصه Summary Quiz

  • کد بخش Section Code

اعتبار سنجی و مدیریت خطا Validation and Error Handling

  • مقدمه ای بر NestJS Pipes Introduction to NestJS Pipes

  • ValidationPipe: ایجاد یک وظیفه ValidationPipe: Creating a Task

  • مدیریت خطا: دریافت یک کار غیر موجود Error Handling: Getting a non-existing Task

  • مدیریت خطا: حذف یک کار غیر موجود Error Handling: Deleting a non-existing Task

  • اعتبار سنجی: به روز رسانی وضعیت وظیفه Validation: Update Task Status

  • چالش: اعتبارسنجی فیلترینگ و جستجوی کار Challenge: Validating Task Filtering and Search

  • کد بخش Section Code

پایداری داده - PostgreSQL و TypeORM Data Persistence - PostgreSQL and TypeORM

  • مقدمه ای بر پایداری Introduction to Persistence

  • نصب Docker و pgAdmin Installing Docker and pgAdmin

  • اجرای PostgreSQL از طریق Docker Running PostgreSQL via Docker

  • راه اندازی pgAdmin Setting up pgAdmin

  • ایجاد پایگاه داده با استفاده از pgAdmin Creating a Database using pgAdmin

  • مقدمه ای بر TypeORM Introduction to TypeORM

  • راه اندازی اتصال پایگاه داده Setting up a Database Connection

  • ایجاد یک Task Entity Creating a Task Entity

  • ثبت فعال در مقابل الگوهای نقشه‌بردار داده Active Record VS Data Mapper Patterns

  • ایجاد یک مخزن وظایف Creating a Tasks Repository

  • Refactoring for Tasks Service Refactoring for Tasks Service

  • پایداری: دریافت یک کار با شناسه Persistence: Getting a Task by ID

  • پایداری: ایجاد یک کار Persistence: Creating a Task

  • (چالش) پایداری: حذف یک کار (Challenge) Persistence: Deleting a Task

  • (راه حل) پایداری: حذف یک کار (Solution) Persistence: Deleting a Task

  • ماندگاری: به روز رسانی وضعیت وظیفه Persistence: Update Task Status

  • تغییر کوچک مورد نیاز است Small Change Needed

  • پایداری: دریافت همه وظایف Persistence: Getting All Tasks

  • کد بخش Section Code

Auth Part 1 - Authentication Auth Part 1 - Authentication

  • مقدمه ای بر احراز هویت و مجوز Intro to Authentication and Authorization

  • راه اندازی AuthModule، Entity کاربر و User Repository Setting up AuthModule, User Entity and User Repository

  • ویژگی: ثبت نام Feature: Signing Up

  • اعتبارسنجی: اعتبار و قدرت رمز عبور Validation: Credentials and Password Strength

  • مدیریت خطا: تضاد نام کاربری Error Handling: Username Conflicts

  • ذخیره ایمن رمزهای عبور Securely Storing Passwords

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

  • ویژگی: ورود به سیستم Feature: Signing In

  • مقدمه ای بر JSON Web Tokens (JWT) Intro to JSON Web Tokens (JWT)

  • راه اندازی ماژول JWT و Passport.js Setting up the JWT Module and Passport.js

  • امضای توکن JWT هنگام ورود (احراز هویت) Signing a JWT Token on Sign In (Authentication)

  • پیاده سازی اعتبارسنجی JWT Implementing JWT Validation

  • سفارشی @GetUser Decorator Custom @GetUser Decorator

  • حفاظت از مسیرهای وظایف Guarding the Tasks Routes

  • کد بخش Section Code

Auth Part 2 - Task مالکیت و محدودیت ها Auth Part 2 - Task Ownership and Restrictions

  • وظایف و کاربران - ارتباط با پایگاه داده Tasks and Users - Database Relation

  • ایجاد وظایف توسط کاربران Make Users Own Tasks

  • سریال داده های کاربر Serialize User Data

  • محدود کردن دریافت همه وظایف Restricting Getting All Tasks

  • رفع اشکال: دریافت همه وظایف BUG FIX: Getting All Tasks

  • محدود کردن دریافت کار با شناسه Restricting Getting a Task By ID

  • محدود کردن به‌روزرسانی‌های وضعیت Restricting Status Updates

  • محدود کردن حذف یک کار Restricting Deleting A Task

  • کد بخش Section Code

متشکرم! THANK YOU!

  • متشکرم! (+ تبلیغات) THANK YOU! (+ Promotion)

(پاداش) ورود به سیستم (Bonus) Logging

  • مقدمه ای بر ورود به سیستم Introduction to Logging

  • پیاده‌سازی گزارش‌ها در برنامه NestJS ما Implementing Logs in our NestJS app

  • کد بخش Section Code

(پاداش) مدیریت پیکربندی (Bonus) Configuration Management

  • مقدمه ای بر پیکربندی Introduction to Configuration

  • Windows: Environment Variables Windows: Environment Variables

  • معرفی سریع متغیرهای محیطی Quick Intro to Environment Variables

  • راه اندازی ConfigModule Setting up ConfigModule

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

  • اعتبارسنجی طرحواره پیکربندی Config Schema Validation

  • پیکربندی مخفی JWT JWT Secret Configuration

  • کد بخش Section Code

(پاداش) برنامه Front-end (Bonus) Front-end Application

  • برنامه Front-end Front-end Application

  • کد بخش Section Code

(پاداش) استقرار (Bonus) Deployment

  • سلب مسئولیت: هزینه های احتمالی DISCLAIMER: Potential Costs

  • ثبت نام در Heroku Signing up to Heroku

  • ایجاد یک برنامه Heroku Creating a Heroku Application

  • نصب Heroku CLI Installing the the Heroku CLI

  • Postgres در Heroku Postgres on Heroku

  • تغییرات در برنامه NestJS ما Changes in our NestJS App

  • استقرار NestJS در Heroku Deploying NestJS to Heroku

  • استقرار Front-end به صفحات GitHub Deploying Front-end to GitHub Pages

  • کد بخش Section Code

(پاداش) تست واحد (Bonus) Unit Testing

  • واحد تست تصادف درس: مبانی Unit Testing Crash Course: Basics

  • واحد تست تصادف دوره: تست های اول Unit Testing Crash Course: First Tests

  • مهم: رفع مسیرهای واردات IMPORTANT: Fixing import paths

  • Testing TasksService - قسمت 1 Testing TasksService - Part 1

  • Testing TasksService - قسمت 2 Testing TasksService - Part 2

  • کد بخش Section Code

GraphQL + MongoDB GraphQL + MongoDB

  • GraphQL + MongoDB: بخش مقدمه GraphQL + MongoDB: Section Introduction

  • بررسی اجمالی پروژه: مدیریت مدرسه Project Overview: School Management

  • نصب MongoDB MongoDB Installation

  • Robo 3T - اتصال به پایگاه داده MongoDB Robo 3T - Connecting to the MongoDB Database

  • راه اندازی پروژه Project setup

  • از نصب NestJS 7 اطمینان حاصل کنید Ensure NestJS 7 Installation

  • نصب Dependencies GraphQL Installing GraphQL Dependencies

  • مهم! نسخه نصب GraphQL IMPORTANT! GraphQL installation version

  • ایجاد ماژول درس Creating the Lesson Module

  • تعریف Lesson GraphQL Type Defining the Lesson GraphQL Type

  • ایجاد حل‌کننده درس Creating the Lesson Resolver

  • با استفاده از زمین بازی GraphQL Using the GraphQL Playground

  • ماندگاری: TypeORM، MongoDB و موجودیت درس ما Persistence: TypeORM, MongoDB and our Lesson Entity

  • روش LessonService و createLesson LessonService and createLesson method

  • ایجاد Lesson GraphQL Mutation Create Lesson GraphQL Mutation

  • پرس و جوی GetLesson GraphQL با MongoDB getLesson GraphQL Query with MongoDB

  • اعتبارسنجی: ورودی درس ایجاد کنید Validation: Create Lesson Input

  • چالش: پرس و جوی GraphQL همه دروس را دریافت کنید Challenge: Get All Lessons GraphQL Query

  • ایجاد ماژول دانشجویی Creating the Student Module

  • چالش: تعریف نهاد دانشجویی Challenge: Defining the Student Entity

  • چالش: ایجاد جهش دانش آموز Challenge: Create Student Mutation

  • چالش: پرس و جوی GraphQL همه دانش آموزان را دریافت کنید Challenge: Get All Students GraphQL Query

  • چالش: دانش آموز را با پرس و جوی شناسه دریافت کنید Challenge: Get Student by ID Query

  • دانش آموزان را به Lesson GraphQL Mutation اختصاص دهید Assign Students To Lesson GraphQL Mutation

  • بهبود: دانش آموزان را به هنگام ایجاد درس اختصاص دهید Improvement: Assign Students Upon Lesson Creation

  • حل و فصل "دانش آموزان" فیلد در درس Resolve "students" Field in Lesson

  • منابع اضافی: GraphQL Additional Resources: GraphQL

  • کد بخش Section Code

نمایش نظرات

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

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

آموزش NestJS Zero to Hero - توسعه Back-end مدرن TypeScript
جزییات دوره
8.5 hours
136
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
110,785
4.5 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Ariel Weinberger Ariel Weinberger

مدیر مهندسی ، Mentor من یک مهندس نرم افزار پرشور و با سالها تجربه در زمینه توسعه جلو و عقب هستم. در حال حاضر ، من به عنوان مدیر مهندسی نرم افزار در OneFit کار می کنم. پیش از این ، مهندس ارشد نرم افزار در DAZN ، خدمات را در مقیاس گسترده به ده ها میلیون کاربر همزمان در سراسر جهان ارائه می داد. تجربه گذشته کار در بخش فناوری مالی (FinTech) برای Payconiq ، جایی که من مجبور شدم سیستم های کلیدی را برای عملکرد روان راه حل پرداخت BeNeLux توسعه و نگهداری کنم ، و همزمان پرداخت های همزمان زیادی را انجام دهم. من همچنین به عنوان مهندس در صنایع دفاعی کار می کردم ، عمدتا در مورد سیستم های هوایی VISINT (Visual Intelligence) سوار بر هواپیما. جدا از آن ، من همیشه طرفدار تدریس و راهنمایی بوده ام. من راهنمای بی شماری در مهندسی نرم افزار - راهنمایی ، مربیگری و تنظیم آنها برای موفقیت به عنوان مهندس بوده ام.