یادگیری برنامه نویسی جاوا اسکریپت
ممکن هست در ابتدا ساده به حیث برسد! گویش برنامه نویسی بی آلایش ای که به صفحات HTML متصل میشود و اعجاز میآفریند. ولی پس از شروع یادگیری جاوا اسکریپت رفته رفته به همین سرانجام میرسید که مفاهیم بخش اعظمی برای یاد گرفتن وجود دارد. ممکن میباشد کمی گیج شوید. اسامی متعددی به گوشتان میخورد: انواع تکنولوژیهای جاوا اسکریپت که کاربرد یا مفهوم آنها را نمیفهمید. نگران نباشید! هر چه نیاز دارید اینجاست:
چگونه جاوا اسکریپت یاد بگیریم
در شروع مسیر نیاز است که شما مفاهیم زبان برنامه نویسی جاوا اسکریپت مانند تعریف متغیر ها، توابع و… را فرا بگیرید. همین مرحله مانند خط آغاز شما است. میتوانید برای آغاز یادگیری جاوا اسکریپت از مکتوب ها، دوره تدریس جاوا اسکریپت، مقالات و… به کارگیری کنید. به هر حالا ممکن است به زودی در همین تراز مهیا میشوید. خواندن و دنبال کردن مقالات راهنمای جامع جاوا اسکریپت برای شروع همین کار، پیشنهاد ماست!
یادگیری ES6
ECMAScript یا به اختصار ES یک استاندارد برای زبانهای برنامه نویسی است. جاوا اسکریپت مهمترین پیاده کننده همین استاندارد است. ES6 در واقع پایانی ورژن منتشر شده از اکما اسکریپت است. درصورتیکه در مورد ES6 اطلاعات به اندازه ندارید میتوانید به بخش تاریخچه جاوا اسکریپت در نوشته جاوا اسکریپت چیست مراجعه کنید.
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 به کارگیری کنید:
<script src=’app.js’ rel=’text/javascript’></src> <script> … </script>
در مثال بالا درصورتیکه در فایل app.js یک متغیر سراسری (متغیری که از کل نقاط به آن دسترسی دارید) تعریفوتمجید شده باشد؛ شما به راحتی میتوانید در باطن تگ script دوم به آن دسترسی داشته باشید (در جاوا اسکریپت به متغیر هایی که در خطوط بعدی تعریف شده اند دسترسی ندارید). حالا فرض کنید که تعداد فایلهای جاوا اسکریپت دوچندان باشد. برای مثال، مثال ذیل را در لحاظ بگیرید:
<script src=’app.js’ rel=’text/javascript’></script> <script src=’main.js’ rel=’text/javascript’></script> <script src=’script.js’ rel=’text/javascript’></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 آن به شما کمک میکند حساس زاویه دید بازتر و روشنتری به تخمین روزگار یادگیری بپردازید. علاوه بر آن فهمیدن قدم بعدی به شما متانت خاطر بیشتری میدهد. به حیث شما چه چیزهای دیگری بایستی در این مسیر گنجانده شود؟