ساخت پروژه فول استک با Node.js، PostgreSQL، SQL، React، Redux و موارد دیگر! پوشش APIها، احراز هویت و فراتر از آن!
ساخت یک سرور و اپلیکیشن بکاند با Node.
ساخت وب API با Node و Express.
ساخت اپلیکیشن وب با React و Redux.
ساخت یک سیستم احراز هویت امن از ابتدا.
آشنایی با عملکرد داخلی NodeJS، از جمله موتور V8 و حلقه رویداد معروف.
درک طراحی پایگاه داده رابطهای و مزایای آن.
آشنایی با مفاهیم ضروری توسعه وب مانند درخواستهای وب، روابط کلاینت-سرور و پروتکلهای اصلی وب.
آشنایی با مزایا و معایب برخی از شیوههای نامگذاری نرمافزار برای توابع و نام جداول در پایگاه داده.
پیشنیازها
تجربه کدنویسی: برای این دوره، تجربه کدنویسی الزامی است. این دوره مقدمهای بر برنامهنویسی نیست. بهترین زمان برای گذراندن آن پس از تکمیل یک یا دو دوره مقدماتی برنامهنویسی است.
Node، PostgreSQL، React، و Redux: تجربه کار با Node، PostgreSQL، React و Redux الزامی نیست. تمامی این مفاهیم از ابتدا توضیح داده خواهند شد.
تجربه JavaScript: تجربه JavaScript توصیه میشود. این دوره JavaScript را معرفی کرده و خط به خط آن را توضیح خواهد داد. با این حال، پس از معرفی یک کلمه کلیدی، دوره فرض میکند که شما با آن مفهوم آشنا هستید. تمرکز اصلی بر روی مفاهیم فول استک است، نه یادگیری JavaScript برای اولین بار. اگر اولین بار است که JavaScript یاد میگیرید، سرعت دوره را به عنوان راهی عالی برای مشاهده تمام جنبههای مختلف زبان در نظر بگیرید.
خط فرمان (Command Line): تجربه کار با خط فرمان توصیه میشود، اما کاملاً الزامی نیست. این دوره شامل یک مرور کوتاه بر اصول خط فرمان است و ما فقط از مبانی آن استفاده خواهیم کرد. اما هرچه با خط فرمان راحتتر باشید، بهتر است.
چرا باید این دوره را بگذرانید؟
با پنج دقیقه، اجازه دهید توضیح دهم چرا.
این دورهای بود که قبل از مهندس نرمافزار شدن به آن نیاز داشتم
این دورهای بود که قبل از تبدیل شدن به یک مهندس نرمافزار تمام وقت، که در مرکز شهر سان فرانسیسکو کار میکردم، به آن نیاز داشتم. این دوره مفاهیمی را آموزش میدهد که من هر روز از آنها استفاده میکنم. درک کامل فول استک حیاتی است.
اما وقتی در حال خودآموزی بودم، پوشش دادن تمام لایههای فول استک مانند جستجو برای قطعات پراکنده یک پازل عظیم بود. تمام منابع پخش شده بودند. همه در مکانهای مختلفی قرار داشتند.
من به همه چیز در یک مکان نیاز داشتم. من به همه چیز در یک پروژه نیاز داشتم. این هدف این دوره است.
این دوره برگزیدهای از هایلایتهای ماهها (در واقع سالها) تحقیق است. از خواندن صدها مقاله کدنویسی. از گوش دادن به سخنرانیهای فنی. از ساخت پروژهها در هکاتونها. از مطالعه علوم کامپیوتر در دانشگاه. از کار بر روی پروژهها به عنوان یک مهندس نرمافزار.
همه در یک مکان. در یک پروژه جامع.
متمرکز بر ویژگی، مانند صنعت
پروژهای که در این دوره انجام میشود، پروژههایی را شبیهسازی میکند که در صنعت روی آنها کار خواهید کرد.
من همچنین توسعه پروژه را به گونهای ساختار دادهام که نحوه ساخت اپلیکیشنها در صنعت را منعکس کند. شما پروژه فول استک خود را توسعه خواهید داد، درست مانند نحوه رشد پروژهها در دنیای واقعی. شما بر روی ویژگیها تمرکز خواهید کرد.
شما پروژه را ویژگی به ویژگی میسازید - به طور مداوم نرمافزار را بهبود میبخشید و به کاربران عرضه میکنید. این با دورههای دیگری که بر معماری تمرکز دارند، متفاوت است. به این معنی که شما کل بکاند را نمیسازید و سپس به کل فرانتاند نمیروید. در عوض، هر ویژگی جدید شامل تمام جنبههای معماری فول استک خواهد بود.
پروژه DragonStack
پروژه DragonStack چیست؟
پروژه Dragonstack یک برنامه جمعآوری اژدها برای چندین حساب کاربری است. شما میتوانید اژدهایان خود را معامله کنید، بخرید و پرورش دهید! با فروش اژدها، ارز کسب میکنید. یا اگر حساب دیگری از اژدهای شما برای خدمات جفتگیری استفاده کند، شما نیز ارز دریافت میکنید. هر اژدها دارای ویژگیهای منحصر به فردی است و متعلق به یک نسل خاص است.
این اپلیکیشن متفاوت است. این یک کلون فیسبوک یا توییتر نیست. اکنون، هسته معماری یکسان است. پشت برنامههای بزرگتری مانند فیسبوک و توییتر، مفاهیمی وجود دارد که شما در این دوره یاد خواهید گرفت. اما شما از این مفاهیم برای ایجاد چیزی منحصر به فرد استفاده خواهید کرد. اگر وقت خود را برای یادگیری فول استک سرمایهگذاری میکنید، میخواهم چیزی بسازید که قبلاً هیچ کس دیگری نساخته است. به این ترتیب، یاد خواهید گرفت که چگونه این مفاهیم را برای نوآوری به کار ببرید.
از ابتدا (From Scratch)
در این دوره، شما همه چیز را از ابتدا خواهید ساخت. شما هر لایه از فول استک را کنترل خواهید کرد. شما از هیچ API جداگانهای برای ویژگیها استفاده نخواهید کرد.
۱. شما API را خواهید ساخت. مطمئناً، میتوانید با استفاده از یک API عمومی، درباره درخواستهای وب یاد بگیرید. اما برای یادگیری کامل نحوه عملکرد این APIهای درخواست وب، باید خودتان یکی بسازید.
۲. شما کنترل کاملی بر پایگاه داده خواهید داشت. شما به یک کتابخانه برای مدیریت پایگاه داده خود متکی نخواهید بود. شما پایگاه داده را مانند جادو نخواهید پنداشت. خیر، شما کنترل کاملی خواهید داشت و SQL را خودتان تولید خواهید کرد.
۳. شما سیستم احراز هویت را خواهید ساخت. احراز هویت مرحلهای است که به راحتی در حین یادگیری نادیده گرفته میشود. این کار را نکنید. این یک مفهوم حیاتی برای درک است. ۹۹٪ از اپلیکیشنهایی که میسازید یا روی آنها کار میکنید، دارای پایگاه حساب کاربری خواهند بود.
این فلسفه اصلی دوره، ساخت از ابتدا است. علاوه بر ساخت APIها از ابتدا، بکاند کامل را ایجاد خواهید کرد. این شامل سرور و فایلهای اصلی پایگاه داده خواهد بود. به علاوه، شما فرانتاند کامل را با کتابخانه مدرن و بسیار پرکاربرد React خواهید ساخت.
تصویر کامل مبتنی بر درک مفهومی
همانطور که با فناوریهای جدید کار میکنید، ضروری است که تصویر کامل را ببینید. بنابراین، در این دوره، شما بیش از نحوه کدنویسی در Node.js، PostgreSQL، React و Redux را خواهید آموخت. علاوه بر این، درکی از طراحی، مدلها و ایدههای پشت این فناوریها به دست خواهید آورد. شما دقیقاً یاد خواهید گرفت که شرکتها چگونه از این فناوریها برای حل مشکلات خود استفاده میکنند. با درک پایهای از مفاهیم، قادر خواهید بود ببینید که هر لایه چگونه در فول استک با هم تناسب دارند.
تجربه عملی
صرف اینکه این دوره تاکید زیادی بر مفاهیم دارد، به این معنی نیست که بلافاصله وارد کد نمیشوید. این دوره همچنین بر تجربه عملی تمرکز دارد. در نهایت، مفاهیم تنها زمانی تقویت میشوند که آنها را به کار بگیرید و نرمافزار بسازید!
در پایان دوره، تجربه زیادی در کار با این فناوریها خواهید داشت. من شکی ندارم که با اطمینان میتوانید Node.js، PostgreSQL، React و Redux را به رزومه خود اضافه کنید. به علاوه، یک پروژه فول استک چشمگیر در پورتفولیوی خود خواهید داشت که آن را اثبات میکند.
ناگفته نماند، میتوانید بسیاری از چالشهای نهایی دوره را انجام دهید تا پروژه دوره خود را منحصر به فردترین و پیشرفتهترین پروژه در اطراف بسازید.
چالشهای دوره
در سراسر دوره، چالشهایی پراکنده شده است. این نوع دورهای نیست که تمام مدت را به صورت کورکورانه دنبال کنید. این چالشها به شما فرصت میدهند تا ویژگی بعدی را خودتان پیادهسازی کنید - دانش خود را تقویت کرده و با تجربه خود راهنمایی شوید.
همانطور که گفته شد، فهرستی از چالشهای نهایی دوره نیز وجود دارد. این چالشها فراتر از دامنه دوره هستند. اما اینها همانهایی هستند که پروژه شما را واقعاً برجسته میکنند.
سادگی
علاوه بر آموزش توسعه وب فول استک و فناوریهای اصلی آن، تاکید کلی این دوره، ساخت کد با سادگی است. صرف نظر از فناوری که در آن کد مینویسیم، ما اطمینان حاصل خواهیم کرد که کلاسها و توابع خود را به روشی ساده طراحی و میسازیم.
حالا سادگی به معنی آسان بودن نیست. آسان یعنی نزدیک بودن. صرف اینکه چیزی آسان و فوری است، به این معنی نیست که درست است. گاهی اوقات، راه حل آسان در واقع یک میانبر است که بعداً به کار بیشتری برای رفع آن نیاز خواهد داشت.
تعریف ما از سادگی، یگانگی است. سادگی در این دوره به معنی یکوجهی بودن است. تا حد امکان، توابع خود را ساده، یکوجهی و تکمنظوره خواهیم ساخت. ما نمیخواهیم توابع ما عوارض جانبی بیشماری داشته باشند که پیچیدگی غیرضروری را به برنامه ما وارد کنند.
مقیاسپذیری
سادگی پیشنیاز مقیاسپذیری است. از آنجایی که توابع را به روشی ساده کدنویسی خواهید کرد، متوجه خواهید شد که میتوانید به سرعت ویژگیهای جدیدی را به برنامه اضافه کنید. هزینه اولیه ایجاد سادهترین طراحی، سود هنگفتی برای مقیاسپذیری به همراه دارد.
پیشرفت در Dragonstack
پیشرفت شما با پروژه Dragonstack از یک منحنی نمایی پیروی خواهد کرد. در طول دوره، نمودارها پیشرفت شما را در این دوره نشان خواهند داد. یک دوره اولیه افزایش شیب وجود خواهد داشت. با این حال، پس از اینکه از مرحله اولیه عبور کردید، سرعت شما به طور چشمگیری افزایش خواهد یافت. مصمم بمانید تا آن شتاب را ایجاد کنید. وقتی در بزرگراه بهرهوری سوار هستید، یکی از بهترین احساسات است.
جزئیات دیگر:
اعتبار موسیقی تبلیغاتی
"Slow Motion" اثر Ben Sound.
Redux تجزیه شده
Redux میتواند یک مفهوم بسیار پیچیده برای مدیریت در توسعه فرانتاند و React باشد. این دوره Redux را ساده کرده و آن را در سطح پایین توضیح میدهد. ما به Redux به عنوان یک کتابخانه جادویی که تمام مشکلات حالت ما را حل میکند، نگاه نخواهیم کرد. خیر، این دوره به طور کامل به Redux میپردازد. ما با توابع آن آزمایش خواهیم کرد، پارامترهای آن را بررسی میکنیم و حتی تصمیمات طراحی کلی این کتابخانه را در نظر خواهیم گرفت.
Promises!
منظور JavaScript Promises است! Promises نقش بزرگی در بکاند این دوره ایفا خواهند کرد. بنابراین اگر به دنبال بهانهای خوب برای یادگیری نحوه کارکرد JavaScript Promises بودید، این پروژه عالی برای شماست! قول میدهم…
نامگذاری
این دوره ممکن است زمان بیشتری نسبت به دورههای دیگر را به بحث نامگذاری اختصاص دهد. برخی ممکن است بگویند نامگذاری متغیر دلخواه است: "فقط به چیزی یک نام کوتاه و واضح بدهید و کار را تمام کنید..." من با تمام وجود با این موضوع مخالفم! نامگذاری یکی از مهمترین بخشهای نرمافزار است. انتخاب نام درست میتواند تنها تفاوت بین جریان روان در درک یک کدبیس و صرف دقایق یا حتی ساعتها تلاش برای درک نحوه همکاری توابع باشد.
ارائه به موقع
از آنجایی که Udemy به دانشجویان اجازه میدهد تا سرعت سخنرانیها را افزایش دهند، من سخنرانیها را به گونهای ارائه خواهم داد که در تمام سرعتها قابل درک باشد. سرعت را به دلخواه خود تغییر دهید.
David Joseph Katz
نمایش نظرات