آموزش Node JS: مفاهیم پیشرفته

Node JS: Advanced Concepts

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: با Node.Js پیشرفته شوید! کش کردن با Redis را بیاموزید، از طریق خوشه بندی سرعت ببخشید، و آپلود تصویر را با S3 و Node اضافه کنید! کاملاً بر Event Loop تسلط داشته باشید و هر یک از مراحل آن را درک کنید. از Worker Threads و Clustering برای بهبود چشمگیر عملکرد سرورهای Node استفاده کنید. جست و جوهای پایگاه داده را با ذخیره سازی برای MongoDB با پشتیبانی Redis اضافه کنید، آزمایش مرورگر خودکار را به سرور Node خود اضافه کنید، با راه اندازی خط لوله یکپارچه سازی مداوم. با استفاده از AWS S3 پیش نیازها: دانش پایه Node، Express و MongoDB دانش قوی جاوا اسکریپت، تصاویر و فایل های مقیاس پذیر را در برنامه خود اعمال کنید.

از اصول Node فراتر بروید! این دوره به شما مهارت های لازم برای تبدیل شدن به یک مهندس برتر Node را می دهد.

جستجو در حافظه پنهان با Redis؟ آن را یاد خواهید گرفت. حلقه رویداد گره؟ مشمول. آپلود فایل مقیاس پذیر؟ البته!

------------------------------

اگر با Node کار می کنید این یک دوره ضروری است.

Internals Node:  در اینجا یکی از رایج‌ترین سؤالات مصاحبه‌ای است که هنگام جستجوی شغل Node با آن مواجه می‌شوید: «آیا می‌توانید حلقه رویداد Node را توضیح دهید؟» دو نوع مهندس وجود دارد: کسانی که می‌توانند حلقه رویداد را توصیف کنند و کسانی که نمی توانند! این دوره به شما اطمینان می دهد که برای پاسخ دادن به این مهم ترین سوال بسیار آماده هستید. دانش Event Loop علاوه بر حیاتی بودن برای مصاحبه، به شما درک بهتری از نحوه عملکرد داخلی Node می‌دهد. بسیاری از مهندسان می‌دانند که حلقه رویداد را مسدود نکنند، اما لزوماً دلیل آن را نمی‌دانند. شما یکی از مهندسینی خواهید بود که می توانید مشخصات عملکرد Node و حلقه رویداد آن را به وضوح بیان کنید.

ذخیره سازی حافظه پنهان با Redis:  همچنین با اجرای حافظه پنهان با پشتیبانی Redis، عملکرد جستارهای پایگاه داده را افزایش می دهیم. هیچ تجربه قبلی Redis مورد نیاز نیست! Redis یک ذخیره‌سازی داده در حافظه است که برای حل نیازهای ذخیره‌سازی ساخته شده است. با افزودن حافظه پنهان به برنامه خود، می توانید مدت زمانی را که هر درخواست معینی طول می کشد کاهش دهید و زمان پاسخگویی کلی برنامه خود را بهبود بخشید.

آپلود فایل: منابع زیادی به صورت آنلاین وجود دارند که پیشنهاداتی را در مورد نحوه مدیریت آپلود فایل ارائه می دهند، اما تعداد کمی از آنها راه حلی را نشان می دهند که بتواند واقعاً مقیاس پذیر باشد. نکته: ذخیره فایل ها به طور مستقیم در سرور شما یک راه حل مقیاس پذیر نیست! بیاموزید که چگونه از AWS S3 برای اجرای آپلود فایل استفاده کنید که می تواند با چند ده خط کد ساده به میلیون ها کاربر برسد. بحث‌های فراوانی نیز در مورد نگرانی‌های امنیتی با مدیریت آپلودها گنجانده شده است.

تست یکپارچه سازی مداوم:  این یک ویژگی ضروری برای هر برنامه تولید جدی است. ابتدا یاد خواهیم گرفت که چگونه با استفاده از Puppeteer و Jest، بخش‌های عظیمی از پایگاه کد خود را تنها با چند خط کد آزمایش کنیم. پس از نوشتن آزمایش‌های مؤثر فراوان، یکپارچه‌سازی مداوم را در Travis CI، یک پلتفرم محبوب و رایگان CI فعال می‌کنیم. آزمایش گاهی اوقات می تواند خسته کننده باشد، بنابراین ما از این بخش برای بررسی برخی از تکنیک های پیشرفته جاوا اسکریپت، از جمله یکی از تنها استفاده های قانونی از پراکسی های ES2015 که تا به حال خواهید دید، استفاده می کنیم!

------------------------------

این چیزی است که ما یاد خواهیم گرفت:

  • تسلط بر حلقه رویداد Node - درک کنید که Node چگونه کد منبع شما را اجرا می کند.
  • درک کنید که هدف Node چیست، و اینکه چگونه کدی که می‌نویسید در نهایت توسط  کد C++ در موتور V8 اجرا می‌شود
  • از طریق خوشه‌بندی  و رشته‌های کارگری، عملکرد برنامه Node خود را افزایش دهید
  • درخواست‌های MongoDB توربوشارژ را با افزودن حافظه پنهان پرس و جو  با پشتیبانی یک نمونه Redis سریع رعد و برق
  • با آپلود تصویر و فایل که توسط سرویس فایل S3 آمازون پشتیبانی می‌شود، برنامه خود را تا بی نهایت مقیاس کنید
  • یک خط لوله آزمایش یکپارچه سازی مداوم را اجرا کنید تا همیشه عملکرد پروژه خود را به درستی بدانید
  • فکر می‌کنید همه چیز درباره مدیریت کوکی‌ها و جلسه را می‌دانید؟ خوب، ممکن است، اما حتی بیشتر بیاموزید!
  • با آزمایش مرورگر خودکار با استفاده از Jest و Puppeteer، مطمئن شوید که برنامه‌تان همان‌طور که انتظار دارید کار می‌کند
  • پاداش - تکنیک های پیشرفته JS را در طول مسیر یاد بگیرید، از جمله مکان استفاده از پراکسی های ES2015!

من دوره‌ای را ساخته‌ام که می‌خواستم زمانی که Node را یاد می‌گرفتم بگذرانم. دوره ای که مفاهیم و نحوه اجرای آنها را به بهترین نحو توضیح می دهد تا شما آنها را یاد بگیرید و عمیقاً درک کنید.


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

موارد داخلی Node The Internals of Node

  • نحوه دریافت کمک How to Get Help

  • منابع دوره Course Resources

  • به انجمن ما بپیوندید! Join Our Community!

  • شروع با Node Internals Starting With Node Internals

  • پیاده سازی ماژول Module Implementations

  • گره با پشتیبانی C++! Node Backed by C++!

  • دانش خود را آزمایش کنید - اجرای Node Test Your Knowledge - Node's Implementation

  • مبانی موضوعات The Basics of Threads

  • حلقه رویداد گره The Node Event Loop

  • پیاده سازی حلقه رویداد The Event Loop Implementation

  • تیک های حلقه رویداد Event Loop Ticks

  • آیا Node Single Threaded است؟ Is Node Single Threaded?

  • تست تک رشته ها Testing for Single Threads

  • استخر نخ Libuv The Libuv Thread Pool

  • Threadpool با Multithreading Threadpools with Multithreading

  • تغییر اندازه Threadpool Changing Threadpool Size

  • سوالات متداول Threadpool Common Threadpool Questions

  • توضیح عملیات سیستم عامل Explaining OS Operations

  • هیئت سیستم عامل Libuv Libuv OS Delegation

  • OS/Async سوالات متداول OS/Async Common Questions

  • مرور Review

  • دانش خود را بررسی کنید - حلقه رویداد Check Your Knowledge - The Event Loop

  • رفتار گره دیوانه Crazy Node Behavior

  • رویدادهای حلقه رویداد غیرمنتظره Unexpected Event Loop Events

افزایش عملکرد گره Enhancing Node Performance

  • افزایش عملکرد Enhancing Performance

  • راه اندازی اکسپرس Express Setup

  • مسدود کردن حلقه رویداد Blocking the Event Loop

  • خوشه بندی در تئوری Clustering in Theory

  • چنگال بچه ها Forking Children

  • خوشه بندی در عمل Clustering in Action

  • مقایسه عملکرد سرور Benchmarking Server Performance

  • بنچمارک Refactor Benchmark Refactor

  • به کودکان بیشتری نیاز دارید! Need More Children!

  • نصب PM2 PM2 Installation

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

  • نکته مهم در مورد ویدیوهای آینده Important Note about the Upcoming Videos

  • موضوعات Webworker Webworker Threads

  • موضوعات کارگری در عمل Worker Threads in Action

  • معیارهای کارگران Benchmarking Workers

راه اندازی پروژه Project Setup

  • فاز بعدی The Next Phase

  • بررسی پروژه Project Walkthrough

  • سفارشی سازی کلید Key Customization

  • راه اندازی و پیکربندی MongoDB Atlas MongoDB Atlas Setup and Configuration

  • ایجاد MongoDB MongoDB Creation

  • Routes Walkthrough Routes Walkthrough

ذخیره داده با Redis Data Caching with Redis

  • عملکرد پرس و جو MongoDB MongoDB Query Performance

  • Query Caching Layer Query Caching Layer

  • معرفی ردیس Redis Introduction

  • نصب Redis در MacOS Installing Redis on MacOS

  • Redis در ویندوز Redis on Windows

  • دریافت و تنظیم مقادیر پایه Getting and Setting Basic Values

  • ردیس هش Redis Hashes

  • یک ردیس گوچا One Redis Gotcha

  • کلیدهای کش Cache Keys

  • قول دادن به یک عملکرد Promisifying a Function

  • ذخیره سازی در عمل Caching in Action

  • مسائل مربوط به حافظه پنهان Caching Issues

  • راه حل نهایی ذخیره سازی The Ultimate Caching Solution

  • وصله مدیر اجرایی Mongoose Patching Mongoose's Exec

  • بازیابی مدیریت مسیرهای وبلاگ Restoring Blog Routes Handler

  • کلیدهای منحصر به فرد Unique Keys

  • ایجاد کلید Key Creation

  • بازیابی Redis Config Restoring Redis Config

  • پیاده سازی کش Cache Implementation

  • حل و فصل ارزش ها Resolving Values

  • مدل های آبرسانی Hydrating Models

  • آرایه های آبرسان Hydrating Arrays

  • کش قابل تغییر Toggleable Cache

  • انقضای کش Cache Expiration

  • انقضای کش اجباری Forced Cache Expiration

  • هش تو در تو Nested Hashes

  • پاک کردن هش های تودرتو Clearing Nested hashes

  • پاکسازی خودکار کش با Middlware Automated Cache Clearing with Middlware

تست خودکار مرورگر Headless Automated Headless Browser Testing

  • جریان تست Testing Flow

  • چالش های تست Testing Challenges

  • دستورات پیرامون تست Commands Around Testing

  • اولین تست جست First Jest Test

  • در حال راه‌اندازی موارد Chromium Launching Chromium Instances

  • ناوبری کرومیوم Chromium Navigation

  • استخراج محتوای صفحه Extracting Page Content

  • عروسک گردان - پشت صحنه Puppeteer - Behind the Scenes

  • تست های DRY DRY Tests

  • خاتمه مرورگر Browser Termination

  • اثبات جریان OAuth Asserting OAuth Flow

  • اثبات دامنه URL Asserting URL Domain

  • مشکلات مربوط به OAuth Issues with OAuth

  • حل مشکلات احراز هویت با تست اتوماسیون Solving Authentication Issues with Automation Testing

  • جریان Google OAuth The Google OAuth Flow

  • کارهای داخلی جلسات Inner Workings of Sessions

  • جلسات از زاویه ای دیگر Sessions From Another Angle

  • امضاهای جلسه Session Signatures

  • ایجاد جلسات و امضا Generating Sessions and Signatures

  • مونتاژ قطعات Assembling the Pieces

  • انتظار برای بیانیه ها WaitFor Statements

  • توابع کارخانه Factory Functions

  • کارخانه جلسه The Session Factory

  • مونتاژ کارخانه Session Assembling the Session Factory

  • جداسازی کد Code Separation

  • راه اندازی جهانی جست Global Jest Setup

  • تست تست های کارخانه! Testing Factory Tests!

  • اضافه کردن یک روش ورود Adding a Login Method

  • گسترش صفحه Extending Page

  • مقدمه ای بر پروکسی ها Introduction to Proxies

  • پراکسی ها در عمل Proxies in Action

  • ترکیب دسترسی به ویژگی شی Combining Object Property Access

  • ترکیب صفحه و مرورگر Combining the Page and Browser

  • پیاده سازی صفحه سفارشی Custom Page Implementation

  • اولویت جستجوی تابع Function Lookup Priority

  • هی، امیدوارم این کار کند! Gee, I Hope This Works!

  • توابع قابل استفاده مجدد در صفحه Reusable Functions on Page

  • تست ایجاد وبلاگ Testing Blog Creation

  • ناوبری پیش فرض Default Navigation

  • ادعای نمایش فرم Asserting Form Display

  • مهلت تست Test Timeout

  • راه اندازی تست رایج Common Test Setup

  • توضیحات تو در تو برای ساختار Nested Describes for Structure

  • اثبات خطاهای اعتبارسنجی Asserting Validation Errors

  • تایید فرم Asserting Form Confirmation

  • ادعای ایجاد وبلاگ Asserting Blog Creation

  • گزینه هایی برای آزمایش اقدامات ممنوعه Options for Testing Prohibited Actions

  • درخواست های مستقیم API Direct API Requests

  • JS خودسرانه در Chromium اجرا شد Executed Arbitrary JS in Chromium

  • ادعای پاسخ صفحه Asserting Page Response

  • محدودیت ها را دریافت کنید Get Restrictions

  • آزمون نهایی "GET". A Final 'GET' Test

  • کمک های تست فوق پیشرفته Super Advanced Test Helpers

سیم کشی یکپارچه سازی مداوم Wiring Up Continuous Integration

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

  • ارائه دهندگان CI CI Providers

  • مبانی فایل های YAML The Basics of YAML Files

  • راه اندازی تراویس YAML Travis YAML Setup

  • بیشتر تراویس YAML More Travis YAML

  • ساخت مشتری Client Builds

  • پیکربندی اسکریپت Script Config

  • با استفاده از اسناد تراویس Using Travis Documentation

  • تنظیمات بیشتر سرور More Server Configuration

  • توجه - به روز رسانی تراویس Note - Travis Update

  • تنظیمات بیشتر را لمس کنید A Touch More Configuration

  • راه اندازی Git Repo Git Repo Setup

  • راه اندازی تراویس CI Travis CI Setup

  • راه اندازی ساختمان های CI Triggering CI Builds

  • موفقیت را بسازید Build Success

آپلود تصویر/فایل مقیاس پذیر Scalable Image/File Upload

  • آپلود تصویر Image Upload

  • مشکلات بزرگ در مورد آپلود تصویر Big Issues Around Image Upload

  • آپلود تصویر جایگزین Alternate Image Upload

  • راه حل ذخیره سازی انتخاب شده Chosen Storage Solution

  • محدودیت های آپلود Upload Constraints

  • انتقال فایل تصویری Image File Transport

  • جریان آپلود با AWS S3 Upload Flow with AWS S3

  • جزئیات URL Presigned Details of the Presigned URL

  • مشکلات امنیتی با URL های تعیین شده حل شد Security Issues Solved with Presigned URL's

  • افزودن انتخابگر تصویر Adding an Image Picker

  • مدیریت تغییرات فایل Handling File Changes

  • ضبط فایل های تصویری Recording Image Files

  • تابع SubmitBlog The SubmitBlog Function

  • اعتبارنامه AWS با IAM AWS Credentials with IAM

  • ایجاد سطل های S3 Creating S3 Buckets

  • اجازه دادن به اقدامات با سیاست های IAM Allowing Actions with IAM Policies

  • ایجاد کاربران IAM Creating IAM Users

  • آپلود فایل های مسیرها Upload Routes Files

  • پیکربندی AWS SDK Configuring the AWS SDK

  • آرگومان های GetSignedURL GetSignedURL Arguments

  • تماس با GetSignedURL Calling GetSignedURL

  • مشاهده URL امضا شده Viewing the Signed URL

  • تلاش برای آپلود تصویر Attempting Image Upload

  • رسیدگی به خطاهای CORS Handling CORS Errors

  • موضوع های قابل ملاحظه Outstanding Issues

  • سیاست های سطل S3 S3 Bucket Policies

  • گره زدن آپلودها به وبلاگ ها Tying Uploads to Blogs

  • اطمینان از گره خوردن تصاویر Ensuring Images get Tied

  • نمایش تصاویر Displaying Images

موارد اضافی Extras

  • جایزه! Bonus!

نمایش نظرات

آموزش Node JS: مفاهیم پیشرفته
جزییات دوره
16 hours
169
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
55,115
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Stephen Grider Stephen Grider

معمار مهندسی