آشنایی با فریم ورک های جاوا اسکریپت

چهارشنبه 8 خرداد 1398

فریم ورک های جاوا اسکریپت بسیار کارامد و کاربردی می باشند، در این مطلب قصد داریم نکاتی جدید و نو را درباره فریم ورک های جاوا اسکریپت برای شما بیان کنیم.

 آشنایی با فریم ورک های جاوا اسکریپت

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

یک درخواست humble HTTP را در نظر بگیرید، این درخواست یک تابع پنجاه خطی خوب برای یک درخواست ساده GET می باشد که هم در اینترنت اکسپلورر و هم در مرورگر فایرفاکس کار می کند. برای مثال در این جا یک تابع ساده را آورده ایم که عملیات POST را به خوبی انجام می دهد، ما بیش از یک سال است که از این تابع در محصولات خود در React data pump استفاده می کنیم.

function postMe(name, data, callback, onError) {

   var request = new XMLHttpRequest();

   request.onreadystatechange = function() {

      if (request.readyState != 4 || request.status != 200) { return; }

      var body = JSON.parse(request.responseText);

      if (body.error) {

          onError(body.error);

      }

      else {

          callback.(body);

      }

   };

   request.open("POST", '/api/' + name, true);

  request.setRequestHeader("Content-type", "application/json");

   request.send(JSON.stringify(data));

}


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

این فریم ورک یکی از فریم ورک های جاوا اسکریپت است که به عنوان یک فریم ورک کوچک فعالیت می کند و برای کار با Promise ها بسیار مناسب می باشد، این فریم ورک جاوا اسکریپت برای انواع درخواست ها سازگار می باشد و تعداد زیادی از ویژگی هایی که برای برنامه شما لازم و ضروری می باشد را پشتیبانی می کند. آیا این خوب است؟ آیا به خوبی مهندسی شده است؟ آیا به اندازه کافی قدرتمند است؟ این یکی از فریم ورک های جاوا اسکریپت است که در زمان حال مورد نیاز ما است بنابراین صحبت از این که آیا در آینده فریم ورکی قوی تر از این نوشته می شود یا نه و یا این که چرا اصلا از این فریم ورک استفاده می کنیم مورد بحث ما نیست. اگر شما نمی خواهید که برنامه درخواست HTTP خود را بنویسید گزینه های زیادی وجود دارند که می توانید از آن ها استفاده کنید، البته استفاده از آن ها هزینه هایی را برای شما دارد، یک مسئله مهم سایز فریم ورک های جاوا اسکریپت است که شما از آن ها استفاده می کنید، مسئله دیگر این است که فریم ورک های جاوا اسکریپت که مورد استفاده قرار می دهید را چگونه در کد خود بگنجانید و این که این فریم ورک چگونه بر روی کدهای شما تاثیر می گذارد، هر یک از فریم ورک های جاوا اسکریپت که مورد استفاده قرار داده اید چه کارهای اضافه ای را انجام می دهند و چقدر از شما اتلاف وقت می کنند؟ اگر من یک ساعت زمان صرف کنم( که همان زمانی است که برای اجرا و تست گرفتن از کدها صرف می کنم ) استفاده از این تابع که تمامی نیازهای من را برطرف می کند در زمان نیز صرفه جویی می کند؟

این چنین سوالاتی می تواند برای شما بسیار مفید باشد.


همه چیز برای همه مردم

ما سعی می کنیم از خدماتی استفاده کنیم که در موارد بسیاری بتوانیم از آن برای موارد مختلف استفاده کنیم، در واقع این یک حقیقت غیر قابل انکار می باشد، ارائه یکی از فریم ورک های جاوا اسکریپت که API های مختلفی را جمع آوری کرده باشد منافع بسیار زیادی را برای جامعه برنامه نویسان وب دارد، زیرا انجام دادن بعضی کارها به تنهایی و بدون فریم ورک های جاوا اسکریپت کار سختی می باشد، جی کوئری اختراع شد چرا که مرورگرها فعالیت های گسترده ای را انجام می دادند در حالی که API جاوا اسکریپت نمی توانست بسیاری از آن ها را کنترل کند. زمانی نیز وجود داشت که هر web dev یک جی کوئری داشت که آن ها می توانستند DOM یا همان document object module را انتخاب کنند و تاثیر بسیار زیادی بر روی زمان لود شدن یک صفحه اینترنتی بگذارند. اکنون مثالی که در ادامه بیان می کنیم را در نظر بگیرید.


مثالی برای توضیحات بالا

// Author's note, this is mostly for example, don't manipulate DOM unless you know what that means for your app


var el1 = document.getElementById(id_Name);

var el2 = document.getElementsByClass(class_Name); // returns array

var el3 = document.querySelector("div.user-panel.main input[name='login']");


// Want it in a jquery style function name?


var $ = document.querySelector; // Or get fancier if you wish

var el4 = $("div.user-panel.main input[name='login']");

ما هنوز در بسیاری از موارد از جی کوئری استفاده می کنیم، به نظر من امروزه بسیاری از کارها بدون استفاده از فریم ورک های جاوا اسکریپت و جی کوئری امکان پذیر نیست.


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

تنها موضوعی که وجود دارد این نیست که چگونه و چه زمانی از فریم ورک ها استفاده کنیم، در واقع مسئله اصلی این است که ما چگونه رویکرد مناسبی را انتخاب کنیم و ویژگی ها و فریم ورک های جاوا اسکریپت را به آن اضافه کنیم. به عنوان مثال Google Visualization integration در فریم ورک انگولار که یکی از بهترین فریم ورک های جاوا اسکریپت است را در نظر بگیرید، در MobileSense ما به شدت به نمودارها برای گزارش دادن به تیم های مدیریتی نیاز داریم اما ما از انگولار نسخه 1.5 استفاده می کنیم، با این وجود چگونه از به روزرسانی های جدید برای نمودارهای برنامه خود استفاده کنیم؟ یکی از گزینه های ما برای این کار استفاده از angular google chart می باشد، اگر چه این کتابخانه یک کتابخانه فانکشنال می باشد اما من آن را در بسیاری از موقعیت ها استفاده کرده ام و از نویسنده آن نیز نهایت قدردانی را به عمل می آورم.


چه زمانی ما باید از فریم ورک ها استفاده کنیم و چه زمانی نباید استفاده کنیم؟

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

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

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

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید