تایپ اسکریپت(Typescript) چرا و چه زمانی؟

در این مقاله به بررسی این مفهوم می پردازیم که از تایپ اسکریپت (Typescript) چرا و چه زمانی باید استفاده کنیم و استفاده از آن چه مزایای برای ما و تیم توسعه خواهد داشت.
JavaScript در پنج سال گذشته زبان اصلی برنامه نویسی من بوده است. من از برنامه نویسی با JavaScript لذت می برم و تا همین اواخر هیچ دلیلی نمی دیدم که چرا از آن دور می شوم. من نمی فهمیدم که چرا سرعت و چابکی که جاوا اسکریپت به ارمغان می آورد ممکن است برای من مشکل ایجاد کند!
من ماهیت پویای JS را دوست دارم. این به من امکان می دهد راه حل های جدید را به سرعت پیاده سازی کنم. فکر من این بود که انواع داده ای و بررسی آن ها باعث کندی و بهره وری کمتری می شود.
اخیراً نظرم تغییر کرده است، و در آخرین پروژه های خود، Typescript و مزایای آن را بیشتر و بهتر درک می کنم.
در این مقاله، من دلایلی که باعث شد تا نظرم را درباره TypeScript تغییر دهم توضیح می دهم و فکر می کنم بسیاری از پروژه ها با جایگیزین کردن typescript از مزایای بیشتری در مقابل javascript بهره مند می شوند.
چرا و چه زمانی باید از تایپ اسکیرپت (Typescript) استفاده کنیم؟
کار انفرادی :
من فکر می کنم که جاوا اسکریپت هنگامی که به تنهایی کار می کنید و یا به شکل بهتری فریلنسر هستید برای پروژه کافی باشد. ما برای تیم ها و توسعه تیمی بهینه نیست. جاوا اسکریپت برای توسعه سریع مناسب است. هنگام کار انفرادی، اگر درک کد برای دیگران سخت باشد چندان اهمیتی ندارد.
شما به عنوان تنها نویسنده کد، این شانس را دارید تا بتوانید آن را به خوبی درک کرده ودر توسعه و نگهداری آن چالشی نداشته باشید. جاوااسکریپت امکان توسعه سریع را تا حدودی فراهم می کند زیرا برای نوشتن به هیچ نوع یا رابطی احتیاج ندارد.هیچگاه برای نوشتن انواع داده ای وقت خود را هدر نمی دهید.
در گذشته، من کدهای قابل توجهی را با استفاده از جاوا اسکریپت پیاده سازی و سالها آنها را نگهداری کرده ام. این به خوبی کار می کند زیرا من تنها کسی هستم که در این پروژه ها فعالیت داشته ام و تمامی آن ها را در قالب پروژه های فریلنس توسعه داده ام بدون اینکه حتی یک نفر در توسعه آن ها با من مشارکت داشته باشد.
کار تیمی :
من اخیراً کار بر روی یک کد بزرگ جاوا اسکریپت را شروع کردم که طی چند سال توسط یک توسعه دهنده تألیف شده بود. وظیفه من اجرای یک پیشرفت کوچک برای آن بود اما قادر به انجام آن نبودم زیرا درک اینکه چه چیزی در کد اتفاق می افتد برای من خیلی سخت بود.
به طور واضح ، توسعه دهنده اصلی همچنان قادر به ایجاد تغییراتی در آن بود، اما برای من کد همچنان به طرز عجیبی غیرمنطقی بود. نجوه توسعه و کدنویسی آن به شکلی بود که به شدت من را درگیر می کرد و درک خوبی از اتفاقاتی که در کد می افتاد نمی داد.
پس تصمیم گرفتیم بیس پروژه را به تایپ اسکیرپت (Typescript) تغییر دهیم و به همین دلیل برای این کار دو بخش اصلی را برای این کار در نظر گرفتیم:
- Interfaceها برای انواع پیام ها. این پروژه از سیستم پیام رسانی استفاده می کند و چندین نوع پیام مختلف بین ماژول ها و توابع ارسال و دریافت می شود.
- Interfaceها برای انواع داده ای. درست مانند شی message، این رکوردهای DB نیز بین ماژول ها و توابع منتقل می شوند.
این انواع داده ای درک کد را آسان تر می کند. از طریق نوع داده می توانید بلافاصله متوجه شوید که این تابع چه داده هایی را می گیرد. Interfaceها ساختار و تایپ تمام پارامترهای پیچیده را توصیف می کنند. برای تشخیص اینکه این اشیا پیچیده از چه زمینه هایی تشکیل شده اند، نیازی به فراخوانی یا اجرای عملکرد آن واحد نیست.
درک مشترک از کد هنگامی که به صورت تیمی کار می کنید حیاتی می شود. همچنین اضافه کردن اطلاعات برای انواع داده ای مورد استفاده در پروژه درک بیشتری به وجود می آورد.
خطای کمتر :
اطلاعات یک type خاص توسط کامپایلر TypeScript بررسی می شود. کامپایلر به شما می گوید چه زمانی کد شما از type تعریف شده دچار اشکال است. این یک مزیت کلاسیک است که بررسی انواع داده ای به ارمغان می آورد:
گرفتن اشکالات در مراحل توسعه. به جای اینکه مشتریان هنگام بررسی برنامه خود، آنها را پیدا کنند، اشکالات را در طول توسعه پیدا کرده و برطرف می کنید.
به طوری که Airbnb با اضافه شده تایپ اسکیرپت (Typescript) به روند توسعه برنامه هایشان از کاهش 38 درصدی اشکلات اشاره می کند.
کامپایلر تایپ اسکیرپت (Typescript) دارای یک option کی باشد که بررسی انواع داده ای را با حساسیت بیشتری انجام می دهد. با فعال بودن این گزینه، مشکلات بالقوه بیشتری را به نمایش می گذارد.
هرچند بهتر است هنگامی که می خواهید در پروژه های موجود JS از TypeScript استفاده کنید از حالت دقیق استفاده نکنید. در این به اصطلاح مهاجرت به تایپ اسکریپت (Typescript)، اگر تصمیم بگیریم بررسی های دقیق را انجام دهیم ، قبل از اینکه کامپایلر برای تولید یک برنامه قابل اجرا به اندازه کافی سریع و خروجی مطلوبی داشته باشد، کارهای بیشتری باید انجام شود.
برنامه نویسی شی گرا به جای برنامه نویسی تابعی :
طی دو سال گذشته، من یاد گرفته ام که از برنامه نویسی تابعی در پروژه های JS خود استفاده کنم. البته کمی نگران بودم که تایپ اسکیرپت (Typescript) مناسب برنامه نویسی تابعی نباشد. فکر ناآگاهانه من این بود که TypeScript کد من را به جاوا شبیه می کند، جایی که همه چیز براساس کلاس است و همه چیز باید یک شی باشد. معلوم می شود نگرانی های من بی دلیل بوده است. تایپ اسکیرپت (Typescript) یک سطح بالاتر از جاوا اسکریپت ساخته شده است و همه کارهایی که می توانم با JavaScript انجام دهم در TypeScript نیز قابل انجام است. من مجبور نیستم از کلاسها استفاده کنم، یا typeها را برای همه متغیرها تعریف کنم. تایپ اختیاری است و در مناسب ترین حالت ممکن می تواند اضافه شود.
نتیجه گیری:
چه زمانی باید از typescript استفاده کنیم؟
- زمانی که یک مدل داده ای غنی دارید که در آن اشیا داده ای بین ماژول ها و توابع منتقل می شوند
- زمانی که بیش از یک توسعه دهنده دارید که بر روی پروژه کار می کنند.
- زمانی در حال ایجاد یک کتابخانه منبع باز هستید.به همین منظور کتابخانه ها به نوع نویسی TypeScript نیاز دارند تا افراد بتوانند از آن در پایه کد خود استفاده کنند.
چرا از typescript استفاده کنیم؟
- بررسی انواع داده ای اشکلات برنامه را سریع تر نشان می دهد.
- این کار با افزایش قابل درک بودن و قابلیت نگهداری کد، کار گروهی را امکان پذیر می کند. به همین دلیل، سرعت بخشیدن به اعضای جدید تیم، نیز سریعتر است.
چه زمانی بهتر است از javascript استفاده کنیم؟
- شما توسعه دهنده های باتجربه ای را دیده اید که با استفاده از TDD کدها را بررسی می کنند که یک راهکار معقول می باشد
- نمونه های اولیه از هر برنامه ای با جاوااسکریپت سریع توسعه داده می شوند.
برای آشنایی بیشتر با تایپ اسکیرپت (Typescript) می توانید مقاله typescript چیست؟ را مطالعه کنید و یا برای یادگیری دقیق آن در دوره آموزش تایپ اسکریپت(typescript) شرکت نمایید.
دیدگاهتان را بنویسید