لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش GraphQL مدرن با Node - راهنمای کامل توسعه دهندگان
Modern GraphQL with Node - Complete Developers Guide
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
GraphQL را با Node بیاموزید و به آن مسلط شوید و با ساخت برنامه های آماده برای تولید واقعی، GraphQL را یاد بگیرید و چگونه با REST مقایسه می شود یاد بگیرید چگونه یک GraphQL API بسازید بهترین روش های طراحی یک GraphQL API را بیاموزید آموزش ساخت چندین پروژه با GraphQL ساخت یک کامل برنامه React، Node و GraphQL پیش نیازها: فقط اصول اولیه برنامه نویسی. جاوا اسکریپت خوب خواهد بود
این دوره به شما یاد می دهد که چگونه از ابتدا یک GraphQL API بسازید. این توسط توسعه دهنده ای آموزش داده می شود که بیش از 3 سال تجربه با GraphQL دارد و در چندین شرکت سازمانی با آن کار کرده است. در پایان این دوره کرش، شما متخصص خواهید شد و بیش از 99 درصد از علاقه مندان به GraphQL را می شناسید. هدف این دوره فقط آموزش GraphQL نیست، بلکه نحوه استفاده صحیح از آن در یک برنامه واقعی است. امیدوارم از آن لذت ببرید!
ما همه چیز را از ابتدا یاد خواهیم گرفت و بنابراین شما می توانید یک مبتدی GraphQL برای شرکت در این دوره باشید. با این حال، ما از جاوا اسکریپت به عنوان زبان اصلی خود استفاده خواهیم کرد و بنابراین برخی از دانش JS ایده آل است. ما همچنین سرور خود را به frontend متصل خواهیم کرد و از React به عنوان مشتری خود استفاده خواهیم کرد. بنابراین، هر گونه دانش مقدماتی خوب است اما غیر ضروری نیست.
این دوره به شما آموزش می دهد:
- GraphQL چیست
- مزایای GraphQL
چیست
- اصطلاحات GraphQL را بیاموزید
- چگونه یک سرور GraphQL بسازیم
- اصول طراحی مدرن
- افزودن احراز هویت
- کار با Prisma v3 برای تعامل با Postgres DB
- اتصال GraphQL به مشتری
- با یادگیری در مورد مشکل n + 1 و حل آن، عملکرد را بهبود بخشید
سرفصل ها و درس ها
مقدمه ای بر GraphQL
Introduction to GraphQL
GraphQL چیست
What is GraphQL
GraphQL از واکشی بیش از حد جلوگیری می کند
GraphQL Prevents Over-Fetching
GraphQL از Under-Fetching جلوگیری می کند
GraphQL Prevents Under-Fetching
چگونه داده ها سازماندهی می شوند
How Data is Organized
پرس و جوها و طرحواره ها
Queries and Schemas
تنظیم محیط محلی
Local Environment Setup
راه اندازی GraphQL Server
Setting up a GraphQL Server
انواع اسکالر GraphQL
GraphQL Scalar Types
انواع آرایه GraphQL
GraphQL Array Types
Nodemon برای Hot Reloading
Nodemon for Hot Reloading
انواع شیء GraphQL
GraphQL Object Types
پرس و جو از آرایه ای از اشیاء
Querying an Array of Objects
جستجوی یک شی با متغیرها
Querying One Object with Variables
پرس و جو برای دسته ها
Queries for Categories
داده های مرتبط (یک به چند)
Relating Data (One to Many)
داده های مرتبط (بسیاری به یک)
Relating Data (Many to One)
سازماندهی مجدد برای ساختار فایل بهتر
Reorganizing for a Better File Structure
پارامتر زمینه
The Context Param
افزودن قابلیت Query for Reviews
Adding the Ability to Query for Reviews
فیلتر و نوع ورودی
Filtering and Input Type
فیلتر بر اساس میانگین امتیاز
Filter by Average Rating
جهش ها
Mutations
مقدمه ای بر جهش ها
Intro to Mutations
ایجاد داده - قسمت اول
Creating Data - Part I
ایجاد داده - قسمت دوم
Creating Data - Part II
حذف داده ها (با Set Null) - قسمت اول
Deleting Data (with Set Null) - Part I
حذف داده ها (با حذف آبشار) - قسمت دوم
Deleting Data (with Delete Cascade) - Part II
حذف داده ها - قسمت سوم
Deleting Data - Part III
به روز رسانی داده ها - قسمت اول
Updating Data - Part I
به روز رسانی داده ها - قسمت دوم
Updating Data - Part II
15 قانون طراحی GraphQL
15 Rules of GraphQL Design
مقدمه ای بر طراحی GraphQL
Introduction to GraphQL Design
یک پیاده سازی ساده لوحانه
A Naive Implementation
قانون 1 - با یک دید سطح بالا از اشیا و روابط آنها شروع کنید
Rule 1 - Start with a High Level View of the Objects and Their Relationships
قانون 2 - هرگز جزئیات پیاده سازی را افشا نکنید
Rule 2 - Never Expose Implementation Details
قانون 3 - API خود را حول دامنه کسب و کار خود طراحی کنید
Rule 3 - Design your API Around your Business Domain
قانون 4 - افزودن فیلدها آسانتر از حذف آنها است
Rule 4 - It's Easier to Add Fields than to Remove Them
قانون 5 - فیلدهای نزدیک به هم را به اشیاء فرعی گروه بندی کنید
Rule 5 - Group Closely-Related Fields Together into Sub-Objects
قانون 6 - همیشه بررسی کنید که آیا یک لیست باید صفحه بندی شود یا خیر
Rule 6 - Always Check if a List Should be Paginated
قانون 7 - همیشه به جای فیلدهای شناسه از مراجع شی استفاده کنید
Rule 7 - Always use Object References Instead of ID Fields
قانون 8 - نام فیلدها را بر اساس آنچه معقول است، نه بر اساس اجرا، انتخاب کنید
Rule 8 - Choose Field Names Based on What Makes Sense, Not the Implementation
قانون 9 - از Enums برای فیلدهایی استفاده کنید که فقط می توانند مجموعه خاصی از مقادیر را بگیرند
Rule 9 - Use Enums for Fields that can Only Take a Specific Set of Values
قانون 10 - API شما باید منطق تجاری را ارائه دهد، نه فقط داده ها
Rule 10 - Your API Should Provide Business Logic, Not Just Data
قانون 11 - نوشتن جهش های جداگانه برای اقدامات منطقی جداگانه در یک منبع
Rule 11 - Write Separate Mutations for Separate Logical Actions on a Resource
قانون 12 - برای جهش های رابطه، عملیات روی چند عنصر را در نظر بگیرید
Rule 12 - For Relationship Mutations Consider Operating on Multiple Elements
قانون 13 - پیشوند نام های جهش با شی برای گروه بندی الفبایی
Rule 13 - Prefix Mutation Names with the Object for Alphabetical Grouping
قانون 14 - ورودی های جهش ساختاری برای کاهش تکرار
Rule 14 - Structure Mutation Inputs to Reduce Duplication
قانون 15 - جهش ها باید خطاهای سطح کاربر/کسب و کار را ایجاد کنند
Rule 15 - Mutations Should Provide User/Business Level Errors
راه اندازی پروژه جدید (برنامه رسانه های اجتماعی)
New Project Setup (Social Media App)
یک پروژه جدید
A New Project
کمی درباره TypeScript
A Little About TypeScript
راه اندازی TypeScript
Setting up TypeScript
راه اندازی سرور آپولو
Setting up an Apollo Server
ذخیره سازی پایگاه داده با Prisma v3
Database Storage with Prisma v3
کمی درباره پایگاه های داده SQL
A Little About SQL Databases
چرخاندن یک نمونه Postgres
Spinning up a Postgres Instance
اتصال به پایگاه داده ما با Prisma
Connecting to Our Database with Prisma
ایجاد طرحواره پایگاه داده
Creating a Database Schema
افزودن روابط موجودیت
Adding Entity Relationships
تعریف طرحواره GraphQL ما
Defining Our GraphQL Schema
ایجاد داده با پریسما
Creating Data with Prisma
بازیابی داده ها با پریسما
Retrieving Data with Prisma
به روز رسانی داده ها با پریسما
Updating Data with Prisma
حذف داده ها با پریسما
Deleting Data with Prisma
احراز هویت و مجوز
Authentication and Authorization
احراز هویت و مجوز چیست؟
What is Authentication & Authorization
پیاده سازی ساده ثبت نام
A Naive Signup Implementation
اعتبار سنجی ورودی ها
Validating the Inputs
هش کردن رمز عبور
Password Hashing
توکن های وب Json
Json Web Tokens
ایجاد پروفایل کاربری
Creating a User Profile
اضافه کردن جهش ورود
Adding the Sign In Mutation
شناسایی کاربران با JWT
Identifying Users with JWT
مجوز دادن به کاربران با JWT
Authorizing Users with JWT
اضافه کردن منطق انتشار/لغو انتشار
Adding Publish/Unpublish Logic
افزودن روابط داده
Adding Data Relationships
پرسش من
The Me Query
پرس و جوی پروفایل
The Profile Query
پرس و جوهای پست رابطه ای
Relational Post Queries
دیتالودرها و مشکل N + 1
Dataloaders and the N + 1 Problem
مشکل N + 1
The N + 1 Problem
دسته بندی و گرفتن پرس و جو
Batching and Catching Queries
افزودن DataLoader برای بهبود عملکرد
Adding a DataLoader to Improve Performace
اتصال به Frontend
Connecting to the Frontend
مقدمه ای بر Client Connect
Introduction to Client Connect
Client را با Apollo Client به GraphQL متصل کنید
Connect the Client to GraphQL with Apollo Client
پرس و جو از فرانت اند
Querying From the Frontend
پرس و جو با متغیرها
Querying with Variables
رندر مشروط بر اساس وضعیت احراز هویت
Conditional Rendering Based on Authentication Status
عبور رمز تأیید از Frontend
Passing the Auth Token From the Frontend
اجرای جهش از فرانت اند
Executing Mutations From the Frontend
اضافه کردن منطق ورود/ثبت نام
Adding Signin/Signup Logic
اضافه کردن منطق برای ایجاد یک پست
Adding Logic to Create a Post
نمایش نظرات