به جامع ترین دوره Node.js در اینترنت خوش آمدید!
در این دوره، میخواهیم بدون اینکه ذهن خود را با ابزارهای دیگر و بستههای NPM درگیر کنیم، به عمق خود Node.js بپردازیم و واقعاً بر این فناوری قدرتمند مسلط شویم.
این دوره به شدت بر موضوعات و مبانی علوم کامپیوتر متمرکز است که درک آنها برای تبدیل شدن به یک مهندس بکاند عالی ضروری است. فقط در صورتی می توانید Node.js را به درستی درک کنید و قدرت کامل آن را باز کنید که این موضوعات دیگر علوم کامپیوتر را بدانید. به همین دلیل است که ما این موضوعات حیاتی دیگر را نیز یاد خواهیم گرفت تا بتوانید واقعاً بر Node.js تسلط داشته باشید و مهارت های مهندسی Back-end خود را به سطح کاملاً جدیدی ببرید.
ما همچنین از تمام این مفاهیم حیاتی که در عمل با ساختن پروژه های مختلف هیجان انگیز فقط با استفاده از Node.js یاد خواهیم گرفت استفاده خواهیم کرد.
این یک دوره آموزشی فشرده برای افرادی است که میخواهند به سطح بالایی از این رشته برسند و به جای اینکه فقط سطح را خراش دهند و چند ابزار و گرایش نرمافزاری را دنبال کنند، به سطحی از نوآوری و تأثیرگذاری در صنعت برسند.
هر بخش از دوره مانند دوره کوچک خود است و با تکمیل هر بخش، برخی از مفاهیم ضروری Node.js، علوم کامپیوتر و مهندسی بکاند را یاد میگیرید که به شما کمک میکند نه فقط اگر بخواهید از Node.js استفاده کنید اما در تمام طول حرفه خود به عنوان یک مهندس نرم افزار. این چیزها برای سال ها و دهه های آینده با شما خواهند ماند.
اجازه دهید در مورد کارهایی که پس از تکمیل برخی از بخشها به دست خواهید آورد، توضیحی سریع انجام دهیم:
درک بافرها: در اینجا، بافرها و نحوه کار مستقیم با دادههای باینری را که برای همه بخشهای دیگر ضروری است، عمیقاً درک خواهیم کرد.
درک سیستم فایل: بهعنوان یک توسعهدهنده بکاند، با فایلها بسیار کار خواهید کرد، خواه ذخیره برخی دادهها در دیسک، مدیریت آپلود فایلها و بسیاری مثالهای دیگر، بنابراین داشتن درک خوب از آنها ضروری است. که پس از تکمیل این بخش به دست خواهید آورد. همچنین یاد خواهیم گرفت که Node.js چگونه با فایلها برخورد میکند و بر ماژول "fs" مسلط میشود.
درک جریانها: در این بخش، ما به Streams مسلط میشویم، که به ما امکان میدهد برنامههایی با عملکرد بالا ایجاد کنیم که میتوانند به راحتی ترابایت داده را مدیریت کنند و در عین حال از حافظه عالی استفاده کنند. ما پروژه های کوچک بسیاری را در سراسر این بخش خواهیم ساخت، از جمله یک برنامه رمزگذاری-رمزگشایی از ابتدا که می تواند ترابایت داده را با تغییر مستقیم داده های باینری رمزگذاری کند. این بخش پایه و اساس بخشهای آینده را ایجاد میکند که در آن از Streams به شدت برای ایجاد برنامههای شبکه قدرتمند و کارآمد استفاده خواهیم کرد.
درک شبکه: Node.js اساساً برای ایجاد برنامه های کاربردی شبکه طراحی شده است، بنابراین بسیار مهم است که درک مناسبی از شبکه به دست آوریم، که پس از تکمیل این بخش انجام خواهیم داد. در اینجا لیستی از مواردی است که در این بخش یاد خواهیم گرفت:
شبکه دقیقاً چیست
اینترنت چگونه کار می کند
آدرس های مک
آدرس های IPV4 IPv6
TCP
UDP
DNS
اصول استقرار
ما 2 برنامه سطح پایین را فقط با استفاده از Node.js، یک چت و یک برنامه آپلود کننده فایل مستقیماً در بالای TCP ایجاد خواهیم کرد! و سپس، آنها را بدون استفاده از ابزارهای غیرضروری به سادهترین روش در سرور لینوکس مستقر میکنیم.
ما دقیقاً خواهیم دید که در کارت شبکه ما چه اتفاقی میافتد، هر 0 و 1 با یک چیز خاص با استفاده از Wireshark رد و بدل میشود، و درک بسیار بهتری از شبکه و اینکه چگونه بسیاری از پروتکلهای معروف مانند HTTP، FTP، پروتکل های ایمیل، SSH، DNS و بسیاری دیگر کار می کنند. این بخش افق دید شما را گسترده تر می کند و متوجه خواهید شد که کارهای بسیار بیشتری می توانید با Node.js انجام دهید تا فقط ایجاد سرورهای وب.
درک HTTP: در این بخش، همه چیزهایی را که از بخشهای قبلی آموختهایم استفاده و ترکیب میکنیم و در نهایت یک بار برای همیشه HTTP را عمیقاً درک میکنیم! ما یاد نخواهیم گرفت که چگونه از Express استفاده کنیم. در عوض، ما خودمان چیزی مشابه خواهیم ساخت!
ما با درک مهمترین مفاهیم HTTP، مانند انواع اتصال، مدل سرویس گیرنده-سرور، پیامها، درخواستها، پاسخها، روشهای HTTP، کدهای وضعیت، انواع mime، سرصفحههای ضروری و موارد دیگر شروع میکنیم. و سپس یک پروتکل HTTP را مستقیماً در بالای TCP با استفاده از ماژول شبکه شبیهسازی کنید و دقیقاً تک تک 0ها و 1هایی را که برای یک درخواست HTTP و تعامل پاسخ رد و بدل میشوند، مشاهده کنید!
هنگامی که اصول HTTP و ماژول "http" را درک کردیم، همه چیز را به سطح بعدی خواهیم برد و شروع به ساخت چارچوب خود خواهیم کرد. و سپس، با استفاده از چارچوب خود، یک برنامه وب کاملاً کاربردی ایجاد خواهیم کرد.
این بخش مهارت های توسعه وب شما را به سطح بعدی ارتقا می دهد. شما درک بهتری از نحوه کار همه این بستههای NPM محبوب، مانند Express، body-parser، Multer، cors و غیره که در بالای ماژول "http" ساخته شدهاند، خواهید داشت. خوب، شما یاد خواهید گرفت که چگونه آنها را از ابتدا بسازید، فقط استفاده از آنها مشکل چندانی نخواهد داشت!
بهروزرسانی فوریه 2024 - ماژول جدید منتشر شد! آشنایی با یونیکس:
با بیش از 15 ساعت محتوای جدید جامع، آماده یادگیری نحوه استفاده از قدرت چندین فناوری و زبان برنامه نویسی همراه با Node.js برای ایجاد برنامه های کاربردی فوق العاده قدرتمند باشید!
یونیکس، یکی از تاثیرگذارترین اختراعات تا به حال در صنعت نرم افزار، برای مهندسان نرم افزار بسیار مهم است که درک کنند. در این ماژول، ما عمیقاً به برخی از مفاهیم کلیدی مانند Bash، Shells، IPC، جریان داده، مدیریت فرآیند، خوشهبندی، حتی مقداری C و موارد دیگر خواهیم پرداخت.
ما همچنین این ماژولهای Node.js را درک خواهیم کرد:
فرایندهای کودک
خوشه
فرایند
مسیر
کنسول
OS
همه این مفاهیم یونیکس که در این بخش یاد خواهید گرفت فوراً در بسیاری از زبان های برنامه نویسی دیگر اعمال می شوند. شما پایه ای به دست خواهید آورد که می توانید برای ایجاد برنامه های کاربردی با کیفیت بسیار بالاتر از همیشه به ساخت آن ادامه دهید.
در پایان بخش، یک برنامه وب ویرایش ویدیو با Node.js بدون استفاده از سایر بستههای NPM ایجاد میکنیم. و این تازه آغاز راه است! پس از اتمام کار با بخش و مشاهده بسیاری از امکانات جدید که قبلاً هرگز به آنها فکر نکرده اید، می توانید کارهای بسیار بیشتری از این کار انجام دهید.
بهروزرسانی می 2024 - ماژول جدید منتشر شد! درک فشرده سازی:
در این بخش، دنیای جذاب فشرده سازی را بررسی خواهیم کرد. درک فشرده سازی برای کاهش اندازه داده های شما بسیار مهم است و یکی از موارد مهم استفاده افزایش سرعت برنامه های شبکه شما است. ما به ماژول Node.js Zlib می پردازیم و می بینیم که چگونه می توان تعداد بیت های مورد نیاز برای ذخیره و انتقال داده های خود را بدون از دست دادن اطلاعات کاهش داد!
بهروزرسانی ژوئیه 2024 - ماژول جدید منتشر شد! درک Multi-threading:
برای پیشرفتهترین بخش دوره آماده شوید، جایی که میخواهیم از تمام قدرت Node.js استفاده کنیم تا ببینیم تا چه حد میتوانیم به شدت عمل کنیم.
ما یاد میگیریم که رشتهها دقیقاً چه هستند و چگونه از آنها برای دستیابی به چندین بار افزایش عملکرد، بسته به تعداد هستههای CPU ما، استفاده کنیم. ما یاد خواهیم گرفت که چه زمانی باید از multi-threading استفاده کنیم و چه زمانی نباید استفاده کنیم. ما یاد خواهیم گرفت که چگونه کانال های ارتباطی بین رشته های خود را، هم با ارسال پیام و هم با حافظه مشترک، راه اندازی کنیم. ما مخزن نخ Node.js را بررسی می کنیم و حتی خودمان یکی را از ابتدا توسعه می دهیم. خواهیم دید که چند رشته در Node.js چه تفاوتی با برخی از زبان های دیگر دارد. ما همگام سازی، شرایط مسابقه، بن بست ها، سمافورها، محرومیت متقابل و موارد دیگر را پوشش خواهیم داد.
میآموزید که چگونه حلقه رویداد را روشن نگه دارید و در نهایت عملیاتی را انجام ندهید که بهطور مرموزی رشته اصلی شما را مسدود میکند و باعث میشود برنامه شما بسیار کندتر شود.
این بخش با آموزش نحوه اجرای موازی کارها، مدیریت چندین حلقه رویداد و درک عوارض ناشی از آن، مهارت های Node.js شما را به سطح بعدی ارتقا می دهد.
دو ماژول دیگر وجود دارد که در پاییز 2024 به دوره اضافه می شود: درک رمزنگاری و امنیت. در جریان باشید!
اگر در هر مرحله از دوره، گیر کردید یا احساس کردید که در مورد چیزی به توضیح بیشتری نیاز دارید، من در QA حضور خواهم داشت تا در هر مرحله از شروع تا پایان به شما کمک کنم! همین امروز ثبت نام کنید و بیایید بر Node.js مسلط شویم و مهارت های مهندسی پشتیبان خود را به سطح کاملاً جدیدی برسانیم!
Joseph Heidari
مهندس نرم افزار و مدرس
نمایش نظرات