حتماً شما هم مثل من روی پروژ های بزرگ کم کار نکردید. همیشه وسعت و بزرگی پروژه ها زمانی دردسر ساز شدن که ناهماهنگی بین ساختار و سیستم کدنویسی ها به وجود اومدن. عدم رعایت قواعد استاندارد، عدم توجه به صحت syntax کدها، عدم انتخاب مناسب بستر مناسب و ... از عواملی که در نهایت ممکنه به انجام پروژه اجرایی ختم بشه، ولی اینکه این پروژه رو که الآن شبیه یک غول بی شاخ و دم شده رو میشه کنترلش کرد، قضاوت با خودتونه.
این اتفاق در زبان هایی مثل جاوااسکریپت که ساختار کلاسی ندارند به طور فاجعه باری رخ میده و اگر کدها مدیریت نشن، در نهایت با فاجعه ای بدتر از هیروشیما روبرو میشیم!!! کدهایی که حتی نویسنده کدها هم جرأت بازنگری اون ها رو نداره.
شاید به نظرتون شبیه به تبلیغای تلویزیونی قرص های لاغری به نظر برسه که عکس یک کامیون گوشت رو نشون می دن و میگن قبل از استفاده و عکس یک نفر دیگه رو نشون میدن و میگن بعد از استفاده!!! ولی این رو به عنوان یک تجربه شخصی میگم. از روزی که با تکنولوژی Typescript آشنا شدم، از نوشتن کدهای سمت client واقعا لذت می برم. یادتون باشه که من دولوپر اندروید هم هستم و به نظرم کدهای سمت کلاینت بسیار شبیه به نوشتن کدهای اندروید هست.
ولی این Typescript چیه؟
اصلی ترین هدف توسعه دهنده های این کتابخونه، ایجاد بستر مبتنی بر کلاس برای نوشتن کدهای جاوااسکرپت هستش. این که بتونی خیلی شیک و مجلسی کدهایی بنویسی در قالب کلاس، از کلاس هایی که می سازی استفاده کنی و متدهارو فراخوانی کنی و از کدنویسیت لذت ببری. بعد این کدها رو کامپایل کنی، در هنگام کامپایل کدهارو خطایابی کنی و در نهایت یک کد شسته و رفته تحویل خلق الله بدی.
مزایای Typescript
- Syntax دقیقاً مشابه جاوااسکرپیت با تفاوت های بسیار کوچک که ساختار شی گرایی به سینتکس جدید تحمیل می کنه
- امکان انقیاد نوع به متغیرها
- امکان کامپایل کردن کدها و خطایابی قبل از اجرا
- سبک بودن (lightweight ) کتابخانه
- ایجاد بستر مناسب برای بازاستفاده ( reusability ) کدها
- افزودن امکان کدنویسی مبتنی بر کلاس در جاوااسکریپت
- عدم نیاز به کتابخانه در زمان اجرا ( کدها کامپایل شده و دیگر نیازی به بارگذاری کتابخانه در سمت کلاینت نیست )
- ایجاد بستر مناسب برای مدیریت پروژه های بزرگ و کدها فراوان از نوع اسپاگتی!!!
- امکان بهره وری از امکانات کدنویسی و پیشنهاد کد در ابزارهایی مثل phpstorm و visual studio
- قابلیت کامپایل کردن کدها به صورت مینیمال جهت کاهش حجم فایل های نهایی
معایب Typescript
- انعطاف پذیری کمتری نسبت به کدنویسی در جاوااسکریپت دارد
- نیاز به کامپایل کردن کدها برای اجرا در مرورگرها
البته باید این رو هم بگم که با توجه به این که Angular2 سازگاری 100 درصدی با این تکنولوژی داره، لازم دونستم این مطلب رو با دوستان به اشتراک بذارم. چون مطالب بعدی من حول تکنولوژی Angular2 خواهد بود.
به امید بهروزی برای همه دوستانم.
پچاز