10 نکته که شما را به برنامه نویس حرفه ای جاوا اسکریپت تبدیل می کند

زبان برنامه نویسی جاوا اسکریپت یکی از بهترین زبان های برنامه نویسی برای وب است، در این مطلب نکاتی مهم درباره جاوا اسکریپت را به شما توضیح می دهیم.

 10 نکته که شما را به برنامه نویس حرفه ای جاوا اسکریپت تبدیل می کند

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

توجه داشته باشید که تبدیل شدن به یک توسعه دهنده فول استک به این معناست که شما قادر باشید که کدهای سمت سرور یا همان back-end که توسط سیستم عامل و پایگاه داده اجرا می شود را بنویسید و همچنین بتوانید برنامه نویس خوبی در زمینه فرانت اند نیز باشید.

مورد اول: درک اساسی از جاوا اسکریپت داشته باشید

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

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

واقعیت این است که زبان برنامه نویسی جاوا اسکریپت زبانی است که هم به صورت داینامیک و هم به صورت prototype قابل استفاده می باشد، یادگیری این زبان ممکن است برای افرادی که در زمینه شی‌ گرایی تجربه‌ هایی دارند کمی سخت باشد اما با کمی پیش رفتن به راحتی مفاهیم ها را متوجه می شوند. به صورت کلی جاوا اسکریپت دارای دو نوع داده می باشد: اشیا و متغیرهای اولیه. ۵ نوع از متغیرهای اولیه بولین ها، number، استرینگ ها، null و undefined می باشند، تمامی متغیرهای دیگری که در جاوا اسکریپت وجود دارند جز اشیا به شمار می آیند، کلاس ها، توابع و آرایه ها نیز جزء اشیا به شمار می آیند. در جاوا اسکریپت اشیا را در سطوح اولیه می توان به عنوان مجموعه ای از کلید واژه ها در نظر گرفت که در آن کلید ها همواره یک استرینگ و مقادیر هر چیزی از جمله یک متغیر اولیه، یک شی، یک تابع، آرایه و ... می توانند باشند.

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

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

مورد دوم: فریم ورک های فرانت اند

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

مورد سوم: BootStrap 4 در جاوا اسکریپت 

امروزه برنامه ها و اپلیکیشن های تحت وب نیاز دارند که هنگامی که در دسکتاپ و یا در گوشی های هوشمند باز می شوند به صورت یکسان و زیبایی دیده شوند، شما نمی توانید برای این کار زمان زیادی صرف کنید تا با استفاده از Css کدهایی بنویسید که چنین کاربردی را برای شما داشته باشند. علاوه بر این مورد ویژگی های بسیار زیادی در برنامه نویسی front-end با استفاده از جاوا اسکریپت وجود دارد که تجربه کاربری و رابط کاربری شما را بسیار زیباتر می کند از جمله این موارد می ‌توان به popovers، popups، navigation bars، alerts و ... اشاره کرد. اگر سعی کنید تمامی این موارد را خودتان به وجود بیاورید خیلی سریع متوجه می‌ شوید که کدهای بیهوده و بسیار زیادی را نوشته اید که فقط زمان زیادی از شما گرفته اند، بوت استرپ یک کتابخانه فرانت اند است که توسط توییتر ساخته شده است و برای شما خدمات بسیار زیادی را فراهم کرده است. این کتابخانه که در جاوا اسکریپت کاربرد دارد شامل تعداد بسیار زیادی از استایل ها می باشد شما می توانید به راحتی از آنها استفاده کنید و دیگر نیازی نیست خودتان آنها را طراحی کنید.

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

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

مورد چهارم: کار با html و css

با اینکه بوت استرپ قادر است که به میزان بسیار زیادی کارهای css را انجام دهد اما شما هنوز هم اگر بخواهید یک صفحه سفارشی شده را طراحی کنید نیاز دارید که تغییرات جزئی در کتابخانه استفاده شده در آن ایجاد کنید این تغییرات باید توسط css انجام شوند. اگر قصد یادگیری css را دارید می توانید خیلی سریع با کمی جستجو در گوگل تمامی مواردی که برای طراحی صفحات سایت نیاز دارید را یاد بگیرید، برای اینکه بتوانید برنامه نویس خوبی در زمینه جاوا اسکریپت شوید حتما باید css و html را یاد بگیرید و در واقع می توان این دو را پایه زبان برنامه نویسی جاوا اسکریپت دانست. از جمله مواردی که در css باید یاد بگیرید می توان به ساخت فونت های سفارشی، تنظیم ویژگی ها  بر اساس عرض صفحه که بوت استرپ قادر به تنظیم آن نمی باشد و همینطور استفاده از nth-child اشاره کرد. توجه داشته باشید که نکات زیادی در این زمینه وجود ندارد و شما قبل از ساخت اولین قالب وب سایت خود می توانید خیلی سریع این موضوع را یاد بگیرید. آشنایی با برخی از موارد همچون تفاوت بین عناصر درون خطی مانند <span> می‌تواند تا حدود زیادی از دردسرهای شما برای طراحی صفحات وب بکاهد.

نکاتی درباره اچ تی ام ال

اگر شما هم مانند من فکر کنید ممکن است اچ تی ام ال را با تگ های باز و بسته و css را با سلکتور های آن بشناسید. نکته بسیار مهمی که در این ابزارها وجود دارد این است که این ابزارها پردازنده های بسیار متنوعی دارند که کار با این ابزارها را بسیار سرگرم کننده می کنند. به عنوان مثال برای استفاده از html ابزارهایی مانند Pug و HAMAL وجود دارند و برای css نیز ابزارهایی همچون SASS، LESS، Style و postCSS وجود دارند. شما همچنین می توانید در خط فرمان فریمورک انگولار پلاگین هایی را مورد استفاده قرار دهید تا از این ابزارها به خوبی استفاده کنید.

مورد پنجم: NodeJs و فریم ورک بک اند

NodeJS محیطی برای اجرای کدهای جاوا اسکریپت در بک اند مانند تمامی زبان های برنامه نویسی می باشد، کدهای جاوا اسکریپت که در دسکتاپ اجرا می شوند کمی با کدهای جاوا اسکریپت که در مرورگر اجرا می شوند تفاوت دارند، اما هر دو این ها از موتور v8 برای اجرای کدهای جاوا اسکریپت استفاده می ‌کنند. شاید بتوان اصلی‌ ترین تفاوت این دو مورد را در آن دانست که مرورگر از یک API اضافی برای دسترسی به DOM استفاده می کند. اگر می خواهید در برنامه نویسی به زبان جاوا اسکریپت حرفه ای شوید حتما باید کار با Node JS را بلد باشید.

گزینه های مختلف برای بک اند

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

مورد ششم: یادگیری  TypeScript

زبان برنامه نویسی جاوا اسکریپت دارای مسائل و مشکلات بی شماری می باشد، از جمله این مسائل می توان به مواردی همچون سازگاری مرورگر با کامپیوتر های مختلف، نسخه های مختلفی از NodeJS، نبود ایمنی مناسبی که پیچیدگی کمتری برای استفاده داشته باشد و ... اشاره کرد. استفاده از TypeScript به شما کمک می کند که در ES5 کدهای تمیزتری را بنویسید و این کار از طریق حذف برخی از مشکلاتی که با یکدیگر سازگار هستند صورت می‌ گیرد. این ابزار همچنین به شما کمک می کند تا کدهای شی گرایی جاوا اسکریپت را به روش سنتی و مشابه زبان های برنامه نویسی جاوا و سی شارپ بنویسید.

برنامه نویسی بهتر با TypeScript

برنامه نویسی با استفاده از TypeScript به من کمک کرده است که تبدیل به یک برنامه نویسی بهتر و حرفه ای تر شوم و همچنین کمک کرده است که مفاهیمی مانند اینترفیس ها، وراثت، سطح دسترسی ها ( public، private و ...) و abstraction را بهتر درک کنم. استفاده از TypeScript نسبت به جاوا اسکریپت بیشتر حس واقعی بودن را به شما القا می کند، یکی دیگر از مهمترین مزایای استفاده از این ابزار این است که می ‌توان آن را با استفاده از یک فایل lint که استانداردهای کدگذاری خاصی را دارا می باشد اجرا کرد.

مورد هفتم: آشنایی با ابزار API calling

یکی از بزرگترین اشتباهاتی که معمولاً توسعه دهندگان جاوا اسکریپت که به تازگی وارد دنیای حرفه‌ ای شده‌ اند انجام می دهند که خود من هم شامل آنها هستم این است که زمانی که در حال برنامه نویسی در قسمت بک اند در جاوا اسکریپت هستند از API های فرانت اند استفاده می کنند، این کار باعث می‌شود که زمان اجرای کد های شما در سرور به میزان بسیار زیادی افزایش پیدا کند. در این شرایط شما باید هر بار که صفحه وب سایت خود را رفرش می شود اطلاعات را از سرور گرفته و آن را به نمایش بگذارید. یکی از مهم ترین اقداماتی که می توانید برای افزایش سرعت وب سایت خود انجام دهید این است که قسمت فرانت اند و بک اند برنامه خود را به صورت جداگانه برنامه نویسی کنید. آشنایی با ابزارهای API Calling مانند ابزار Postman یا SoapUI باعث می شود که شما بتوانید API  های خود را بدون اینکه در قسمت فرانت اند کاری انجام دهید فراخوانی کنید.

مورد هشتم: آشنایی با SQL

با وجود همه نفرتی که در اطراف NoSQL Database وجود دارد و همه محبوبیتی که mongoDB در میان برنامه نویسان جاوا اسکریپت که از NodeJS استفاده می کنند دارد، هنوز هم در بسیاری از برنامه ها و اپلیکیشن های کاربردی این دیتابیس است که مورد استفاده قرار می گیرد. صرف نظر از این موضوع که شما در برنامه نویسی با زبان برنامه نویسی جاوا اسکریپت برای قسمت بک اند برنامه نویسی می ‌کنید یا خیر شما باید اطلاعات کافی درباره SQL  داشته باشید چرا که SQL پیش شرط لازم برای هر کسی است که می‌ خواهد در برنامه نویسی تحت وب با استفاده از زبان برنامه نویسی جاوا اسکریپت حرفه ای شود. لزومی ندارد که شما در این موضوع تبدیل به یک متخصص شوید بلکه تنها باید با مواردی همچون پیاده سازی پایه دیتابیس، ایجاد و به روزرسانی جدول ها و همچنین وارد کردن داده ها آشنا شوید.

نکاتی درباره SQL

بسیاری از دیتابیس های مهم ارتباطی به ویژه MySQL و PostgreSQL به خوبی با NodeJs ادغام می شوند. شما به راحتی می توانید با استفاده از این ابزار با MongoDB یا هر پایگاه داده NodeJS ارتباط برقرار کنید. من تحقیقات بسیار زیادی در این زمینه انجام دادم متوجه شدم که استفاده از SQL استاندارد کمی کمتر از سایر انواع پایگاه های داده ای هستند که از Json ها( اشیا در جاوا اسکریپت) استفاده می کنند. اگر می خواهید اطلاعات خود را تحت عنوان Json ذخیره کنید حدس میزنم که ابزارهای PostgreSQL و MySQL هنوز هم می‌توانند این کار را برای شما انجام دهند.

استفاده از یونیت تست و end-to-end تست

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

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

هر عنصری که در یک صفحه وب وجود دارد بر اساس کاری که کاربر با آن انجام می دهد رفتار متغیری را دارد که هر یک از این رفتارها باید توسط یونیت تست، تست شوند. در بک اند تمامی روت ها و متدهای عمومی که توسط کاربر مورد استفاده قرار گرفته‌ اند باید توسط یونیت تست مورد تست قرار گیرند. End-to-End test ( برای تست کردن یکپارچگی برنامه استفاده قرار می گیرد) باید برای هر کاری که کاربر انجام می ‌دهد یکبار اجرا شود که این اجرا شامل چندین صفحه وب می باشد و معمولاً در بک اند اجرا می شود. به عنوان مثال برای ورود به سیستم حتماً باید از end-to-end test استفاده شود، اگر کاربر بعد از ورود به حساب کاربری خود یک صفحه جدید را باز کند باید یک  end2end تست نیز برای آن صورت گیرد.

مفاهیم تعیین هویت کاربر

راه های بسیار زیاد و متنوعی وجود دارد که بتوانید با استفاده از آنها وب سایت خود را تبدیل به یک وب سایت امن کنید. استفاده از توکن های سمت کاربر، session storage و تعیین هویت کاربران با استفاده از ابزارهایی همچون MS Active Directory. لزومی ندارد که شما همه این روش ها را بلد باشید اما شما باید یک ایده داشته باشید که چه چیزهایی را برای امن کردن وب سایت خود در اختیار دارید. زمانی که شما این کار را انجام دهید می توانید در مواقع لزوم بهترین گزینه و راحت ترین ها را بر اساس میزان دانش خود انتخاب کنید و مورد استفاده قرار دهید. همچنین داشتن یک ایده کلی از اصلی ‌ترین روش های حمله هکرها به وب سایت ها می تواند کمک بسیار زیادی به شما کند. لزومی ندارد که شما تبدیل به یک متخصص امنیت شبکه شوید اما شما باید مهم ترین این روش ها را بدانید تا از سایت خود مراقبت کنید، از جمله این روش ها می‌توان به مواردی همچون درخواست اسکریپت cross-site و حملات SQL injection اشاره کرد.

امن کردن API ها در قسمت بک اند جاوا

برای این که API های خود را در قسمت بک اند جاوا اسکریپت امن کنید به شما توصیه می کنم که از توکن های وب JSON استفاده کنید. NodeJS کتابخانه های بسیار کاربردی دارد که می توانید از آنها به همراه ابزار Express برای این کار استفاده کنید. توکن های وب جیسون نوعی از تعیین هویت های سمت کاربر می باشند که با استفاده از آنها شما می‌توانید تنها به کاربران مورد تایید خود اجازه دسترسی بدهید که این کاربران بتوانند از قسمت بک اند برنامه شما استفاده کنند. توکن های وب جیسون همچنین می‌توانند اشیاء جیسون رمزنگاری شده را در خود ذخیره کنند بنابراین شما می‌توانید از این ویژگی برای امن کردن درخواست های خود استفاده کنید. اگر شما قصد دارید که اطلاعات دائمی برای کاربران خود ایجاد کنید( به عنوان مثال ذخیره‌ سازی اطلاعات کارت خرید برای یک یوزر در هنگام ترک کردن سایت) شما باید اطلاعاتی درباره Session ها به دست بیاورید.