campaign-Ghorban-to-Ghadir

برنامه نویسی جاوا اسکریپت را چطور و از کجا شروع کنیم ؟



visibility  
mode_comment   ۳۰

در شروع یادگیری برنامه نویسی جاوا اسکریپت ، دانستن مسیر گام به گام رسیدن به مقصد کار را ساده تر می کند. این کار باعث می شود تخمین درست تری از زمانی که برای آموزش جاوا اسکریپت نیاز دارید بزنید. همچنین از سردرگمی و هدر رفتن زمانتان برای تحقیق در این مورد کم می کند. در این مطلب قصد داریم مسیر پر پیچ و خم شروع یادگیری جاوا اسکریپت و حرفه ای شدن در آن را به طور کامل برای شما توضیح دهیم.

 

برناه نویسی جاوا اسکریپت را چطور یاد بگیریم ؟

ممکن است در ابتدا ساده به نظر برسد! زبان برنامه نویسی ساده ای که به صفحات HTML متصل می شود و معجزه می آفریند. اما پس از شروع یادگیری جاوا اسکریپت رفته رفته به این نتیجه می رسید که مفاهیم بسیاری برای یاد گرفتن وجود دارد. ممکن است کمی گیج شوید. اسامی زیادی به گوشتان می خورد: انواع تکنولوژی های جاوا اسکریپت که کاربرد یا معنی آن ها را نمی فهمید. نگران نباشید! هر چه نیاز دارید اینجاست:

برنامه نویسی جاوا اسکریپت

یادگیری ابتدایی زبان برنامه نویسی جاوا اسکریپت

در ابتدای مسیر نیاز است که شما مفاهیم زبان برنامه نویسی جاوا اسکریپت مانند تعریف متغیر ها، توابع و... را فرا بگیرید. این مرحله مثل خط شروع شما است. می توانید برای شروع یادگیری جاوا اسکریپت از کتاب ها، دوره آموزش جاوا اسکریپت، مقالات و... استفاده کنید. به هر حال احتمالا به زودی در این مرحله آماده می شوید. خواندن و دنبال کردن مقالات راهنمای جامع جاوا اسکریپت برای شروع این کار، پیشنهاد ماست!

یادگیری ES6

ECMAScript یا به اختصار ES یک استاندارد برای زبان های برنامه نویسی است. جاوا اسکریپت مهم ترین پیاده کننده این استاندارد است. ES6 در واقع آخرین نسخه منتشر شده از اکما اسکریپت است. اگر در مورد ES6 اطلاعات کافی ندارید می توانید به بخش تاریخچه جاوا اسکریپت در نوشته جاوا اسکریپت چیست مراجعه کنید.

more  بیشتر بدانید : جاوا اسکریپت چیست؟

ES6 امکانات جدیدی را به جاوا اسکریپت اضافه می کند. اما همه مرورگر ها از آن پشتیبانی نمی کنند. برای حل این مشکل می توانیم از ابزار هایی استفاده کنیم که کد ES6 را به جاوا اسکریپتی که توسط همه مرورگر ها قابل اجرا باشد ترجمه می کند. یکی از این ابزار ها کتابخانه Babel است. با استفاده از Babel به راحتی می توانید کد های ES6 خود را برای اجرا روی مرورگر به جاوا اسکریپت خام تبدیل کنید.

برنامه نویسی جاوا اسکریپت

یادگیری یک Task Runner

قبلا اجرای کار های مختلفی مانند کم حجم کردن فایل های جاوا اسکریپت و سی اس اس (minify کردن)، چسباندن فایل های جاوا اسکریپت به هم (concatenate کردن) و... بر عهده خودمان بود. بعد از هر بار ایجاد تغییر در فایل ها مجبور بودیم، تمام عملیات بالا و دسته ای از عملیات دیگر را دوباره و دوباره تکرار کنیم. این کار وقت گیر، پر هزینه و البته ملال آور بود. تا اینکه  Task Runner ها به میدان آمدند.

Task Runner همان کاری را انجام می دهد که از اسم آن مشخص است. وظیفه Task Runner انجام دادن وظایف است. مثلا Task Runner می تواند با دریافت یک دستور watch با هر بار ایجاد تغییر در فایل ها پروژه را دوباره اجرا کند. تعداد زیادی Task Runner وجود دارد که یادگیری کار با آن ها هم راحت است مانند Gulp.js، Grunt.js، npmscript و... به طور کلی بیشتر Task Runner ها می توانند این کارها را انجام دهند:

  • چک کردن فایل های جاوا اسکریپت برای یافتن خطا
  • الحاق یا Concatenate کردن فایل های مختلف جاوا اسکریپت
  • کم حجم کردن یا Minify کردن فایل های جاوا اسکریپت
  • بهینه سازی حجم تصاویر
  • بارگزاری مجدد برنامه پس از تغییر در فایل ها یا Watch کردن
  • و ....

برنامه نویسی جاوا اسکریپت

یادگیری یک Package Manager

قدم بعدی در شروع یادگیری جاوا اسکریپت ، آموزش یک یا چند Package Manager است. پکیج ها در واقع قطعاتی از کد هستند که قابلیت استفاده مجدد را دارند. این پکیج ها می توانند از یک نرم افزار Package Manager یا مدیریت پکیج دانلود شده و در سیستم توسعه برنامه نویس ذخیره شوند. پکیج های مختلف ممکن است به یکدیگر وابسته باشند. Package Manager نرم افزاری است که به شما کمک می کند که پکیج های مختلفی که خودتان نوشته اید و یا دیگران آماده کرده اند مدیریت کنید تا پروژه تان به درستی کار کند. اگر به دنبال یادگیری یک Package Manager هستید پیشنهاد ما به شما npm است. البته پکیج منجرهای دیگری مانند bower، yarn و... نیز وجود دارند.

برنامه نویسی جاوا اسکریپت

یادگیری یک Bundler

در قدم بعدی باید با Bundler ها آشنا شوید. اگر آشنایی مقدماتی با جاوا اسکریپت پیدا کرده باشید احتمالا می دانید که برای اضافه کردن فایل های جاوا اسکریپت به یک صفحه باید از کد زیر در HTML استفاده کنید:

در مثال بالا اگر در فایل app.js یک متغیر سراسری (متغیری که از تمام نقاط به آن دسترسی دارید) تعریف شده باشد؛ شما به راحتی می توانید در داخل تگ script دوم به آن دسترسی داشته باشید (در جاوا اسکریپت به متغیر هایی که در خطوط بعدی تعریف شده اند دسترسی ندارید). حالا فرض کنید که تعداد فایل های جاوا اسکریپت زیاد باشد. برای مثال، نمونه زیر را در نظر بگیرید:

در این حالت کنترل ترتیب متغیر ها در فایل ها کمی سخت می شود. ممکن است در فایل main.js به متغیری احتیاج داشته باشید که در فایل script.js تعریف شده است. در این حالت راه حل، جابه جا کردن ترتیب معرفی فایل ها است. اما این عمل با زیاد تر شدن تعداد فایل ها پیچیده تر می شود. در اینجا Bundler ها یا Module Loader ها برای الحاق خودکار فایل ها به کمک شما می آیند!

Bundler ابزاری است که تمام تکه کد های جاوا اسکریپت و فایل های وابسته آن ها را به صورت یک بسته در یک فایل جمع آوری می کند. این کار علاوه بر رفع دردسری که بالا توضیح داده شد، باعث می شود تعداد Request ها در زمان بارگزاری صفحه کاهش پیدا کند و سرعت بارگزاری صفحه بهبود پیدا کند.

برنامه نویسی جاوا اسکریپت

از محبوب ترین Bundler ها می توان به Webpack، Browserify، Rollup اشاره کرد. البته باید بگوییم که ابزار های جامعی مثل Webpack  ضمن اینکه کتابخانه Babel را برای ترجمه کد ES6 در خود دارند، بخشی از وظایف Task Runner ها را هم انجام می دهند!

یادگیری یک فریمورک جاوا اسکریپت

بعد از مقداری کدنویسی با جاوا اسکریپت  متوجه می شوید که کدهای زیادی در حال تکرار شدن هستند. ایجاد تغییر در کدها با زیاد شدن خطوط کد مشکل تر و مشکل تر می شود. این روش کدزنی مسلما استاندارد نیست. اما ابزار هایی وجود دارند که در واقع کدهایی از پیش نوشته شده و استاندارد هستند. فریورک ها چهارچوب هایی هستند که شما تحت آن ها به کدزنی می پردازید و با این روش، نه تنها سرعت توسعه برنامه افزایش پیدا می کند بلکه نگهداری و بهینه سازی کدها بسیار آسان می شود. به عنوان مثال Angular.js، React و Vue.js تعدادی از این فریمورک های محبوب جاوا اسکریپت هستند. اگر دوست دارید بیشتر با این فریمورک ها آشنا شوید، ما مقاله ای در مورد معرفی محبوب ترین فریمورک های جاوا اسکریپت برای شما آماده کرده ایم.

یادگیری برنامه نویسی جاوا اسکریپت

آشنایی با تست نویسی در جاوا اسکریپت

در کار برنامه نویسی زمان هایی پیش می آید که برنامه به مشتری تحویل داده می شود اما مشتری ادعا می کند که برنامه به درستی کار نمی کند. در موقعیت های مختلفی برنامه های ما به درستی عمل نمی کنند و به اصطلاح باگ دارند. بنابراین برنامه باید بارها و بارها ایرادگیری شود. این عمل، عمل وقت گیر و هزینه بری است. در واقع یک کابوس به تمام معنا!

راهکار این است که برنامه های ما بر اساس تست یا Test Driven نوشته شوند. یعنی برای تک تک عملکرد های برنامه ابتدا کدی برای تست آن نوشته شود. پس از اتمام کار تست نویسی شروع به نوشتن کدهایی می کنیم تا در نهایت در آن تست ها با موفقیت اجرا شوند. با این کار اگرچه فرآیند کدنویسی را طولانی تر کرده ایم، اما در نهایت فرآیند دیباگ و اشکال گیری نرم افزار بسیار راحت می شود.

در جاوا اسکریپت هم ابزار های تست نویسی مختلفی وجود دارند. به عنوان مثال می توان به Jest از شرکت فیسبوک و Mocha اشاره کرد.

یادگیری برنامه نویسی جاوا اسکریپت برای برنامه نویسی بک اند

یکی از کاربرد های بسیار زیاد جاوا اسکریپت استفاده از آن در بک اند برنامه هاست. به این صورت که با استفاده از موتور V8 جاوا اسکریپت را روی کامپیوتر سرور اجرا کنیم. اگر قصد دارید یک برنامه نویس فول استک جاوا اسکریپت شوید بنابراین برنامه نویسی بک اند با جاوا اسکریپت گزینه ای است که باید حتما یاد بگیرید. برای برنامه نویسی جاوا اسکریپت در سمت سرور از فریمورک Node.js استفاده می کنیم. در مطلبی که در مورد محبوب ترین فریمورک های جاوا اسکریپت نوشته ایم به معرفی این فریمورک پرداخته ایم.

یادگیری Typescript

متاسفانه زبان برنامه نویسی جاوا اسکریپت زبانی است که از نظر تعریف نوع متغیر ها فقیر است. این به آن معنی است که شما نمی توانید در جاوا اسکریپت انواع متغیر ها را تعیین کنید. مشکل این فقدان در این است که دیباگ کد ها در زمان اجرا را به شدت مشکل و در نهایت جاوا اسکریپت خام را در سمت سرور، برای اپلیکیشن های بزرگ نامناسب می کند.

زبان Typescript که در واقع یک بسته تکمیلی برای زبان برنامه نویسی جاوا اسکریپت است این مشکل را حل می کند. Typescript امکانات زیادی را به جاوا اسکریپت اضافه می کند. زبان Typescript در نهایت برای اجرا به کد جاوا اسکریپت ترجمه می شود. منظور از بسته تکمیلی این است که شما حتی می توانید کد جاوا اسکریپت خام را در Typescript استفاده کنید.

یادگیری برنامه نویسی جاوا اسکریپت

نتیجه گیری

ممکن است در ابتدای کار، شروع یادگیری برنامه نویسی جاوا اسکریپت ساده به نظر برسد. ممکن است تصور کنید با یک زبان برنامه نویسی ساده بدون حتی قابلیت تعریف نوع متغیر ها سر و کار دارید. اما یادگیری این زبان برنامه نویسی و متعلقات آن قرار نیست یک هفته ای ممکن شود! اما ما در این مطلب تلاش کردیم این مسیر طولانی را برای شما قدم به قدم شرح دهیم. روشن بودن مسیر یادگیری جاوا اسکریپت یا Roadmap آن به شما کمک می کند با زاویه دید بازتر و روشن تری به تخمین زمان یادگیری بپردازید. علاوه بر آن دانستن قدم بعدی به شما آرامش خاطر بیشتری می دهد. به نظر شما چه چیزهای دیگری باید در این مسیر گنجانده شود؟

متخصص جاوا اسکریپت
با جاوا اسکریپت جادوگری کنید! آیا می دونید با زبان جاوااسکریپت می تونید، برای فرانت اند و بک اند وبسایت ها برنامه نویسی کنید؟ همینطور اپلیکیشن دسکتاپ و موبایل بسازید؟ اگر دوست داری اینکارها رو انجام بدی و React, ElectronJS, ReactNative, NodeJS,MongoDB و ... رو تو یه دوره یاد بگیری، متخصص جاوااسکریپت سون لرن رو حتما ببین : متخصص جاوا اسکریپت arrow_back
7Learn Experts
comment دیدگاه کاربران
حسن محمدی replyپاسخ

سلام و خسته نباشید
مطلب فوق العاده و مفیدی بود تشکر

زهرا فرحمند

سلام وقتتون به خیر خوشحالم که استفاده کردید 🙂

سید مجتبی حسینی replyپاسخ

سلام
مقالتون عالی بود

زهرا فرحمند

سلام. ممنونم از توجهتون 🙂

Mehregan replyپاسخ

ممنون خیلی عالی بود

زهرا فرحمند

سلام ممنون از شما بخاطر توجهتون 🙂

سجاد replyپاسخ

ممنون واقعا عالی بود

زهرا فرحمند

خوشحالم که لذت بردید 🙂

Agahi90.iR replyپاسخ

سپاسگزار از این مقاله خوبتون
موفق باشید

زهرا فرحمند

ممنونم دوست عزیز ممنون از توجهتون

بابک خادمی replyپاسخ

عالی بود مرسی 🙂

زهرا فرحمند

ممنونم از توجهتون آقای خادمی عزیز موفق باشید 🙂

احسان لطفی replyپاسخ

سلام و وقت به خیر
مقاله بسیار مفید و کارآمد است. سپاسگزارم

زهرا فرحمند

سلام آقای لطفی عزیز خوشحالم که استفاده کردید 🙂

نازمحمد گری replyپاسخ

سلام / مقاله مفیدی بود / با تشکر

زهرا فرحمند

سلام ممنونم از همراهیتون 🙂

ایمان شیخ ممو replyپاسخ

عرض ادب و احترام
اینقدر وضح و شفاف توی این مقاله توضیحات مربوطه داده شده که یک فردی که اطلاعات مبتدیانه ای هم داشته باشه کاملا آگاهی پیدا میکنه ..
بسیار سپاسگزارم ازتون

زهرا فرحمند

سلام. خوشحالم که استفاده کردید آقای شیخ مموی عزیز. موفق باشید 🙂

احسان replyپاسخ

سلام
خیلی ممنون، این مقاله تاثیر زیادی داره برای مطالعه و بهتر یادگیری زبان JavaScript

زهرا فرحمند

سلام. خوشحالم که استفاده کردید احسان عزیز 🙂

مجتبی شهریور replyپاسخ

سلام
وقت بخیر عالی بود در صورت امکان دریافت مقالات به صورت پی دی اف فراهم بفرمایید

زهرا فرحمند

سلام جناب شهریور عزیز. به زودی قالب جدید با امکانات جدید بالا خواهد اومد. ممنون از اینکه توی این راه همراه ما هستید 🙂

hamid golipoor replyپاسخ

با سلام و احترام خدمت مدیریت سایت جناب آوند
با کمال تشکر از سایت و مرجع آموزشی که کمک شایانی به رشد علمی دانشجویان داشته، لطف بفرمایید امکان دریافت PDF برای مقاله هایی که توی سایت گذاشته می شه رو قرار بدهید.
با تشکر و سپاس فراوان

لقمان آوند

سلام اقا حمید
ممنون از شما
سون لرن جدید رو تا 1 ماه دیگه می بینید سعی می کنیم تو ورژن جدید بزاریم

آتنا replyپاسخ

راهنمای جامع و کاربردی بود. ممنون از شما و تیم خوبتون

banihashem3 replyپاسخ

با تشکر از شما بابت مطلب خوبتون

علی قادری replyپاسخ

سلام ممنون از مطلبتون
جاوااسکریپت برای بک اند چطوره ؟
ایا از php بهتره؟
برای بک اند وردپرس و لاراول رو یادبگیریم بهتره یا جاوااسکریپت؟

زهرا فرحمند

سلام آقای قادری عزیز. راستش زبان بهتر و بدتر برای شما وجود نداره. هرکدوم از این زبان ها و فریمورک ها در جایگاه خودشون بهترین هستند. به زودی پادکستی با موضوع انتخاب بین وردپرس و لاراول خواهیم داشت. 🙂

حمیدرضا اکبرنژاد replyپاسخ

سلام. خیلی ممنون از مقاله ساده و در عین حال جامعتون. عالیه. همیشه قرار نیست یه مقاله با کلمات قلمبه سلمبه تو چشم مخاطب بلد بشه! سادگی، بهترین زیباییه. و این که اگه میشه یه کم عملی به بحث جاوااسکریپت بپردازین. این که چه سایت ها و اپلیکیشن هایی با جاوااسکریپت نوشته شدن(بک اند و فرانت اند) مزایای این سایتا و اپلیکیشنا چیه و این که آینده این زبان برنامه نویسی و فریم ورک هاش تو ایران به چه شکله؟ محبوبیت کدوم فریم ورک جاوااسکریپت به لحاظ کاری داخل ایران بیشتره؟ بازم ممنون بابت مقالتون و سون لرن

مهدی علامه

سلام حمید عزیز
خواهش می کنم
برای خواندن این موضوعات می تونی به لینک های زیر سر بزنی
فریمورک های جاوا اسکریپت : بهترین فریم ورک های JavaScript
جاوا اسکریپت چیست؟

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :