سرآغاز معروفيت جاوا اسكريپت
جاوا اسكريپت اولين بار در ماه مي ۱۹۹۵ براي طراحي سايت توسط نتاسكيپ بهعنوان يك
زبان اسكريپتنويسي تكرشتهاي معرفي شد تا كمك حال مرورگر آنها باشد. معروفيت اين
زبان اسكريپتنويسي طي ۵ سال اخير بهواسطه چند عامل توسعه كليدي صورت گرفته است.
نمودار شكل ۱ دادههاي جمعآوري شده توسط ردمونك را نشان ميدهد كه در آن جاوا اسكريپت به نسبت
ساير زبانهاي مطرح و برجسته از محبوبيت بيشتري برخوردار بوده است. ابزار بهتر، پشتيباني و پيشرفت
بيشتر در اين زبان سبب شد تا بهآهستگي موقعيت خود را بهعنوان يك بازيگر شاخص در صنعت توسعه
نرمافزار مستحكم كند. براي نمونه در نمودار شكل ۲ كه توسط Githut ايجاد شده است،
وضعيت حضور زبانهاي برنامهنويسي در پروژههاي منبع باز را نشان ميدهد.
دلايل استفاده از جاوا اسكريپت
دليل نخست:
براي معماريهاي توزيعپذير مناسبتر است
يكي از بزرگترين مشكلات در زمان نوشتن يك نرمافزار، ضرورت نياز به دوبارهنويسي آن است.
بهمحض اينكه دوبارهنويسي اتفاق ميافتد، بلافاصله هزينههاي توسعه نيز افزايش پيدا ميكند،
زيرا هر تغييري كه در نسخه اصلي صورت ميگيرد بايد دو بار انجام شود. متأسفانه با فراگير شدن
معماريهاي توزيعپذير (براي مثال، اپليكيشنهاي يكصفحهاي و ميكروسرويسها) اين دوبارهنويسيها
شايعتر شده است و همين باعث پيچيدهتر شدن و سخت شدن نگهداري اپليكيشنها ميشود.
براي مثال، اجازه دهيد نگاهي به يك اپليكيشن تكصفحهاي داشته باشيم. در اينجا شما يك رابطه
كلاينت سرور داريد. در سمت كلاينت (همان مرورگر) شما نياز به ذخيره فهرستي از سياستگذاريهاي امنيتي
در برابر برخي از موارد پيش رو داريد. اين سياستگذاريهاي امنيتي بسيار حياتي هستند.
آنها ممكن است شامل مواردي باشند كه هم قابل پاك شدن و هم بهروزرساني هستند.
آنها به اين دليل مهم هستند كه شما نميخواهيد كارهايي كه انجامناپذير هستند
توسط كاربران قابل مشاهده باشد. مشكل اينجا است كه شما بايد اين اطلاعات را روي سرور نيز ذخيره كنيد.
زيرا اگر شما اين سياستگذاريها را روي سرور نيز اعمال نكرده باشيد،
هر فردي كه كمي با دانش فني آشنا باشد ميتواند درخواستهاي جعلي به آن ارسال كند.
بنابراين، شما در وضعيتي قرار داريد كه يك اپليكيشن مرورگر نوشته شده با جاوا اسكريپت داريد
كه سمت انتهايي (سرور) آن با چيزي شبيه جاوا نوشته شده است.
طراحي سايت در شكل ۳ نموداري را مشاهده ميكنيد كه هم سرور (در بالا) و هم كلاينت (در پايين) اطلاعاتي
يكسان را نگهداري ميكنند. از آنجا كه آنها با دو زبان مختلف نوشته شدهاند، اين اطلاعات بايد دوبارهنويسي شوند.
به سياستگذاريهاي امنيتي قرمز رنگ در هر دو ناحيه توجه كنيد.
يادگيري جاوااسكريپت براي توسعهدهندگان وب از نان شب واجبتر است!
وقتي مرورگر و سرور اطلاعات يكساني را ذخيره ميكنند، ناخودآگاه مشكل دوبارهنويسي پيش ميآيد
كه اغلب ناشي از استفاده از زبانهاي مختلف در سيستمهاي توزيع شده است.
تنها راه حل اين مشكل اين است كه در هر دو سمت از كدهاي مشترك استفاده كنيد.
اما چنين امكاني وجود ندارد، زيرا ما آنها را با زبانهاي مختلف نوشتهايم و جاوا اسكريپت
تنها زبان قابل فهم توسط مرورگر است.
شكل ۳
راه نجات:
جاوا اسكريپت سمت سرور
اكوسيستم جاوا اسكريپت بهسرعت در حال رشد است و اين سرعت با ظهور يك ابزار ميزباني سمت سرور
بهنام Node.js كه تحت موتور Google Chrome v8 اجرا ميشود، شتاب بيشتري گرفته است. نود به جاوا اسكريپت
اجازه ميدهد تا روي يك وب سرور اجرا شود. چنين قابليتي نهتنها گزينههاي طراحي و معماري نرمافزار را افزايش
ميدهد، بلكه با توجه به ماهيت عملكرد اين زبان مشخص شده است كه بسيار گسترشپذير است. خيلي از
شركتهاي بزرگ مثل نتفليكس و والمارت تصميم گرفتند بهجاي استفاده از گزينههاي معمول سمت سرور
مثل رابي، پياچپي، سي شارپ، جاوا وغيره معماريهاي پايه خود را با نود انجام دهند.
با در اختيار داشتن گزينه استفاده از جاوا اسكريپت در هر دو سمت معماري نرمافزار شما ميتوانيد
سيستمهاي توزيعپذيري را توسعه دهيد كه ميتوانند از ماژولهاي مشترك استفاده كنند.
در شكل ۴ نمودار قبلي گسترده شده است و نشان ميدهد اين سياستگذاريها (قرمز رنگ) حالا
در يك مكان واحد تثبيت شدهاند. استفاده از جاوا اسكريپت سمت سرور همچنين به طراحي ميكروسرويسها
نيز كمك ميكند، زيرا همان تكنيك يكسان را ميتوان براي ساخت ميكروسرويسهايي كه از كدهاي مشترك استفاده
ميكنند به كار گرفت.
شكل ۴
دليل دوم:
براي استفاده در سكوهاي مختلف بسيار كارآمد است
امروزه طرح تحول ديجيتال در بين سكوهاي مختلف به يك موضوع مهم تبديل شده است.
حالا ديگر برنامهنويس بايد بتواند يك بار كدنويسي و اپليكيشن خود را در هر محيطي مستقر كند.
جاوا اسكريپت بهآرامي در حال سازگار شدن با خيلي از سكوها است. حتي در سال ۲۰۰۷ جف آتوود
در يك پست وبلاگي معروف اعلام كرده بود كه جاوا اسكريپت درنهايت به هر اپليكيشني كه به آن اجازه دهد
وارد خواهد شد. او گفته بود: «هر اپليكيشني را كه بتوان با جاوا اسكريپت نوشت، سرانجام با جاوا اسكريپت
نوشته خواهد شد.»
جاوا اسكريپت در حال تبديل شدن به يك ابزار كامل است و از سه ناحيه عمده مورد علاقه توسعهدهندگان
يعني وب، دسكتاپ و موبايل پشتيباني ميكند. در ادامه نگاهي اجمالي به تنها چند نمونه از فريموركهايي كه
از جاوا اسكريپت بهعنوان يك زبان چندسكويي قدرت ميگيرند خواهيم داشت.
سكو موبايل (IOS و آندرويد) – React Native و NativeScript دو نمونه از فريموركهاي اصلي هستند
كه اجازه ميدهند كدهاي جاوا اسكريپت روي موبايل اجرا شود. React توسط فيسبوك براي سكوي موبايل
استفاده ميشد. سكوي دسكتاپ (مك و ويندوز) – NW.js و Electron به توسعهدهندگان اجازه ميدهد تا
مجموعهاي از ابزارهاي مورد نياز براي اپليكيشنهاي وب تحت سكوي دسكتاپ را در اختيار داشته باشند.
وب (تمام مرورگرها) – Angular و Meteor مثالهايي از فريموركهاي اپليكيشن تكصفحهاي هستند
كه از جاوا اسكريپت استفاده ميكنند و به اپليكيشنهاي تجاري پيچيده اجازه ميدهد تا داخل مرورگر اجرا شوند.
دليل سوم:
كاملاً گسترشپذير است
طراحي سايت جالب اينجا است كه بزرگترين نقطه ضعف جاوا اسكريپت حالا به يك قدرت چشمگير
براي آن تبديل شده است. تفاوت اصلي بين جاوا اسكريپت با اغلب زبانهاي ديگر مثل Ruby, Java و C# در
تكرشتهاي بودن آن است. اگر شما توسعهدهنده نباشيد، اين مسئله چندان اهميتي براي شما ندارد.
به همين دليل ما سعي ميكنيم تنها به توضيح مختصري درباره آن بسنده كنيم.
اغلب زبانها قابليتي دارند كه به آنها اجازه ميدهد تا بيش از يك مورد از خود را اجرا كنند. آنها دستورالعملها
را در يك فهرست بلند از كارهايي كه بايد انجام شود قرار ميدهند. سپس در فرآيند پردازشي اين دستورالعملها
يك به يك اجرا ميشوند. به چنين ساختاري فرآيند چندرشتهاي گفته ميشود و برنامهنويس در هنگام كدنويسي
ميتواند از مزاياي اين قابليت استفاده كند. از جمله قابليتهاي چندرشته بودن ميتوان به نوشتن وب سرورهايي كه
نياز به پردازش همزمان تعداد بسيار زيادي كاربر دارند اشاره كرد.
اما چنين امكاني معايب خاص خود را هم دارد: تمام اين جابهجايي بين پردازشها بهدليل نياز به ورود و خروج
مداوم دستورالعملها و وظايف به حافظه زمان پردازنده را هدر ميدهد.
جاوا اسكريپت ذاتاً يك ساختار تكرشتهاي دارد. به اين معنا كه برنامهنويس امكان بهرهمندي از قابليت
پردازش چندرشتهاي را از دست ميدهد و تمام كدهاي جاوا اسكريپت در يك رشته اجرا ميشوند.
از آنجا كه چنين ساختاري طراحان سيستم را محدود ميكند، آنها بايد كدها را بهگونهاي بنويسند كه فرآيند
پردازش را مختل نكند. نام اين راهكار معماري non-blocking است. چنين ساختاري كار را براي برنامهنويس مشكلتر
ميكند، زيرا آنها بايد كدهايي را بنويسند كه بهجاي دستورات خطي با رويدادها سر و كار دارد. نتيجه كار اين گونه
خواهد شد كه برنامهنويس بهجاي محيطهاي چندرشتهاي كه منابع در آن در يك صف پردازش قرار ميگيرند،
كدهايي را مينويسد كه بلافاصله منابع را آزاد و از مسدود شدن رشته توسط جاوا اسكريپت جلوگيري ميكند.
اين كار باعث افزايش قابل توجه عملكرد اپليكيشنهايي كه پردازشهاي سنگين را اجرا ميكنند ميشود
و آن را براي محيط وب ايدهآل ميكند. اين بار نيز چنين شيوهاي با معايبي همراه است. به همين دليل است
كه جاوا اسكريپت در انجام درخواستهايي كه نياز به نگه داشتن پردازنده براي انجام وظايف طولاني مدت دارند
خوب نيست. (براي مثال نوشتن دادههاي استريم شده طولاني روي ديسك يا پردازش گرافيك لحظهاي از قبيل
بازيهاي آنلاين)
ماهيت تكرشتهاي جاوا اسكريپت شيوهاي از طراحي نرمافزار را فراهم ميكند كه درنهايت باعث افزايش عملكرد و گسترشپذيري خيلي از پروژههاي نرمافزاري و خدمات تحت وب خواهد شد. چنين قابليتي جاوا اسكريپت را به يك ابزار قدرتمند براي استفاده در سازمانهايي كه به گسترش ترافيك خود با حداقل قيمت را دارند، تبديل كرده است
نتيجهگيري
در اين مقاله ما نگاهي به جاوا اسكريپت و سه قابليت جالب توجه در آن داشتيم. همين قابليتها بودند
كه اين زبان برنامهنويسي را تا اين اندازه معروف و محبوب كرده است. اين ويژگيها را ميتوان اين گونه خلاصه كرد.
جاوا اسكريپت سمت سرور: ميتوان آن را با استفاده از Node.js روي سرور اجرا كرد و امكان يكپارچهسازي
اپليكيشنها را بهشكل يك كد واحد فراهم ساخت. اين كار پيچيده شدن اپليكيشنهاي بزرگ را كم ميكند. طراحي و
معماريهاي پيچيده با اين روش بهتر قابل انجام است، زيرا ديگر مشكل دوبارهنويسي كدها را نخواهيم داشت.
پشتيباني ذاتي از چند سكو: با پيشرفت اين زبان حالا امكان پشتيباني از سكوهاي IOS، آندرويد و حتي محيط
دسكتاپ ويندوز و مك نيز فراهم شده است و حالا برنامهنويسان ميتوانند محدوديتهاي سازگاري برنامههاي خود
را كمتر كنند.
گسترشپذيري طراحي سايت در محيطهاي پرتراكم و سنگين: ماهيت تكرشتهاي جاوا اسكريپت شيوهاي
از طراحي نرمافزار را فراهم ميكند كه درنهايت باعث افزايش عملكرد و گسترشپذيري خيلي از پروژههاي نرمافزاري
و خدمات تحت وب خواهد شد. چنين قابليتي جاوا اسكريپت را به يك ابزار قدرتمند براي استفاده در سازمانهايي
كه به گسترش ترافيك خود با حداقل قيمت را دارند، تبديل كرده است.
- چهارشنبه ۱۷ مهر ۹۸ ۱۲:۰۸ ۹۷ بازديد
- ۱ نظر
چرا باید جاوا اسکریپت یاد بگیرید؟
جاوا اسکریپت برای دانشجویان و متخصصانی که می خواهند به یک مهندس نرم افزار عالی تبدیل شوند، ضروری است به خصوص اگر در زمینه توسعه وب کار می کنند. در ادامه برخی از مزایای مهم یادگیری جاوا اسکریپت آورده شده است.