بررسی اجمالی فصل
در آخر این فصل شما توانایی به کار گیری پارادایم های مختلف جاوا اسکریپت، استفاده از prototype ها و inheritance و فانکشن های anonymous، شناسایی انواع مختلف data scope ها و closure ها، تعریف متغیر ها با استفاده از روش hoisting، و تعریف نحوه مدیریت حافظه در جاوا اسکریپت رو خواهید داشت.
توی این فصل قراره بررسی عمیق تری روی قابلیت های اصلی جاوا اسکریپت که اون رو تبدیل به یک زبان متنوع و چند پارادایمی (multi-paradigm) تبدیل میکنن انجام بدیم.
معرفی فصل
تا اینجا در مورد اهمیت جاوا اسکریپت در سطح مرورگر و قدرتش در سطح سرور اطلاع داریم. قبلایاد گرفتیم که چجوری میشه Node.js رو روی سیستم نصب کرد و براش کد نوشت و اون رو اجرا کرد. همچنین اطلاعات زیادی در مورد ماژول های داخلی و خارجی Node.js دریافت کردیم. همچنین وب سوکت ها و کار کردن با دیتابیس ها هم توی فصل های قبلی پوشش داده شدن و تمام اینها رو با مثال ها و انجام تمرین های جالب یاد گرفتیم. حالا وقتشه که این دانسته ها رو گسترش بدیم و راجع به کانسپت های ریشه جاوا اسکریپت یاد بگیریم.
توی این فصل میریم سراغ انواع مختلف پارادایم های برنامه نویسی در جاوا اسکریپت. معمولا توی یادگیری زبان های برنامه نویسی افراد به صورت مرحله ای و رویه ای (procedural) کد میزنن؛ بجای برنامه ریزی، اونها بیشتر تمرکزشون رو روی اجرا کردن و یاد گرفتن کانسپت های زبان برنامه نویسی مورد نظرشون میگذارن. اما وقتی که نوبت به کار کردن روی مسائل توی دنیای واقعی میشه، این روش گزینه گسترش پذیری نیست. خوشبختانه ما تعداد زیادی از تکنیک های پیاده سازی کد داریم که میتونیم ازشون برای ساختن مدل از چیز های توی دنیای واقعی با استفاده از یک زبان برنامه نویسی استفاده کنیم، مثل پارادایم OOP یا همون Object-Oriented Programming (برنامه نویسی شی گرا).
بذارید یه مثال واقعی بزنیم، فرض کنید باید یک پروژه مربوط به قسمت های مختلف یک دانشگاه بسازیم. توی یک دانشگاه معلم هست، منشی هست، دانش آموز هست، رؤسای ادارات مختلف هستن و قسمت های دیگه. یکی از روش های پیاده سازی این پروژه اینه که برای هر کدوم از این موجودیت ها به صورت جدا یک منطق (logic) پیاده سازی کنیم، که راه حل قابل گسترش و انعطاف پذیری نیست. یه راه دیگه اینه که از روش OOP وارد کار بشیم، که توش یک مدل Person (فرد) ایجاد میکنیم که دارای اطلاعات و جزئیات مربوط به یک فرد به عنوان key های یک آبجکت هست. اینطوری میتونیم افراد رو میتونیم از سمت هاشون جدا کنیم. ما میتونیم با این روش به راحتی تغییراتی در مدل Person یا بقیه موجودیت ها مثل دانش آموزان، رؤسا، معلمان و ... ایجاد کنیم. همه تغییرات ایجاد شده در Person روی موجودیت ها هم اعمال میشن چون اونها متعلق به کلاس Person هستن. روش های دیگه ای هم برای حل کردن این مسئله وجود دارن که توی این فصل بهشون میپردازیم.
بعد از اون یاد میگیریم که prototype ها چین و چجوری میشه ازشون برای رسیدن به inheritance (وراثت) استفاده کرد. علاوه بر اینها مفاهیم پایه دیگه ای هم وجود دارن که بررسیشون میکنیم. بریم شروع کنیم.