توسعه دهندگان بسیار زیادی هستند که ترجیح میدهند بجای استفاده مستقیم از جاوا اسکریپت سراغ تایپ اسکریپت بروند. یکی از دلایل اصلی این موضوع، وجود سیستم تایپ چکینگ قدرتمند است که باعث امنیت بیشتر در فرایند تعریف متغیر میشود.
اما استفاده از تایپ اسکریپت مشکلاتی نیز دارد. از آنجایی که مرورگرها به صورت مستقیم تایپ اسکریپت را اجرا نمیکنند، نیاز است که در فرایند اجرا اپلیکیشن، تایپ اسکریپت به جاوا اسکریپت تبدیل شود که این موضوع روی زمان اجرا کدها تاثیرگذار خواهد بود.
در این مقاله از وبسایت راکت قصد داریم شما را با تکنولوژی جدیدی به نام JSDoc آشنا شویم که میتواند به عنوان یک جایگزین برای تایپ اسکریپت در نظر گرفته شود و مشکلات تایپ اسکریپت را نیز حل کند.
چرا به صورت مستقیم از جاوا اسکریپت استفاده نمیکنیم؟
بدون شک جاوا اسکریپت یکی از زبانهای پر کاربرد در دنیای توسعه نرم افزار است که توسط شرکتها و توسعه دهندگان بسیار زیادی برای کارهای مختلف استفاده میشود. از طراحی و توسعه Front-End گرفته، تا توسعه سمت سرور و اپلیکیشنهای موبایل و یادگیری ماشین.
از آنجایی که جاوا اسکریپت در ابتدا تنها برای طراحی صفحات وب استفاده میشد، در نظر گرفتن اینکه در آینده چه چالشهایی ممکن است برای آن پیش بیاید کمی غیر منتظره بود. جاوا اسکریپت چالشهایی دارد که تنها با استفاده کردن از آن در پروژههای بزرگ میتوانید متوجه آنها شوید.
دو مورد از اصلیترین مشکلات جاوا اسکریپت در زمینه توسعه اپلیکیشنها عبارت از موارد زیر است:
- پشتیبانی نکردن از Static Typing و Strict Type Checking: برای برخی از مبتدیان این موضوع که در جاوا اسکریپت برای تعریف متغیر نیازی به تعیین نوع آن نیست بسیار جذاب بوده و به نظرشان این موضوع بر پیچیدگی جاوا اسکریپت میکاهد. اما درست زمانی که با یک پروژه پیچیده طرف هستید و نمیدانید دقیقا چه اتفاقاتی قرار است روی دادههایتان بیافتد، متوجه میشوید که حساس نبودن جاوا اسکریپت روی تعریف دقیق نوعهای دادهای میتواند چه مشکلاتی را برای شما بوجود بیاورد.
- نبود مکانیسم برای توسعه و نگهداری پروژههای بزرگ: جاوا اسکریپت راهکار و مکانیسم جامعی برای نگهداری و توسعه پروژههای بزرگ نداشته و به همین دلیل زمانی که پروژهتان بزرگتر شود، مدیریت کردن آن بسیار سخت میشود.
داستان TypeScript
در سال ۲۰۱۴ شرکت مایکروسافت زبان TypeScript را معرفی کرد که باعث شد تا اکوسیستم جاوا اسکریپت به صورت کامل دگرگون شود. تایپ اسکریپت یک زبان برنامه نویسی کاملا مستقل نبود بلکه براساس زبان جاوا اسکریپت ایجاد شد و یک هدف را دنبال میکرد: حل مشکلات عمومی جاوا اسکریپت. TypeScript با ظهورش مشکلاتی که در بالا به آن اشاره کردیم را حل کرده و یکی از اصلیترین دلایل محبوبیت بالای آن نیز همین موضوع است.
در زیر میتوانید میزان محبوبیت تایپ اسکریپت در سال ۲۰۲۲ را مشاهده کنید و ببینید که افراد بسیار زیادی در اکوسیستم جاوا اسکریپت از این زبان برنامه نویسی بجای جاوا اسکریپت (به صورت مستقیم) استفاده میکنند.
تایپ اسکریپت با وجود اینکه مشکلات بسیار زیادی را حل کرد، اما مشکلاتی را نیز ایجاد نمود که باعث شد تا یکسری مشکلات جدید را وارد اکوسیستم کند. یکی از اصلیترین این مشکلات بالا رفتن میزان زمان برای بارگذاری و اجرا شدن کدها بود.
مرورگرها نمیتوانند به صورت مستقیم تایپ اسکریپت را اجرا کنند. به همین دلیل نیاز است که ابتدا آن را به جاوا اسکریپت تبدیل کرده و سپس آن را اجرا نمایند. این موضوع باعث میشد تا زمان مورد نیاز برای اجرا یک برنامه افزایش پیدا کند.
حال امروز قصد داریم شما را با JSDoc آشنا کنیم که یک تکنولوژی نسبتا جدید بوده و قصد دارد برخی از مشکلات تایپ اسکریپت را حل کند.
JSDoc چیست؟
JSDoc یک سیستم Documentation برای جاوا اسکریپت است که روی استانداردتر و درستتر نوشتن جاوا اسکریپت براساس یکسری از الگوها تمرکز دارد. این سیستم براساس کامنتهایی که در خود سینتکس وجود دارد کار میکند.
سینتکس JSDoc روی چندین هدف و موضوع تمرکز دارد. برخی از این موارد را در زیر میتوانید مشاهده کنید:
- تعریف مقدار براساس نوع دادهای
- مشخص کردن نوع پارامترها و مقادیر برگشتی توابع
- مستندسازی و نوشتن اطلاعات راجع به شیوه استفاده از کدهای مختلف
- و...
JSDoc در مقابل TypeScript
هر دو تکنولوژی JSDoc و تایپ اسکریپت به دنبال حل مشکلاتی هستند که نوشتن جاوا اسکریپت خام منجر به آنها میشود. اما این موضوع بسیار مهم است که هر کدام از این تکنولوژیها روش متفاوتی برای حل این مشکل دارند و به همین دلیل هر کدام مزایا و معایب مربوط به خودشان را دارند. در ادامه با مزیتهای هر کدام به نسبت دیگری آشنا میشویم:
فواید JSDoc به نسبت TypeScript
- انعطافپذیری و سازگاری: JSDoc یک زبان یا تکنولوژی جدا از جاوا اسکریپت نیست. در واقع JSDoc همان جاوا اسکریپت است با این تفاوت که شما برای تعریف بخشهای مختلف از سیستم کامنتنویسی استفاده میکنید و از تکنولوژی جداگانهای مانند تایپ اسکریپت استفاده نخواهید کرد.
- حاشیه نویسی یا Code Annotation: JSDoc تنها یک ابزار Type Checking نیست بلکه میتواند برای تولید مستندات و تشریح چگونگی کارکرد بخشهای مختلف کدهایتان از آن استفاده کنید. تمام این موارد باعث میشود تا فرایند درک و نگهداری از کدها سادهتر شود.
- حذف زمان کامپایل: یکی از اصلیترین مزایای استفاده از JSDoc حذف کردن فرایند کامپایلینگ در تایپ اسکریپت است. همانطور که میدانید مرورگرها نمیتوانند به صورت مستقیم تایپ اسکریپت را اجرا کنند و برای اجرا شدن کدها نیاز دارند که ابتدا کدهای تایپ اسکریپت را به جاوا اسکریپت تبدیل کرده و سپس آن را اجرا کنند. این فرایند کمی طول میکشد و به همین دلیل سرعت اجرای کدهایتان کاهش پیدا میکند. اما JSDoc در داخل جاوا اسکریپت به صورت مستقیم تعریف میشود و در نتیجه هم سرعت توسعه و هم سرعت اجرای اپلیکیشنهایتان افزایش مییابد.
فواید TypeScript به نسبت JSDoc
در حالیکه JSDoc مزایای بسیار زیادی را وارد فرایند توسعه میکند اما مشکلاتی نیز داشته و به نسبت تایپ اسکریپت در مواردی ضعیف عمل میکند. برخی از اصلیترین این موارد را در ادامه مطالعه خواهید کرد:
- سیستم Static Type قدرتمندتر: تایپ اسکریپت یک مدل قدرتمند و جامع از تایپهای مختلف را ارائه میکند و همچنین امکانات کاملی برای Error Handling را ارائه میدهد. برخلاف JSDoc که سیستم تایپینگ آن در داخل کد جاوا اسکریپت تعریف میشود، تایپ اسکریپت به صورت مستقل عمل کرده و از یک سیستم منحصر به فرد استفاده میکند.
- وجود Type Interface: با وجود داشتن سیستم تعریف نوع دادهای، تایپ اسکریپت خودش نیز میتواند نوع دادهای یک متغیر را براساس مقدار انتسابی تعیین کند. این موضوع در برخی از موارد باعث میشود تا نیازی به تعریف صریح نوعهای دادهای نباشد و کدبیس سادهتری داشته باشیم.
- کامیونیتی و سازگارپذیری: تایپ اسکریپت خود را به سرعت با نسخههای جدید جاوا اسکریپت تطبیق میدهد و همچنین کامیونیتی قدرتمندتری به نسبت JSDoc در اختیار دارد. این موضوع باعث میشود که به نسبت JSDoc کمی دلسرد شویم.
در پایان
JSDoc به صورت رسمی به عنوان یک رقیب برای تایپ اسکریپت معرفی نشده و در همه حالتها نیز با تکنولوژی قدرتمند TypeScript رقابت کند. اما نیاز است که JSDoc را در عمل مشاهده کنیم و حداقل یک پروژه ساده را با آن پیش ببریم.
در این مطلب از وبسایت راکت ما با ساختار اجرایی جاوا اسکریپت، ظهور تایپ اسکریپت و دلایل آن، JSDoc و مزایای آن و... آشنا شدیم. اگر در زمینه کار با JSDoc تجربهای دارید و از آن استفاده کردهاید میتوانید از طریق دیدگاهها آن را با ما به اشتراک بگذارید.
دیدگاه و پرسش
برای ارسال دیدگاه لازم است وارد شده یا ثبتنام کنید
ورود یا ثبتنامدر حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید