دوره NodeJS
دوست داری Node.js رو از پایه تا پیشرفته یاد بگیری و به یه برنامهنویس حرفهای تبدیل بشی؟ تو این دوره، ما از مبانی جاوااسکریپت و اکما اسکریپت شروع میکنیم و قدم به قدم میریم جلو. با MongoDB و Mongoose کار میکنیم، معماری MVC رو یاد میگیریم و با مفاهیم پایه Node.js و مدیریت پکیجها آشنا میشیم. حتی به TypeScript، NPM و ماژولهای پیشرفته هم میپردازیم. در نهایت، با ساخت API، کار با Socket و PostgreSQL، مهارتهامون رو کامل میکنیم. این دوره کاملاً عملی و پروژهمحوره، پس اگه میخوای تو دنیای برنامهنویسی بدرخشی، این فرصت رو از دست نده!
سرفصل های دوره
برای مشاهده ویدیوها ابتدا دکمه شرکت در دوره را بزنید
فصل اول: آموزش اکما اسکریپت
در این جلسه، مفاهیم نرمافزارهای تحت وب شامل بکاند و فرانتاند، حوزههای کاری با Node.js، چرخه درخواست و پاسخ، و آشنایی با نرمافزارهای مقیاسپذیر را آموزش میدهیم. همچنین دانشجویان با مفاهیم Client و Server آشنا خواهند شد.
در این جلسه با معماری و ویژگیهای Node.js آشنا میشوید. همچنین تفاوت زبانهای مفسری و کامپایلی را بررسی کرده و با زمانهای اجرای برنامهنویسی آشنا خواهید شد. در ادامه، با استاندارد ECMAScript 262 و نقش آن در توسعه نرمافزار آشنا میشوید. نصب Node.js و Visual Studio Code را فرا خواهید گرفت و در نهایت، اولین برنامه "Hello World" خود را با Node.js خواهید نوشت.
در این جلسه با مفهوم متغیر و اجزای کامپیوتر آشنا میشوید. نحوه انجام محاسبات کامپیوتری با استفاده از RAM و CPU را فرا خواهید گرفت. با انواع عملگرهای محاسباتی در ECMAScript آشنا میشوید. دستورات خط فرمان (ls, cls, mkdir, cd, code .) را یاد میگیرید. کار با متغیر var در جاوا اسکریپت را خواهید آموخت و با مفهوم حساسیت به حروف کوچک و بزرگ (Case Sensitive) در جاوا اسکریپت آشنا میشوید. همچنین، برنامه جمع دو عدد را نوشته و با دستور console.log() آشنا میشوید. در نهایت، قوانین و قراردادهای نامگذاری متغیرها را فرا میگیرید.
در این جلسه با مفهوم اسکوپ (Scope) و تفاوت بین متغیرهای جهانی و محلی آشنا میشوید و خواهید دانست که مشکل متغیر var در جاوا اسکریپت چیست. همچنین، با تعریف متغیر در ECMAScript آشنا خواهید شد و با متغیرهای let و const کار خواهید کرد. انواع خطاهای منطقی و سیستمی را بررسی میکنید و با خطای assignment در استفاده از متغیرهای const آشنا خواهید شد.
در این جلسه با انواع داده ای در اکما اسکریپت آشنا خواهید . کار با انواع داده ای number ، float ، Boolean ، undefined ، null ، string آشنا خواهید شد و کار با تابع typeof متد های پارسر را فرا خواهید گرفت. و با عملگر concatenation در اکما اسکریپت آشنا خواهید شد.
مهم : تمرین : یک کتاب را باز کنید و یک بند از این کتاب را با استفاده از عملگر concatenation و متغیر ها کد نویسی کنید و خروجی بگیرید.
در این جلسه با انواع عملگرهای مقایسهای (کوچکتر، کوچکتر مساوی، مساوی، بزرگتر مساوی، نامساوی) و منطقی (Not، And، OR) در ECMAScript آشنا خواهید شد. سپس کنترل جریان با استفاده از دستورات شرطی if else را فرا خواهید گرفت و بازی سنگ، کاغذ، قیچی را با استفاده از کنترل جریان و دستورات if else توسعه خواهید داد.
در این جلسه کنترل جریان با استفاده از دستورات switch case را فرا میگیرید و یک برنامه فروش خانه را توسعه میدهید.
مهم: تمرین: برنامه بازی سنگ، کاغذ، قیچی را با استفاده از دستورات switch case توسعه دهید.
در این جلسه با آرایهها آشنا خواهید شد و کار با آرایهها در جاوا اسکریپت را فرا خواهید گرفت. با حلقه for کلاسیک در جاوا اسکریپت آشنا میشوید. دریافت طول آرایه را یاد خواهید گرفت و از متد push() برای افزودن یک مقدار به آرایه استفاده خواهید کرد. کار با اندیس آرایه را فرا میگیرید. با حلقههای for in و for of در ECMAScript آشنا خواهید شد. destructuring در کار با آرایهها و استفاده از عملگر spread را نیز فرا خواهید گرفت.
مهم: تمرین: عبارت انگلیسی "destructuring in JS" را در گوگل جستجو کنید، وارد سایت MDN شوید، متن را ترجمه و مطالعه کنید و کدهای موجود را نوشته و خروجی بگیرید.
در این جلسه با مفهوم تابع آشنا خواهید شد و تعریف تابع در جاوا اسکریپت را فرا خواهید گرفت. با پارامترهای rest آشنا میشوید. متد trim() را در کار با رشتهها استفاده خواهید کرد. با نحوه پرتاب کردن ارور در جاوا اسکریپت آشنا خواهید شد و با شرطهای تک خطی ternary در ECMAScript کار خواهید کرد. همچنین، یک برنامه اعتبارسنجی مشخصات افراد را توسعه خواهید داد.
در این جلسه با مفهوم اشیا در برنامهنویسی آشنا خواهید شد و کار با object در زبان جاوا اسکریپت را فرا خواهید گرفت. جفتهای کلید-مقدار را در اشیا پیادهسازی خواهید کرد و برای اشیا ویژگی (property) و رفتار (method) ایجاد میکنید. با پارامتر this در اشیا آشنا خواهید شد. سپس با accessor در شی کار خواهید کرد و برای شی getter و setter خواهید نوشت. خطاها را با استفاده از throw کردن هندل خواهید کرد. در نهایت، آرایهای از اشیا ایجاد خواهید کرد و با استفاده از ایتریتور map() آن اشیا را مپ خواهید کرد.
در این جلسه با مفهوم کلاس آشنا خواهید شد. با اصول شیگرایی شامل اصل انتزاع (Abstraction)، اصل کپسولهسازی (Encapsulation) و وراثت (Inheritance) آشنا خواهید شد. تعریف کلاس در جاوا اسکریپت را فرا خواهید گرفت و میتوانید از کلاسهایتان نمونهسازی کنید. با constructor در کلاس کار خواهید کرد. الگوریتم درخت را فرا خواهید گرفت و ارثبری کلاسها در جاوا اسکریپت را پیادهسازی خواهید کرد.
برای این جلسه از دوره Node.js، ما به شما اصول چندریختی در برنامهنویسی شیگرا را آموزش میدهیم. شما با پیادهسازی چندریختی در زبان جاوا اسکریپت، کاربرد و فایدههای آن را در عمل خواهید آموخت. همچنین، با ساختارهای مهمی مانند RAM و فضاهای مختلف حافظه مانند stack و heap آشنا شده و با الگوریتمهای stack، queue و tree کار خواهید کرد. این دانش به شما کمک میکند تا درک بهتری از چگونگی تخصیص حافظه برای انواع دادهها در جاوا اسکریپت داشته باشید.
در این جلسه، شما با مفاهیم کلیدی برنامهنویسی همزمان و ناهمزمان آشنا خواهید شد. فراگیری پردازشهای CPU Bound و I/O Bound به شما کمک میکند تا عملکرد برنامههای Node.js خود را بهینه سازید. همچنین، با Thread و Thread pool و نحوه مدیریت آنها در محیط single-thread Node.js آشنا میشوید. پیادهسازی async و sync و کار با Promiseها نیز بخشی از این جلسه است.
در این جلسه از دوره Node.js، به یادگیری و پیادهسازی ماژولهای ES و CommonJS پرداخته میشود. این جلسه شما را با دو روش محبوب مدیریت ماژول در جاوا اسکریپت آشنا میکند، که هر دو برای ساختاردهی و توسعه پروژههای Node.js کاربرد فراوانی دارند.
فصل دوم: آموزش MongoDB
در این جلسه با مفاهیم پایه پایگاه داده آشنا میشوید. مفهوم داده را یاد میگیرید و با انواع پایگاه داده (SQL) آشنا میشوید. تفاوتهای پایگاه دادههای رابطهای و غیر رابطهای را فرا میگیرید. همچنین با نحوه ذخیرهسازی داده در دیتابیس و مفهوم Rollback در دیتابیس آشنا میشوید. در نهایت، روابط یک به یک، یک به چند و چند به چند در پایگاههای داده رابطهای را میآموزید.
در این جلسه از دوره Node.js به آموزش پایگاه داده MongoDB میپردازیم. شما با دادهساختارهای JSON و BSON آشنا شده و روش نصب MongoDB را یاد میگیرید. همچنین، با مفاهیم اساسی مانند collection، document و field در MongoDB آشنا میشوید و معماری این دیتابیس را فرا میگیرید. در پایان، MongoDB Shell را نصب کرده و با استفاده از آن، اولین پایگاه داده خود را ایجاد میکنید. این مهارتها برای توسعه برنامههای مبتنی بر Node.js با استفاده از MongoDB ضروری است.
در این جلسه از دوره Node.js، به شما نحوه نصب و استفاده از رابط گرافیکی MongoDB Compass را آموزش میدهیم. شما با محیط Compass و نحوه استفاده از آن برای ایجاد و مدیریت اسناد و مجموعهها در MongoDB آشنا میشوید. همچنین، با دستورات اساسی و قدرتمند MongoDB برای ایجاد و مدیریت پایگاه دادهها کار خواهید کرد. این مهارتها به شما کمک میکنند تا با اطمینان بیشتری از MongoDB در پروژههای توسعهیافته با Node.js استفاده کنید.
در این جلسه از دوره Node.js، نحوه استفاده از محیط توسعه VSCode برای مدیریت پایگاه داده MongoDB را فرا میگیرید. شما با فرآیندهای ساخت و حذف دیتابیسها، مجموعهها و اسناد در MongoDB آشنا شده و به کار با ایتریتور forEach در ECMAScript میپردازید. این دانش به شما کمک میکند تا با استفاده از VSCode به طور مؤثرتری با MongoDB کار کنید و از قابلیتهای پیشرفته این ادیتور برای تسهیل برنامهنویسی پایگاه داده بهرهمند شوید.
در این جلسه از دوره Node.js، به آموزش کار با دستورات پایه MongoDB میپردازیم. شما با استفاده از دستورات insertOne و insertMany یاد خواهید گرفت که چگونه یک یا مجموعهای از اسناد را به پایگاه داده اضافه کنید. این دستورات به شما امکان میدهند تا با اعمال تغییرات دقیق و کنترل شده بر دادههای خود، مدیریت اطلاعات را در MongoDB بهینهسازی کنید. این مهارتها برای توسعه برنامههای کاربردی مدرن و کارآمد ضروری است.
در این جلسه از دوره Node.js به یادگیری نحوه استفاده از دستورات deleteOne و deleteMany برای حذف یک یا چند سند از پایگاه داده MongoDB خواهید پرداخت. این دستورات به شما کمک میکنند تا به راحتی و با دقت اسناد مورد نظر را حذف کنید. همچنین، به عنوان بخشی از تمرین، تشویق میشوید تا با جستجوی عبارت "mongodb operators" در گوگل، وارد سایت رسمی MongoDB شده و اسناد مربوط به عملگرها را مطالعه کنید تا درک عمیقتری از عملکردهای پایگاه داده کسب کنید. این فعالیتها به شما در بهبود مهارتهای کار با MongoDB و توسعه برنامههای کاربردی مؤثرتر کمک خواهد کرد.
در این جلسه از دوره Node.js، به آموزش دستورات updateOne و updateMany برای بروزرسانی اسناد در پایگاه داده MongoDB میپردازیم. شما با عملگر $set آشنا خواهید شد و یاد میگیرید چگونه این عملگر را برای تغییر محتوای اسناد موجود به کار ببرید. این تکنیکها به شما کمک میکنند تا به راحتی اطلاعات را بروزرسانی کرده و پایگاه داده خود را مدیریت کنید.
در این جلسه از دوره Node.js، به بررسی و آموزش عملگرهای مقایسهای و منطقی در MongoDB میپردازیم. شما با عملگرهای $gt, $gte, $lt, $lte, و $eq که برای مقایسه استفاده میشوند آشنا میشوید و همچنین عملگرهای منطقی $not, $or, و $and را یاد میگیرید. این عملگرها به شما امکان میدهند تا کوئریهای پیچیدهتر و دقیقتری را بر روی دادههای خود اجرا کنید و با استفاده از آنها، میتوانید به طور مؤثرتری دادهها را فیلتر و مدیریت کنید.
در این جلسه از دوره JavaScript، به شما آموزش داده میشود که چگونه با Expressionها و اولویت عملگرها در JavaScript کار کنید. شما با انواع Expressionها و نحوه استفاده از آنها در برنامههای خود آشنا میشوید و یاد میگیرید که چگونه اولویت عملگرها تعیین میشود تا دستورات بر اساس این اولویتها به درستی اجرا شوند. این مهارتها به شما کمک میکنند تا کدهای دقیقتر و کارآمدتری بنویسید و بهترین نتایج را از برنامههای خود دریافت کنید.
در این جلسه از دوره MongoDB، به یادگیری نحوه کوئری نویسی با استفاده از دستورات find() و findOne() میپردازیم. شما یاد میگیرید که چگونه این دستورات را برای جستجو و بازیابی اسناد از پایگاه دادههای MongoDB به کار ببرید. با استفاده از find() میتوانید مجموعهای از اسناد را بر اساس فیلترهای خاص بازیابی کنید، در حالی که findOne() برای یافتن اولین سند مطابق با معیارهای جستجو استفاده میشود. این تکنیکها اساسی برای مدیریت دادهها و تحلیلهای پایگاه داده در پروژههای واقعی هستند.
در این جلسه از دوره MongoDB، با مفهوم cursor در پایگاه داده MongoDB و نحوه استفاده از حلقه while در JavaScript آشنا میشوید. شما یاد خواهید گرفت که چگونه با استفاده از cursor، اسناد را به صورت تکراری پردازش کنید و با متدهای sort(), skip(), و limit()، کارایی در مرتبسازی و pagination اسناد را افزایش دهید. این مهارتها به شما کمک میکنند تا با دادههای بزرگ به طور مؤثرتری کار کنید و دریافت دادهها را بر اساس نیازهای کاربردی خود مدیریت کنید.
در این جلسه از دوره MongoDB، به یادگیری مفهوم و کاربرد Projection در پایگاه دادههای MongoDB میپردازیم. Projection به شما امکان میدهد تا بخشهای خاصی از دادهها را در نتایج کوئری خود مشخص کنید، که این به شما کمک میکند تا دادههای کمتری را بازیابی کنید و در نتیجه عملکرد سیستم خود را بهبود ببخشید. شما یاد خواهید گرفت که چگونه فیلدهای مورد نیاز را برای نمایش انتخاب کنید و کدام یک را حذف کنید، که این امر به افزایش کارایی و سرعت کوئریها کمک میکند.
در این جلسه از دوره MongoDB، به آموزش فرآیند Aggregation میپردازیم، که یکی از قدرتمندترین ابزارها برای تجزیه و تحلیل و گزارشگیری داده در MongoDB است. شما با استفاده از دستور aggregate() یاد میگیرید چگونه دادهها را بر اساس نیازهای خاص گزارشگیری خود مرتب و سازماندهی کنید. این جلسه شما را با عملگرهای مختلفی مانند $match، $count، $group، $sum، $avg، $min، $max، $sort، $skip، $limit، و $project آشنا میکند و نحوه استفاده از آنها را برای دستیابی به نتایج دقیق و مفید آموزش میدهد. این تکنیکها به شما اجازه میدهند تا دادههای خود را برای تحلیلها و گزارشهای پیچیده به شیوهای کارآمد فراخوانی کنید.
در این جلسه از دوره MongoDB، شما با دو نوع مهم از ساختارهای دادهای در MongoDB آشنا خواهید شد: اسناد Embedded و اسناد رابطهای. ما به بررسی تفاوتهای این دو نوع ساختار پرداخته و نحوه استفاده و مدیریت آنها را در پروژههای واقعی شرح میدهیم. این جلسه به شما کمک میکند تا درک بهتری از چگونگی ایجاد اسناد Embedded که دادههای مرتبط را در یک سند جامع ذخیره میکنند و اسناد رابطهای که از ارجاعات برای پیوند دادن دادههای مرتبط در اسناد جداگانه استفاده میکنند، پیدا کنید. این دانش برای توسعه برنامههای کاربردی موثرتر و سازگار با نیازهای تجاری متفاوت شما اساسی است.
در این جلسه از دوره MongoDB، به بررسی نحوه اندیسگذاری در پایگاه دادههای MongoDB میپردازیم. شما با دستورات مهمی مانند createIndex() برای ایجاد اندیسها و getIndex() برای بازیابی اطلاعات اندیسهای موجود آشنا خواهید شد. این دستورات به شما کمک میکنند تا با افزایش سرعت و کارایی کوئریها، عملکرد پایگاه داده خود را بهبود ببخشید. اندیسگذاری یکی از مهمترین تکنیکها برای مدیریت پایگاه دادههای بزرگ و پیچیده است و شناخت صحیح آن برای هر توسعهدهندهای ضروری است.
در این جلسه از دوره MongoDB، به بررسی و آموزش مفهوم Join و کار با عملگر $lookup میپردازیم. عملگر $lookup در MongoDB امکان ادغام دادهها بین کالکشنهای مختلف را فراهم میکند، که مشابه عملیات Join در پایگاههای داده رابطهای است. شما یاد میگیرید چگونه از این عملگر برای ایجاد کوئریهایی که نیاز به دسترسی به دادههای مرتبط از چندین کالکشن دارند، استفاده کنید. این تکنیک برای تحلیلهای پیچیده و کاربردهایی که نیاز به دیدگاههای گستردهتری از دادهها دارند، بسیار مفید است.
در این جلسه از دوره MongoDB، با مفاهیم اساسی مرتبط با مقیاسپذیری در این پلتفرم آشنا میشوید. مباحثی مانند sharding و replication مورد بررسی قرار میگیرند، که هر دو برای مدیریت و توزیع دادهها در سطح بزرگ ضروری هستند. همچنین، با الگوی CQRS (Command Query Responsibility Segregation) آشنا خواهید شد که چگونه این الگو میتواند به بهبود عملکرد خواندن و نوشتن در پایگاههای داده بزرگ کمک کند. این دانش به شما کمک میکند تا برای سناریوهای دادهای در مقیاس وسیع آماده شوید و بتوانید پروژههایی با پیچیدگی بالا را مدیریت کنید.
فصل سوم: آموزش مانگوس (Mongoose)
در این جلسه از دوره Node.js، با استفاده از NPM شروع به کار میکنید و با فایلهای مهمی مانند package.json و package-lock.json و همچنین فولدر nodemodules آشنا میشوید. ما نیز انواع dependencyها را بررسی میکنیم و با ماژولهای هسته، لوکال و گلوبال در Node.js آشنا میشوید. بخش عمدهای از این جلسه به ماژول http اختصاص دارد، جایی که یاد میگیرید چگونه یک سرور ایجاد کنید و با مفاهیم کلیدی مانند request و response کار کنید. در انتها، چگونگی راهاندازی یک سرور Node.js با استفاده از ماژول http را فرا میگیرید. به عنوان تمرین، توصیه میکنیم از امروز به سایت www.w3schools.com رفته و اسناد مربوط به HTML را مطالعه کرده و کدهای نوشته شده را خودتان بنویسید و خروجی بگیرید تا با اصول پایهای وب آشنا شوید.
در این جلسه از دوره Node.js، با درایور MongoDB برای Node.js آشنا شده و یاد میگیرید چگونه به پایگاه داده متصل شوید. ما به بررسی دو روش مختلف بارگذاری دادهها، Eager loading و Lazy Loading، میپردازیم تا درک کنید چگونه این تکنیکها میتوانند تأثیری عمده بر عملکرد برنامه شما داشته باشند. همچنین، با استفاده از متدهای MongoClient، دستورات اساسی مانند insert، update، delete، و find را برای ذخیرهسازی و بازیابی اطلاعات انجام میدهید. این جلسه به شما کمک میکند تا با ابزارهای لازم برای مدیریت دادهها در MongoDB به روشی کارآمد و مؤثر آشنا شوید.
در این جلسه از دوره Node.js، با پکیج Mongoose آشنا میشوید که یک ابزار قدرتمند برای کار با MongoDB است. ابتدا، نحوه اتصال به پایگاه داده MongoDB با استفاده از Mongoose را یاد میگیرید. سپس، به شما آموزش داده میشود چگونه برای مدلهای داده خود Schema تعریف کنید و با انواع داده در Mongoose آشنا شوید. این جلسه همچنین شامل ساخت مدلهای دیتابیسی با استفاده از Schemaهای تعریف شده است. در ادامه، یاد میگیرید چگونه دستورات اساسی مانند insert، update، delete، و find را با استفاده از Mongoose پیادهسازی کنید. این مهارتها به شما کمک میکنند تا با اطمینان بیشتر و به طور مؤثرتری با پایگاه دادههای MongoDB کار کنید.
در این جلسه از دوره Node.js و MongoDB، به یادگیری نحوه نوشتن اعتبارسنجی برای مدلهای دیتابیسی با استفاده از Mongoose پرداخته میشود. شما با خصوصیات مهمی مانند type، require، max، و min در Schemaهای Mongoose آشنا میشوید که به شما کمک میکند دادههای ورودی را بر اساس شرایط مشخص شده معتبر سازید. همچنین، با دستورات اساسی Mongoose شامل insertOne، insertMany، deleteOne، deleteMany، updateOne، و updateMany آشنا میشوید که این دستورات امکان مدیریت دادهها در پایگاه داده را فراهم میکنند. این مهارتها به شما اجازه میدهند تا با اطمینان و دقت بیشتری دادههای خود را در MongoDB مدیریت کنید.
فصل چهارم: مدل ویو کنترلر (MVC)
در این جلسه از دوره آموزشی، با پروژه VOD (Video on Demand) آشنا میشوید. شما شرایط و اصول کلی این پروژه را درک خواهید کرد و با جزئیات طراحی پایگاه داده مربوط به این پروژه، از جمله مدلهای دادهای و روابط بین آنها آشنا میشوید. علاوه بر این، مفاهیم DbFirst و CodeFirst معرفی میشوند که دو رویکرد متداول در توسعه پایگاههای داده هستند. DbFirst به شما امکان میدهد از طراحی پیشفرض پایگاه داده شروع کنید، در حالی که CodeFirst به توسعهدهندگان اجازه میدهد با کدنویسی شروع به ساخت پایگاه داده کنند. این دانش برای پیادهسازی موثر پروژههای مرتبط با ویدیو در دسترس شما قرار میگیرد و به شما کمک میکند تا با زیرساختهای مورد نیاز برای اجرای موفقیتآمیز چنین پروژههایی آشنا شوید.
در این جلسه از دوره آموزشی، شما با معماری پروژه Video on Demand (VOD) آشنا میشوید. ما به بررسی چهار لایه اصلی پروژه: data، ui، framework، و domain خواهیم پرداخت. شما یاد میگیرید چگونه ساختار فولدر و پروژه را برای پیادهسازی بهینه ایجاد کنید. همچنین، با ایجاد اسکیماهای دیتابیسی و اعتبارسنجیهای مربوطه به کمک Mongoose آشنا میشوید. این جلسه همچنین شامل آموزش تنظیمات مربوط به CommonJS و ESModule در فایل package.json است، که به شما کمک میکند درک بهتری از مدیریت وابستگیها و ماژولها در Node.js داشته باشید. این دانش بنیان محکمی برای توسعه و پیادهسازی پروژههای بزرگ و پیچیده فراهم میکند.
در این جلسه از دوره آموزشی، شما به پیادهسازی ادامه اسکیماهای دیتابیسی با استفاده از Mongoose خواهید پرداخت و با اعتبارسنجیهای لازم برای این اسکیماها آشنا میشوید. این جلسه همچنین به بررسی چگونگی ایجاد و مدیریت روابط دیتابیسی یک به یک، یک به چند و چند به چند در MongoDB میپردازد، با استفاده از قابلیتهای رفرنسدهی Mongoose. این فرایند به شما امکان میدهد ساختارهای پیچیده دادهای را به طور مؤثر مدیریت و بهینهسازی کنید، که برای حفظ یکپارچگی دادهها و کارایی در کوئریهای پیچیده حیاتی است.
در این جلسه از دوره آموزشی، شما به تکمیل اسکیماهای دیتابیسی باقیمانده میپردازید. به کمک Mongoose، شما نه تنها این اسکیماها را با تمام جزئیات و اعتبارسنجیهای لازم ایجاد میکنید، بلکه روابط دیتابیسی بین مدلهای مختلف را نیز پیادهسازی خواهید کرد. این فرآیند شامل تعریف دقیق نحوه تعامل دادهها و چگونگی ارتباط آنها در درون پایگاه داده است. با استفاده از Mongoose، اسکیماها و روابط بین آنها به گونهای سازماندهی میشوند که به حفظ یکپارچگی دادهها و بهبود کارایی در اجرای کوئریها کمک کند. این دانش برای مدیریت پیچیدگیهای دیتابیس در پروژههای بزرگ بسیار ارزشمند است.
در این جلسه از دوره آموزشی پروژه VOD، شما به پیادهسازی و تکمیل نهایی اسکیماهای دیتابیسی خود خواهید پرداخت. این شامل اعتبارسنجیهای لازم برای تضمین کیفیت و صحت دادهها و همچنین تعریف روابط بین مدلهای مختلف است تا اطمینان حاصل شود که دادهها به طور مؤثر در پایگاه داده سازماندهی شدهاند. شما یاد میگیرید چگونه این اسکیماها و روابط را برای مدیریت بهتر دادهها و افزایش کارایی کوئریها در پروژههای بزرگ پیادهسازی کنید. این فرایند به شما کمک میکند تا با اطمینان بیشتری پروژههای دیتابیسی خود را مدیریت و بهینهسازی نمایید.
در این جلسه از دوره Node.js، شما با مفهوم شیء Context آشنا میشوید که یک ابزار کلیدی برای مدیریت و سازماندهی مدلهای دیتابیسی است. این شیء به شما امکان میدهد که نمونهسازیهای دیتابیسی خود را متمرکز کنید و به طور موثری به دیتابیس MongoDB متصل شوید. شما یاد خواهید گرفت چگونه از این شیء برای اجرای دستورات دیتابیسی مانند درج، بهروزرسانی، حذف، و بازیابی دادهها استفاده کنید. استفاده از شیء Context به شما کمک میکند تا کدهای تمیزتر و سازمانیافتهتری داشته باشید و بهرهوری کد را افزایش دهید. این جلسه به شما دید بهتری نسبت به چگونگی مدیریت و پیادهسازی منطق دیتابیس در پروژههای بزرگ میدهد.
در این جلسه از دوره پروژه VOD، با مفهوم اشیاء داده ای انتقالی (Data Transfer Object یا DTO) آشنا خواهید شد. DTO یک الگوی طراحی است که برای انتقال دادهها بین پردازشها یا لایههای مختلف برنامه بدون ایجاد وابستگی متقابل استفاده میشود. شما تفاوتهای کلیدی بین DTO و دادههای مستقیم دیتابیسی را خواهید آموخت و نحوه ساخت DTOها را برای عملیات مختلف مانند ثبت، ویرایش، جستجو، و نمایش نتایج جستجو در پروژه VOD یاد خواهید گرفت. همچنین، با مفاهیم مربوط به صفحهبندی (Pagination) آشنا شده و یک کلاس پایه برای اجرای صفحهبندی ایجاد میکنید که این کلاس از 'super' در سازنده کلاس برای فراخوانی سازنده کلاس والد استفاده میکند. این تکنیکها به شما کمک میکنند تا دادهها را به طور مؤثرتری در برنامه خود مدیریت کنید و تجربه کاربری بهتری را ارائه دهید.
در این جلسه از دوره آموزشی پروژه VOD، شما به تکمیل ساخت DTOها برای همه مدلهای دیتابیسی پروژه خود خواهید پرداخت. DTOها، یا اشیا دادهای انتقالی، به عنوان بخش مرکزی در انتقال دادهها بین لایههای مختلف نرمافزار و بدون افشای ساختار دیتابیس اصلی عمل میکنند. این کار به شما اجازه میدهد تا اطمینان حاصل کنید که تمام دادهها به صورت امن و مؤثر در بین کامپوننتهای مختلف برنامه منتقل میشوند. شما با ایجاد DTOهای مخصوص هر مدل، به افزایش کارایی و قابلیت نگهداری برنامه کمک خواهید کرد، و میتوانید اطمینان حاصل کنید که دادههای انتقالی با انعطافپذیری و امنیت بالا مدیریت میشوند.
در این جلسه از دوره آموزشی پروژه VOD، با کتابخانه اعتبار سنجی JOI آشنا میشوید. JOI یک ابزار قدرتمند برای اعتبار سنجی اشیاء جاوا اسکریپت است که به ویژه برای مدیریت دادههای دریافتی از کاربر در برنامههای وب استفاده میشود. شما یاد خواهید گرفت چگونه JOI را به پروژه خود اضافه کنید و اسکیماهایی برای اعتبار سنجی DTOهای مختلف، به خصوص برای عملیات ثبت و ویرایش، تعریف نمایید. این اسکیماها به شما کمک میکنند تا از صحت دادههای ورودی اطمینان حاصل کنید و خطاهای احتمالی را قبل از پردازش یا ذخیرهسازی دادهها شناسایی و رفع نمایید. این کار به بهبود کیفیت و امنیت برنامه شما کمک شایانی میکند.
در این جلسه از دوره آموزشی پروژه VOD، با مفهوم عبارات باقاعده یا RegExp آشنا میشوید که یکی از ابزارهای قدرتمند برای پردازش متن است. شما با برخی از پترنهای کلیدی عبارات باقاعده آشنا شده و یاد میگیرید چگونه این پترنها را در سناریوهای واقعی برای مطابقت یا جستجوی الگوها در متن استفاده کنید. همچنین، شما اسکیماهای اعتبار سنجی برای دادههای انتقالی ثبت و ویرایش را با استفاده از کتابخانه JOI ایجاد خواهید کرد. این کتابخانه به شما امکان میدهد اعتبارسنجیهای پیچیده و دقیقی را بر روی دادههای ورودی اعمال کنید، که به شما کمک میکند تا دادههای ورودی را به شیوهای ایمن و مؤثر مدیریت کنید و خطاهای احتمالی را قبل از پردازش یا ذخیرهسازی دادهها شناسایی و رفع نمایید. این دانش به شما کمک میکند تا برنامههای خود را با امنیت و کیفیت بالاتر توسعه دهید.
در این جلسه از دوره آموزشی پروژه VOD، شما به تکمیل نوشتن باقیمانده اسکیماهای اعتبارسنجی برای دادههای انتقالی ثبت و ویرایش خواهید پرداخت. این اسکیماها از اهمیت بالایی برخوردار هستند چرا که به شما کمک میکنند تا اطمینان حاصل کنید که تمامی دادههای ورودی به سیستم شما دقیق، قابل اعتماد و مطابق با استانداردهای تعیین شده هستند. شما با استفاده از ابزارهایی مانند JOI یا سایر کتابخانههای مشابه، اعتبارسنجیهای لازم برای فیلدهای مختلف دادههای ورودی را ایجاد خواهید کرد، از جمله بررسی فرمتها، حداقل و حداکثر مقادیر، و سایر قوانین مرتبط با هر فیلد. این کار نه تنها به جلوگیری از خطاها و مشکلات احتمالی کمک میکند، بلکه باعث بهبود تجربه کاربری و کارایی برنامه نیز میشود.
در این جلسه از دوره آموزشی، با دو مفهوم مهم در سطح نرمافزار یعنی Command و Query آشنا خواهید شد. این دو مفهوم بخشهای اساسی الگوی طراحی CQRS (Command Query Responsibility Segregation) هستند که در بسیاری از سیستمهای نرمافزاری پیادهسازی میشود. Command به عملیاتهایی گفته میشود که به تغییر دادهها منجر میشوند و هیچ دادهای را برنمیگردانند، مانند ایجاد، ویرایش یا حذف یک رکورد. Query به عملیاتهایی اشاره دارد که تنها به خواندن دادهها میپردازند و نتیجه ای را برمیگردانند، بدون اینکه تغییری در دادهها ایجاد کنند. همچنین، در این جلسه یاد میگیرید چگونه برای نتیجه عملیاتهای دیتابیسی یک نتیجه عملیات تعریف کنید، که این امر به شما کمک میکند تا وضعیت عملیاتهای اجرا شده را مدیریت و ردیابی کنید. این مفاهیم بنیادی به شما کمک میکنند تا بتوانید سیستمهای نرمافزاری پیچیدهتر و قابل نگهداریتری طراحی کنید.
در این جلسه از دوره Node.js، با مفهوم Repository و کاربرد آن در مدیریت لایه Data آشنا میشوید. Repository یک الگوی طراحی است که به منظور انتزاع و مدیریت دسترسی به دادهها در دیتابیسها استفاده میشود. شما یاد خواهید گرفت چگونه دستورات ثبت، حذف، و ویرایش دادهها را به وسیله شیء context که پیشتر ساختهاید، اجرا کنید. در این بخش، همچنین با مفهوم async و await برای اجرای عملیاتهای ناهمزمان به طور عملیاتی کار خواهید کرد. این کار به شما کمک میکند تا کد خود را به شیوهای تمیزتر و خواناتر بنویسید. مدیریت خطاها نیز با استفاده از دستورات trycatch مورد بررسی قرار میگیرد تا بتوانید به شکل مؤثری از شرایط خطا در برنامه خود جلوگیری کنید و به طور مناسب به آنها پاسخ دهید. در نهایت، شما اولین داده دیتابیسی خود را با استفاده از Node.js ایجاد خواهید کرد، که این یک گام بزرگ در توسعه برنامههای تحت وب مبتنی بر Node.js است.
در این جلسه از دوره Node.js، شما با استفاده از شی Context، دستورات Command دیتابیس نظیر get و getAll را برای فراخوانی دادهها ایجاد میکنید. این فرایند شامل استفاده از متدهای پیشرفته برای بهبود فراخوانی و مدیریت دادهها است. شما همچنین با پیادهسازی برخی منطقهای بیزینسی مرتبط با عملیات دیتابیس آشنا خواهید شد که به بهینهسازی فرآیندها و تضمین پاسخگویی سیستم به نیازهای کاربردی کمک میکند. علاوه بر این، جستجوی دادهها به کمک دستور where و فراخوانی دادهها بر اساس شرایط مشخص، همراه با عملیاتهای sort، limit، و skip برای مدیریت نمایش دادهها در اپلیکیشن شما پیادهسازی میشود. در ادامه، با عملگر $regex برای انجام جستجوهای پترنبنیان در متنها آشنا خواهید شد، که این امکان را میدهد تا جستجوهای دقیقتر و مرتبطتری بر اساس الگوهای متنی انجام دهید. این دانش به شما کمک میکند تا اپلیکیشنهایی با قابلیتهای جستجوی پیشرفتهتر و دقیقتر ایجاد کنید و تجربه کاربری بهتری را ارائه دهید.
در این جلسه از دوره Node.js، به پیادهسازی دستورات ذخیرهسازی و بازیابی دادهها برای یک مدل دیگر در پروژه شما خواهیم پرداخت. این فرایند شامل ایجاد و استفاده از فانکشنهای مختلف در Node.js برای ذخیرهسازی اطلاعات به دیتابیس و بازیابی آنها بر اساس نیازهای کاربردی است. شما یاد خواهید گرفت که چگونه از این دستورات برای مدیریت دادههای مدل خاصی استفاده کنید و نحوه به کارگیری تکنیکهای مؤثر برای برقراری ارتباط با دیتابیس و مدیریت دادههای مرتبط با آن مدل را فرا خواهید گرفت. این عملیات نه تنها به بهبود کارایی دیتابیس کمک میکند، بلکه تضمین میکند که دادههای شما به شکل امن و قابل اطمینان ذخیره و بازیابی میشوند. این دانش بنیادی برای توسعه و پیادهسازی برنامههای تحت وب که نیازمند مدیریت دادههای پیچیده هستند، اساسی است.
در این ویدئو با مفاهیم وبسایت و وب اپلیکیشن در محیط Node.js آشنا خواهید شد. همچنین، تگهای اساسی HTML مانند p، pre، headings، list، table، form و div معرفی و نحوه استفاده از CSS برای استایلدهی به این تگها در Node.js آموزش داده میشود.
در این ویدئو با بوتاسترپ، رنگها، متریال، مفهوم کانتینر و استایلهای Bootstrap آشنا خواهید شد. همچنین نحوه ایجاد جدول و فرم با استفاده از Bootstrap آموزش داده میشود.
در این ویدئو با مفهوم URL، پروتکل HTTP، افعال HTTP مانند GET، POST، PUT، DELETE، PATCH و معماری MVC آشنا خواهید شد. همچنین مفهوم Middleware و چرخه حیات درخواست را یاد میگیرید.
در این ویدئو با فریمورک Express و نصب آن آشنا میشوید. سپس با Nodemon، EJS و Body-parser آشنا شده و آنها را نصب میکنید. همچنین پیکربندی مربوط به هر کدام از این پکیجها را انجام داده و یک مثال ساده از معماری MVC پیادهسازی خواهید کرد. در نهایت با HTTP Methods کار کرده و روتر ایجاد میکنید و فایلهای استاتیک EJS را پویا میسازید.
در این ویدئو تمپلیت پروژه VOD را دانلود کرده و بهصورت کامل بر روی پروژه نصب خواهید کرد.
در این ویدئو با استفاده از Express، EJS و ماژول Path صفحات layout پروژه را داینامیک خواهید ساخت.
در این ویدئو با مفاهیم DOM و AJAX آشنا میشوید. سپس jQuery را روی پروژه راهاندازی کرده و با رویدادهای JavaScript مرورگر و مفاهیم dom-ready و dom-on در jQuery آشنا میشوید.
در این ویدئو ریپازیتوری مربوط به بازیگران را پیادهسازی کرده، روتر و کنترلر بازیگران را نوشته و صفحه مدیریت بازیگران را پویاسازی خواهید کرد.
در این ویدئو ادامه پیادهسازی و تکمیل صفحه مدیریت بازیگران را انجام خواهید داد.
در این ویدئو ریپازیتوری مربوط به نویسندگان را پیادهسازی خواهید کرد.
در این ویدئو صفحه مدیریت نویسندگان را پویاسازی کرده و برای آن کنترلر، روتر و ویو ایجاد خواهید کرد.
در این ویدئو ادامه و تکمیل پویاسازی صفحه مدیریت نویسندگان را انجام خواهید داد.
در این ویدئو ریپازیتوری مربوط به صفحات کارگردانان را پیادهسازی کرده و به مرور و یادآوری مفهوم Promise خواهیم پرداخت.
در این ویدئو صفحه مدیریت کارگردانان را پویاسازی کرده و با کتابخانه jQuery Unobtrusive Ajax آشنا خواهید شد. همچنین از نشانهگذاری data- و attribute selectorها در jQuery استفاده خواهید کرد.
در این ویدئو صفحه مدیریت کارگردانان را به طور کامل پیادهسازی و تکمیل خواهید کرد.
در این ویدئو صفحه مدیریت کارگردانان را کاملتر کرده و یک کتابخانه برای نشانهگذاریهای Unobtrusive ایجاد میکنیم تا از تکرار کدهای تکراری جلوگیری شود.
در این ویدئو ریپازیتوری مربوط به آهنگسازان را پیادهسازی خواهید کرد.
در این ویدئو کنترلرها، روترها و صفحات مربوط به آهنگسازان را پیادهسازی کرده و با دیباگ کردن کدها در محیط VSCode آشنا خواهید شد.
در این ویدئو ریپازیتوری مربوط به ژانر را پیادهسازی خواهید کرد.
در این ویدئو کنترلر، روترها و صفحه مدیریت ژانرها را پیادهسازی خواهید کرد. همچنین اعتبارسنجی دادههای انتقالی با کتابخانه Joi را انجام داده و خطاها را به کاربر نمایش خواهید داد.
در این ویدئو با متدهای استاتیک در اکما اسکریپت آشنا شده و از آنها برای پیادهسازی ادامه صفحه مدیریت ژانرها استفاده خواهید کرد.
در این ویدئو با ماژولهای Built-in در Node.js آشنا شده و با ماژولهای global، process، logger، fs، os و path کار خواهید کرد.
در این ویدئو صفحه مدیریت دستهبندیها را پیادهسازی کرده و با استفاده از ماژول Multer، کار با فایلها را یاد میگیرید. همچنین با مفاهیمی مانند MIME Type، Extension، destination و disk storage آشنا شده و برای دستهبندیها عکس آپلود خواهید کرد.
در این ویدئو با مفهوم String آشنا شده و متدهای مهم آن مانند replace، slice، startsWith، endsWith، includes، split، toUpperCase، toLowerCase، trim و search را بررسی خواهید کرد.
در این ویدئو ادامه کار با فایلها را انجام داده و صفحه مدیریت دستهبندیها را بهطور کامل پیادهسازی خواهید کرد.
در این ویدئو ریپازیتوری مربوط به فیلمها را پیادهسازی خواهید کرد.
در این ویدئو صفحه مدیریت فیلمها را پیادهسازی کرده و روابط مربوط به دادهها را در Mongoose پیادهسازی خواهید کرد.
در این ویدئو ادامه پیادهسازی صفحه مدیریت فیلمها را انجام داده و فایلهای مربوط به فیلمها را آپلود خواهید کرد.
در این ویدئو به پیادهسازی برخی امکانات صفحه مدیریت فیلمها خواهیم پرداخت.
در این ویدئو به پیادهسازی برخی امکانات دیگر صفحه مدیریت فیلمها خواهیم پرداخت.
در این ویدئو به پیادهسازی برخی دیگر از امکانات صفحه مدیریت فیلمها خواهیم پرداخت.
در این ویدئو به تکمیل پیادهسازی صفحه مدیریت فیلمها خواهیم پرداخت.
در این ویدئو ریپازیتوریهای مربوط به جعبههای نمایش را پیادهسازی خواهید کرد.
در این ویدئو صفحه مدیریت جعبههای نمایش را با پیادهسازی کنترلر و روترها پویاسازی خواهید کرد.
در این ویدئو با مفهوم صفحهبندی (pagination) آشنا شده و آن را برای جعبههای نمایش پیادهسازی خواهید کرد.
در این ویدئو لینکسازیهای مربوط به صفحات مدیریت را انجام داده و صفحه 404 NotFound را پیادهسازی خواهید کرد.
در این ویدئو پیادهسازی صفحات ویزیتوری را آغاز کرده و صفحه homepage را پیادهسازی میکنید. همچنین با مفهوم aggregate در Mongoose آشنا شده و با استفاده از $lookup برای مجموعههای مرتبط join مینویسید.
در این ویدئو با مباحث رمزنگاری (cryptography)، احراز هویت و امنیت نرمافزار آشنا خواهید شد. انواع حملات به نرمافزار، کلیدهای متقارن و نامتقارن، مفاهیم برگشتپذیر و برگشتناپذیر، انواع کلید تعیینشده و تعییننشده و لایههای امنیت نرمافزار نیز توضیح داده خواهد شد.
در این ویدئو با مفهوم میانافزار (middleware) در ExpressJS آشنا میشوید و یاد میگیرید چگونه میانافزارهای شخصیسازی شده بسازید. همچنین با الگوی طراحی chain of responsibility آشنا خواهید شد.
در این ویدئو مدلسازی مربوط به کاربر انجام میشود. ریپازیتوریهای امنیت کاربر پیادهسازی شده و پیادهسازی رمزگذاری و هش پسورد نیز انجام خواهد شد. همچنین با ماژول crypto آشنا شده و ثبتنام کاربر را پیادهسازی میکنید.
در این ویدئو با مفهوم session آشنا شده و Session Store میسازید. از Session Cookie برای احراز هویت کاربر استفاده میکنید. صفحه ثبتنام کاربر را ایجاد کرده و با فرآیند redirect کاربر آشنا خواهید شد.
در این ویدئو با Passport.js آشنا شده و آن را روی نرمافزار نصب میکنید. با استراتژی در پاسپورت آشنا میشوید و پیکربندیهای مربوط به آن را انجام داده و صفحه ورود کاربر را با استفاده از Passport.js پیادهسازی میکنید.
در این ویدئو خروج کاربر از سامانه را پیادهسازی میکنید. پیکربندیهای دسترسیهای کاربر و اجرای authorization را انجام میدهید. همچنین Permission مربوط به نقش ادمین را پیادهسازی کرده و روترهای خود را ایمن میکنید. در صورت عدم دسترسی کاربر، صفحه Access Denied نمایش داده میشود و این صفحه نیز پیادهسازی خواهد شد.
در این ویدئو با روشهای جلوگیری از انواع حملات به سامانه آشنا میشوید و حملات DDoS، NoSQL Injection، HTTP، XSS، HPP و CSRF را شناسایی کرده و جلوی آنها را خواهید گرفت.
در این ویدئو صفحه ویزیتوری دستهبندیها را پیادهسازی کرده و ویدئوهای مربوط به فیلمها را در صفحه فیلمها بارگذاری خواهید کرد.
در این ویدئو صفحه مربوط به نظرات و مدیریت آنها را پیادهسازی کرده، نظرات کاربران را تأیید و پاسخ خواهید داد. همچنین صفحات استاتیک نرمافزار را بارگذاری میکنید.
فصل پنجم: مفاهیم پایه NODEJS و PACKAGE MANAGER
در این ویدئو با مفاهیم thread، thread pool، event، processهای CPU bound و I/O bound، blocking و non-blocking، async و sync آشنا میشوید. معماری Node.js و چرخه رویداد آن را بررسی میکنید و با کتابخانه libuv و ویژگیهای آن آشنا خواهید شد.
در این جلسه، با npmjs و npm آشنا میشویم، مدیریت پکیجها را توسط npm بررسی میکنیم، پکیج اختصاصی خود را روی npmjs منتشر کرده و مفاهیم سمانتک ورژن و فایلهای package.json و package-lock.json را معرفی میکنیم.
فصل ششم: آموزش تایپ اسکریپت
در این جلسه با زبان برنامهنویسی TypeScript و مستندات رسمی آن آشنا میشویم، مفاهیم lexer، parser و semantic را بررسی میکنیم، معماری تایپاسکریپت را میشناسیم، با npx و Babel آشنا میشویم و اولین قدمهای نصب و اجرای TypeScript را برمیداریم.
در این ویدئو با انواع تایپها در TypeScript، استک و هیپ در رم آشنا میشوید. همچنین با روشهای تعیین تایپ inference و annotation آشنا شده و با چند تایپ مختلف کار خواهید کرد.
در این جلسه اسکریپتهای لازم برای کامپایل و اجرای کدهای TypeScript را فرا میگیرید و با متدهای مهم رشتهای مانند toUpperCase، toLowerCase، slice، split، replace، charAt، substring، concat و سایر توابع کار خواهید کرد.
در این جلسه با تایپهای ساده در تایپاسکریپت مانند Number، Boolean، String، Array، Tuple، Enum، Unknown، Any، Void و Never آشنا میشوید. همچنین برخی متدهای مهم کار با آرایهها از جمله length، push، pop، shift، unshift، sort، reverse و کلمه کلیدی delete را یاد میگیرید.
در این جلسه با نحوه تعریف توابع در TypeScript آشنا میشوید، آرگومانها را با تایپ مناسب مشخص میکنید، از Union Types استفاده میکنید، فرآیندهای async را پیادهسازی میکنید و با مفهوم Generic Types آشنا میشوید و توابع ژنریک تعریف میکنید.
در این جلسه با تعریف اشیا در تایپاسکریپت و نحوه تعیین تایپ برای پارامترها آشنا میشوید. سپس با کلاسها و accessorها کار میکنید، مفاهیم public و private را یاد میگیرید، با constructorها آشنا میشوید، وراثت را در TypeScript پیادهسازی میکنید و از Generic Types در کلاسها استفاده میکنید.
در این جلسه با تایپهای اختصاصی Node.js آشنا میشوید و آنها را روی پروژه نصب میکنید. سپس با نوعهای alias و interface و نحوه پیادهسازی آنها در کلاسها آشنا میشوید. مفاهیم readonly و کلیدواژه keyof نیز در این جلسه بررسی میشوند.
در این جلسه با مفهوم namespace در تایپاسکریپت آشنا میشوید و نحوه استفاده از آن را یاد میگیرید. سپس با الگوی decorator در تایپاسکریپت کار میکنید و در ادامه نحوه استفاده از تایپاسکریپت در پروژههای Express را فرا میگیرید.
در این جلسه با نحوه پیکربندی تایپاسکریپت آشنا میشوید، پکیج ts-node را برای اجرای مستقیم فایلهای TS معرفی میکنیم، با پرچمهای کامپایلر TypeScript کار میکنید و در نهایت اجرای پروژه را با کمک nodemon پیادهسازی میکنید.
فصل هفتم: آموزش PostgreSQL
در این جلسه با پایگاههای داده رابطهای (SQL) آشنا میشوید، اصول ACID و معماری SQL را یاد میگیرید. سپس پایگاه داده PostgreSQL را نصب کرده و به آن متصل میشوید. با مفاهیم رکورد و فیلد، کلید اصلی (primary key)، و تایپهای دادهای PostgreSQL آشنا شده و در نهایت جدول میسازید و داده وارد میکنید.
در این جلسه ساخت پایگاه داده در PostgreSQL را یاد میگیرید و وارد دنیای دستورات SQL میشوید. ساخت جدول با CREATE TABLE، درج داده با INSERT INTO، ویرایش با UPDATE SET، حذف با DELETE FROM و تغییر ساختار با ALTER TABLE و DROP COLUMN را تمرین میکنید. همچنین با نحوه نوشتن کامنت در PostgreSQL و اجرای دستورات از طریق محیط Command آشنا میشوید.
در این جلسه ساخت چندین جدول را با دستورات SQL تمرین میکنید، روابط بین جداول را ایجاد میکنید، با مفهوم نقشه ERD (نمودار روابط موجودیتها) آشنا میشوید و با استفاده از دستورات SQL دادهها را در جداول وارد میکنید.
در این جلسه نحوه نوشتن کوئری در PostgreSQL را با شرط WHERE و عملگرهای مقایسهای یاد میگیرید. با عملگرهای LIKE، IN، BETWEEN، AND و UNION آشنا میشوید. سپس با توابع تجمعی (Aggregation) مانند SUM، AVG، MIN، MAX و COUNT کار میکنید. در ادامه از دستورات ORDER BY و LIMIT برای مرتبسازی و محدود کردن نتایج استفاده میکنید.
در این جلسه با انواع مختلف JOIN در پایگاه داده PostgreSQL آشنا میشوید و یاد میگیرید چطور با استفاده از دستورات INNER JOIN، LEFT JOIN، RIGHT JOIN، FULL JOIN و CROSS JOIN جداول مختلف را به هم متصل کنید. همچنین با دستور UNION برای ترکیب نتایج چند کوئری آشنا خواهید شد.
در این جلسه با مفهوم Subquery در پایگاه داده PostgreSQL آشنا میشوید. سپس با شرطهای WHERE EXISTS، WHERE NOT EXISTS و ANY کار میکنید. در ادامه با استفاده از توابع Aggregate مانند SUM، COUNT و ... از پایگاه داده گزارشگیری میکنید و شرط HAVING را برای فیلتر کردن نتایج گروهبندیشده یاد میگیرید.
فصل هشتم: آموزش Sequelize
در این جلسه با ORM محبوب Sequelize آشنا میشوید، اسناد رسمی آن را بررسی میکنید و مراحل اولیه کار با آن در پروژههای Node.js و TypeScript را یاد میگیرید.
در این جلسه نحوه نصب Sequelize در پروژه Node.js را یاد میگیرید، با اتصال به پایگاه داده از طریق connection string آشنا میشوید و تنظیمات لازم در Sequelize را انجام میدهید. در ادامه، مدلسازی جداول را با روش Extending پیادهسازی میکنید.
در این جلسه با روش تعریف مدلها با استفاده از متد define در Sequelize آشنا میشوید، با روش passing به پایگاه داده PostgreSQL متصل میشوید، با حالتهای مختلف جدولها و ویژگیهایی مانند timestamps و سایر تنظیمات مدل آشنا خواهید شد و فرایندهای async را در کار با پایگاه داده پیادهسازی میکنید.
در این جلسه با نحوه ثبت داده در Sequelize از طریق روشهای build و create آشنا میشوید، با مفهوم Change Tracker برای تشخیص تغییرات دادهها آشنا میشوید، ویرایش اطلاعات را با استفاده از create، set و update یاد میگیرید و حذف دادهها را با متد destroy انجام میدهید. همچنین یاد میگیرید که چگونه دادهای که تغییر کرده اما هنوز ذخیره نشده را با متد reload بازخوانی کنید.
در این جلسه با کوئرینویسی در Sequelize آشنا میشوید. ابتدا نحوه ثبت داده با insert query و سپس جستجو با متدهایی مثل findAll را یاد میگیرید. با توابع تجمعی (Aggregates) مانند COUNT و SUM آشنا میشوید. در ادامه با ماژول Op برای نوشتن شرطها و عملگرهای مقایسهای مانند gt، lt، in، like و ... کار خواهید کرد.
در این جلسه با انواع دادهها (DataTypes) در Sequelize آشنا میشوید، ماژولبندی ساختار پروژه را فرا میگیرید، و با دستور createBulk برای ثبت گروهی دادهها کار میکنید. سپس با مفاهیم synchronization، صفحهبندی (pagination)، مرتبسازی (orderBy)، projection و متدهای جستجوی کاربردی مثل findOne، findByPk و findOrCreate آشنا میشوید.
در این جلسه با مفهوم Association در Sequelize آشنا میشوید و یاد میگیرید چگونه روابط بین مدلها را بهدرستی ایجاد کنید. سپس با استفاده از Fluent API در Sequelize، مدلسازی پایگاه داده را انجام میدهید، روابط مانند one-to-many و many-to-many را تعریف کرده و قوانین مرتبط با foreign key و constraints را تنظیم میکنید.
در این جلسه با مفهوم migration در Sequelize آشنا میشوید. سپس تنظیمات موردنیاز برای پیکربندی Sequelize را انجام میدهید و با ابزار Sequelize CLI کار میکنید. در ادامه یاد میگیرید چگونه migration بسازید و از آن برای مدیریت ساختار پایگاه داده استفاده کنید.
فصل نهم: آموزش SOLID و معماری نرمافزار
در این جلسه با اصول مهم SOLID در طراحی شیگرا آشنا میشوید. مفاهیم coupling را بررسی میکنید و تفاوت tight coupling و loose coupling را درک میکنید. سپس به ترتیب اصول SRP (تک مسئولیتی)، OCP (قابل توسعه بودن)، LSP (جانشینی)، ISP (رابطهای کوچکتر) و DIP (وارونگی وابستگی) را یاد میگیرید و کاربرد آنها را در پروژههای واقعی بررسی میکنید.
در این جلسه با معماری پروژه دوم آشنا میشوید و مفهوم معماری لایهای را فرا میگیرید. همچنین با انواع معماری نرمافزار آشنا میشوید و لایههای مختلف مانند UI، Business، Data، Domain، Framework و Service را بررسی میکنید و نقش هرکدام را در ساختار پروژه درک خواهید کرد.
در این جلسه با نقشه ERD و مدلسازی پایگاه داده برای پروژه دوم (وبسایت خبری) آشنا میشوید. تنظیمات اولیه پروژه شامل نصب TypeScript و ts-node را انجام میدهید و اولین مدل یعنی دستهبندی اخبار را پیادهسازی میکنید.
در این جلسه با ادامه فرایند مدلسازی پروژه خبری آشنا میشوید. یاد میگیرید چگونه یک Sequelizer بسازید و مدلهای اصلی پروژه شامل News، Comment، User و Role را با استفاده از Sequelize و TypeScript تعریف و پیادهسازی میکنید.
در این جلسه روابط بین مدلهای مختلف پروژه مانند News، Comment، User و Role را در Sequelize پیادهسازی میکنید. سپس به پایگاه داده PostgreSQL متصل میشوید و مدلها را با جداول پایگاه داده مپ (map) میکنید تا ساختار نرمافزار به شکل کامل با دیتابیس هماهنگ شود.
در این جلسه مدلهای دادههای انتقالی (DTO) مربوط به دستهبندیها (Category) را ایجاد میکنید. سپس با استفاده از کتابخانه class-validator و قابلیت decorator در TypeScript، اعتبارسنجی این دادهها را هنگام ارسال یا دریافت پیادهسازی میکنید تا از ورود دادههای ناصحیح به سیستم جلوگیری شود.
در این جلسه شی context پروژه را ایجاد میکنید، لایه سرویس مربوط به بخش Data را پیادهسازی میکنید و اینترفیسهای پایه و مخصوص Category را به صورت generic طراحی مینمایید. در ادامه، Repository مربوط به مدل Category را با رعایت اصول معماری لایهای و با استفاده از Sequelize پیادهسازی خواهید کرد.
در این جلسه پیادهسازی نهایی Category Repository را انجام میدهید، با تزریق وابستگی (Dependency Injection) از طریق سازنده کلاس آشنا میشوید و مفاهیم Lazy Loading و Eager Loading را در بارگذاری دادهها بررسی و پیادهسازی میکنید.
در این جلسه interfaceهای مرتبط با سرویس در لایه Business را پیادهسازی میکنید، سپس لایه Business برای دستهبندی را توسعه میدهید. در ادامه Express را نصب میکنید، Router مخصوص دستهبندی را ایجاد میکنید و در نهایت Controller مربوط به Category را نیز با رعایت معماری لایهای پیادهسازی خواهید کرد.
فصل دهم: آموزش REST
در این جلسه با معماری REST و اصول طراحی RESTful آشنا میشوید. شش قانون مهم شامل Uniform Interface، Stateless، Client-Server، Cacheable، Layered System و Code on Demand را یاد میگیرید. همچنین با ساختار URL، متدهای HTTP (GET, POST, PUT, DELETE)، فرمتهای JSON و XML و مفاهیم Self-Descriptive و HTTP Header آشنا خواهید شد.
در این جلسه با نرمافزار Postman آشنا میشوید و آن را نصب میکنید. سپس پکیجهای meta-data-reflect و inversify را به پروژه اضافه میکنید. با استفاده از decorator @injectable مفهوم تزریق وابستگی را پیادهسازی میکنید. با IOC Container آشنا میشوید و چرخههای مختلف درخواست مانند Singleton، Scope و Transient را پیادهسازی میکنید. در پایان، نحوه ارسال و بررسی Request و Responseها را در Postman مشاهده خواهید کرد.
در این جلسه با انواع HTTP Status Code و کاربرد هرکدام آشنا میشوید. سپس کنترلر مربوط به دستهبندی (Category) را پیادهسازی میکنید. نرمافزار Postman را برای ارسال درخواستها پیکربندی میکنید و انواع درخواستهای GET، POST، PUT و DELETE را ارسال میکنید و پاسخها را بررسی مینمایید.
در این جلسه ابتدا مدلهای DTO برای News را ایجاد میکنید. سپس interface و پیادهسازی لایه Data، سرویسهای Business، کنترلر و Router مربوط به News را کامل میسازید. IOC Container را نیز برای این ماژول پیکربندی میکنید. در پایان، با ساخت متغیر در Postman برای هر action از کنترلر News، درخواستها را ارسال کرده و پاسخها را دریافت میکنید.
در این جلسه روابط بین جداول پایگاه داده پروژه خبری را بازبینی و اصلاح میکنید. مشکلات احتمالی در ارتباطات بین مدلها (مثل Foreign Keyها) را شناسایی کرده و با استفاده از ابزارهای دیباگ در TypeScript و Sequelize، کدها را بررسی و اصلاح میکنید تا ارتباطات مدلها بهدرستی کار کنند.
در این جلسه ماژول نظرات (Comment) را بهطور کامل پیادهسازی میکنید. لایههای Data، Business، و Controller مربوط به مدل Comment را ایجاد کرده و با پیکربندی IOC Container، این ماژول را به معماری پروژه متصل میکنید. در پایان، با استفاده از Postman درخواستهای مرتبط را تست کرده و از صحت عملکرد ماژول مطمئن میشوید.
در این جلسه پیادهسازیهای مرتبط با ماژول نقشها (Role) را انجام میدهید. شامل ساخت لایههای Data، Business، Controller و اتصال آن به IOC Container پروژه است. پس از تکمیل این ماژول، با استفاده از Postman تمامی متدهای مربوط به Role را تست میکنید و از صحت عملکرد آنها اطمینان حاصل میکنید.
در این جلسه با Swagger و کاربرد آن در مستندسازی خودکار API آشنا میشوید. سپس پکیجهای موردنیاز را نصب کرده و تنظیمات Swagger را در پروژه وبسایت خبری انجام میدهید تا بتوانید APIهای خود را بهصورت گرافیکی و قابلفهم مستند کنید.
در این جلسه پیادهسازی کامل ماژول User را انجام میدهید، شامل ساخت مدلها، اعتبارسنجی دادهها و ایجاد متدهای ثبتنام و ورود. سپس با استفاده از PassportJS و استراتژی JWT، فرآیند احراز هویت را پیادهسازی میکنید و توکن امنیتی را در پاسخ درخواستها مدیریت میکنید.
در این جلسه ادامه پیادهسازی احراز هویت با JWT Token را با استفاده از Passport انجام میدهید. پیکربندیهای مربوط به توکنها و محافظت از مسیرها را تکمیل میکنید. سپس وارد بخش فرانتاند پروژه میشوید، با ساختار اولیه آن آشنا میشوید و انواع Storage در مرورگر مانند LocalStorage، SessionStorage و Cookie را بررسی میکنید.
در این جلسه فرآیند احراز هویت کاربر با JWT را کامل میکنید و با استفاده از Middlewareهای Passport، دسترسی کاربران را بر اساس نقش آنها کنترل میکنید. سپس عملکرد logout را پیادهسازی میکنید تا کاربران بتوانند از سیستم خارج شوند و توکن آنها حذف شود.
در این جلسه با استفاده از Middlewareهای احراز هویت و بررسی نقشها، مسیرهای پروژه را ایمن میکنید. این کار باعث میشود فقط کاربران مجاز به بخشهای خاصی از API دسترسی داشته باشند. این مرحله از اهمیت بالایی برای امنیت اپلیکیشن برخوردار است و نقش کلیدی در معماری حرفهای پروژه دارد.
فصل یازدهم: دیباگ و تست
در این جلسه با انواع زمانها در برنامهنویسی مانند زمان اجرا (runtime)، زمان کامپایل و زمان پاسخدهی آشنا میشوید. سپس با انواع خطاها مانند syntax error، runtime error و logical error آشنا میشوید و یاد میگیرید چگونه کدهای TypeScript را با استفاده از ابزارهای قدرتمند VSCode و Chrome DevTools بهصورت حرفهای دیباگ کنید.
در این جلسه با مفاهیم اولیه تست نرمافزار آشنا میشوید. تفاوت بین تستهای Functional و Non-Functional، تستهای واحد، یکپارچهسازی و سیستم را میآموزید. همچنین هرم تست (Unit، Integration، End-to-End) را بررسی میک
فصل دوازدهم: WebSocket
در این جلسه با پروتکلهای شبکه TCP و UDP آشنا میشوید و تفاوت آنها را در ارتباطات نرمافزاری درک میکنید. سپس با ماژول events در Node.js و نحوه استفاده از Emitter آشنا میشوید. در ادامه، Socket.io را روی پروژه نصب میکنید، تنظیمات لازم را انجام میدهید و در نهایت، یک سیستم چت روم ساده با ارتباط بلادرنگ بین کاربران پیادهسازی میکنید.
در این جلسه یاد میگیرید چگونه از Google reCAPTCHA برای محافظت از فرمهای پروژه خود در برابر اسپم و رباتها استفاده کنید. ابتدا reCAPTCHA را فعال کرده و کلیدهای لازم را دریافت میکنید، سپس آن را در سمت فرانت و بکاند پیادهسازی کرده و اعتبارسنجی درخواستهای ورودی را با آن انجام میدهید.
در این جلسه با سیستم کنترل نسخه Git آشنا میشوید و دستورات اصلی مانند init، add، commit، push و clone را تمرین میکنید. سپس پروژه خود را در GitHub بارگذاری کرده و با نحوه ساخت و مدیریت یک ریپازیتوری آنلاین آشنا میشوید.
در این جلسه با مراحل انتشار پروژه روی سرویسها یا سرورهای هاستینگ آشنا میشوید. از آمادهسازی فایلها تا نصب وابستگیها و اجرای پروژه در محیط واقعی را یاد میگیرید تا پروژهتان برای استفاده کاربران نهایی در دسترس قرار گیرد.
سلام , خسته نباشید فصل ۴ به بعد ویدیو ها مشکل داره و چیزی نمایش نمیده.
سلام علیرضا عزیز؛ فیلم ها در حال آپلود هستند.