jQuery : خوب، بد، زشت
jQuery بزرگترین کتابخانه جاوااسکریپت متن باز و سازگار با CSS3 است که قابلیت اجرا روی تمام مرورگرها را دارد و اسکریپت نویسی سمت سرویس گیرنده را تا حد قابل توجهی ساده کرده است. قواعد jQuery ساده است و می تواند مانند فلش انیمیشن های زیبایی تولید کند ولی بر خلاف فلش ، jQuery در iOS قابل مشاهده است و صفحات وب دینامیک را به راحتی ایجاد می کند. jQuery به سرعت در حال کسب محبوبیت است و به نظر می رسد با این گسترش استفاده ، زمان مناسب برای صحبت در مورد آن ، به ویژه برخی از جوانب مثبت و منفی آن فرا رسیده است.
خوب
احتمالا بهترین مورد در رابطه با jQuery این است که برای برنامه نویسی سمت سرور نیازی نیست که یک برنامه نویس حرفه ای باشید.
معمولا بیشتر از یک راه برای انجام یک کار وجود دارد، اما قابلیت افزودن plug-in به بالای کتابخانه اصلی، jQuery را فوق العاده انعطاف پذیر می کند و به عنوان راه حلی سریع در بالای لیست راه حل ها را قرار می گیرد. در بعضی از موقعیت ها استفاده از CSS ممکن است انتخاب بهتری باشد اما اگر توانایی های برنامه نویسی شما محدود تر هستند، استفاده از jQuery به شما کمک خواهد کرد تا کارتان را انجام دهید.
توسعه وب اغلب فرایندی است که با کمبود زمان مواجه است وصرفه جویی دقایق یک ضرورت است. John Resing (خالق و توسعه دهنده jQuery ) و دیگر توسعه دهندگان وب در پروژه jQuery این ضرورت را درک کرده اند وفهمیده اند که زمان کمتر برای اجرای هر پروژه غالبا به معنی در آمد بیشتر است.
کدهای طولانی جاوا اسکریپت ، پیچیدگی اجرای CSS و اشکالات کاملا علنی فلش ، jQuery را به راه حلی کاربردی در بسیاری از مسائل رایج مانند کنترل وقایع ، تعاملات ajax و انیمیشن ، تبدیل کرده است.
مایکروسافت و نوکیا دو تا از پشتیبانان jQuery هستند و قصد به کار گیری آن در پلت فرم های جدید شان را دارند و این مساله آینده ای روشن را برای jQuery نوید می دهد. بعلاوه تقریبا همه طرفداران پروژه های متن باز پشتیبان jQuery هستند چرا که:
• دارای انجمن های عالی است.
• کار کردن با DOM را راحت کرده است.
• با AJAX به خوبی اجرا می شود.
• به سادگی با آن می توان انیمیشن ساخت.
• دارای پلاگین های متعدد است.
• خطاهایش به سرعت شناسایی و اصلاح می شوند.
پروژه های متن باز ضمن اینکه رایگانند، رشد سریع و پویا را ممکن می سازند . در واقع رایگان به معنی اجتماعی از ذهن های بسیار گسترده تر و دقیق تر نسبت به توسعه دهندگان محدودی که یک شرکت دارد.
هسته jQuery توسط عده ای با ذهن های مستعد در تجارت طراحی شده است و توسعه آن بسیار سریع است.
بد
پروژه های متن باز مشکلات خودش را هم دارد: به طور مثال همه چیز بر اساس استاندارد مشترکی ساخته نشده است. تا زمانی که مشتری شما و یا خودتان زمان و پول برای سرمایه گذاری بر روی افزایش سرعت کد داشته باشید ،مشکلی پیش نمی آید ، اما اگر زمان، پول، توانایی یا هر سه مورد محدود باشند ، دچار مشکل خواهید شد.
آخرین ورژن jQuery (ورژن ۱.۷.۲) تقریبا ۷ ماه پیش منتشر شده است. بنابراین قابلیت پیدا کردن راه حل های متداول دقیقا برای موضوع مورد نظر از انجمن های آن تا حدودی کم شده است و به احتمال زیاد گاهی اوقات از پشتیبانی مورد نظر برخوردار نخواهید بود. مشکل اصلی دیگر با jQuery وجود نسخه های متعدد است. بعضی نسخه ها با بقیه به خوبی کار می کنند و بعضی نه. به طور مثال سازگاری مرورگر با انیمیشن ها یک مشکل قدیمی بوده است. استفاده از آخرین ورژن به روز شده jQuery بسیاری از مشکلات مربوط به انیمیشن های jQuery را حل می کند، با این حال شما دو انتخاب دارید، یا کتابخانه خودتان را بارگذاری کنید و مرتبا آن را به روز کنید یا کتابخانه را از گوگل بارگذاری کنید و ریسک ناسازگاری نسخه جدید با کد خود را بپذیرید.
ابزار کنترل AJAX ، کنترل های سمت سرور را فراهم میکند. این امکان به توسعه دهندگان وب قدرت و انعطاف پذیری بیشتری می دهد ، ولی AJAX در مقایسه با jQuery بزرگ و حجیم است، در صورتی که jQuery به توسعه کدهای سبک ادامه می دهد و احتمالا برنده این رقابت خواهد بود، به خصوص که پشتیبانی مایکروسافت را نیز دارد. با پشتیبانی از jQuery، مایکروسافت به طور کامل، MicrosoftAjax.js را کنار می گذارد.
در مجموع ، نتایج به دست آمده در مورد استفاده از jQuery در مقایسه با XML واقعا جالب هستند، تعداد کم خطوط کد که راحت به نظر می رسند. اگرچه کنترل های AJAX و jQuery مشترک هستند ولی جنبه منفی اش این است که باعث میشود غیر حرفه ای بودن یک برنامه نویس مشخص می شود. به طور مثال درک تفاوت اساسی بین درخواست های GET و POST بسیار ضروری است و طراحانی که هنوز فاقد این اطلاعات ضروری هستند ، ا نتظار دارند که jQuery ضعف آن ها را بپوشاند. هنوز مسائلی وجود دارد که ممکن است طراحان از آن ها آگاه نباشند. به طور مثال درخواست های GET از نظر طول می توانند محدودیت داشته باشند و بسیاری از برنامه نویسان بی تجربه برای حل این موضوع به راحتی استفاده از POST را جایگزین آن می کنند. این ایده بدی به نظر می رسد چراکه متد GET تغییرات پایداری در سرور ایجاد نمی کند، در حالی که متد POST این طور نیست. متد POST یک دستور نیست که مرتبا تکرار شود و هنوز گاهی ناخواسته به کار گرفته می شود.
یکی دیگر از مسائل رایج سمت سرور مربوط به jQuery استفاده از $.get به جای $.getJSON (javascript object notation) است. استفاده نکردن از $.getJSON برای انتقال داده می تواند مشکلات بسیاری را ایجاد کند. گرچه استفاده از jQuery کار را آسان تر می کند ولی همیشه راحتی و آسانی کار به معنی صحیح بودن آن نمی باشد.
استفاده از jQuery نیازمند یک تعهد به انجمن های آن است . چرا که سریع بودن توسعه گرچه هیجان آور است اما می تواند دوباره منجر به مسائلی مرتبط با زمان شود. .توسعه در بعضی از قسمت ها چنان سریع است که اگر توسعه دهنده به طور مرتب در انجمن ها شرکت نکند و مسائل مربوط را دنبال نکند، به راحتی از گروه توسعه دهندگان jQuery فاصله می گیرد. این پیگیری و تعهد برای توسعه دهندگانی که باید به طور همزمان حواسشان به تجارتشان، ارتباط با مشتریان متعدد ، پیاده سازی SEO، بازاریابی محتوا و … باشد ، کمی دست و پاگیر است. در صورتی که قصد دارید در لیست به روزترین توسعه دهندگان jQuery باشید، ضروری است که ارزشیابی واقع بینانه ای از سطح توانایی و زمان خود داشته باشید.
و اما زشت
دو مسئله مهم در ارتباط با jQuery که همچنان باقی است، مسئله سرعت و به هم ریختگی ( کد اسپاگتی ) است. jQuery هم ممکن است کند باشد و گاهی اوقات برای انیمیشن بسیار کندتر از css می شود. در یک سایت بزرگ و پیچیده حتی کسری از ثانیه هم ارزشمند است. دلیل این امر دو مورد است: دستکاری های چندگانه DOM که بیشتر از دلیل دوم عامل کند شدن سایت می شود. و دلیل دوم این است کهCSS برای انیمیشن ها از انتقالات سمت مرورگر استفاده می کند که با C++ نوشته شده است و این CSS را کمی سریع تر از جاوا اسکریپت می کند.
اگر شما هنوز با به هم ریختگی کد jQuery برخورد نکردید، در آینده با آن مواجه خواهید شد. بزرگترین ویژگی jQuery ، آسان تر کردن استفاده از جاوااسکریپت است که با استفاده ازDOM و انتخاب گرهای CSSبه این امر کمک می کند و با کارایی شگفت انگیزی این کار را انجام می دهد. بدیهی است که jQuery به عنوان یک فریم ورک برای تعاملات سمت سرویس گیرنده در نظر گرفته نشده است و وقتی به درستی به کار گرفته نمی شود، به خصوص هنگام استفاده از انتخابگرهای CSS ، نتیجه نهایی می تواند کدی باشد که در فایل js با سایز فوق العاده بزرگ در حال رشد است تا وقتی که دیگر نگهداریش غیر ممکن شود. استفاده از فراخوانی های زیاد، ایجاد تغییرات گرافیکی و نامگذاری های عمومی می تواند نگهداری یک سایت jQuery را به یک کابوس تبدیل کند.
انجمن jQuery مسائل مربوط به هم ریختگی کد jQuery را مورد بررسی قرار می دهد. Cedric Dugas (یکی از توسعه دهندگان jQuery ) سطح آگاهی را در مورد به هم ریختگی کد jQuery بالا برد .او سعی کرد به دیگر برنامه نویسان یادآوری کند که به بهترین نحو از jQuery استفاده کنند تا از به هم ریختگی کد جلوگیری کنند. او به عنوان یک طراح معتقد است برای درست به کار بردن jQuery باید جاوا اسکریپت را بدانید و بفهمید . Copy و Paste کردن کد بدون درک، قطعا مشکلاتی را ایجاد می کند. اگر چه این می تواند برای مدتی کار کند اما می تواند باعث ایجاد مسائل مربوط به اصلاح ونگهداری در درازمدت شود.
استفاده از یک فریم ورک خوب می تواند به جلوگیری از ایجاد کد اسپاگتی در jQuery کمک کند. متاسفانه فریم ورک ها امکانات جدیدی هستند و انتخاب یک فریم ورک خوب زمان می برد .در حال حاضر فریم ورک های بسیاری وجوددارند که به دنبال استفاده از الگوی برنامه نویسی سه لایه برای برنامه های سمت سرویس گیرنده هستند. .Backbone.js در حال حاضر محبوب ترین فریم ورک است ولی چندین رقیب جدی هم دارد.
و در انتها :
jQuery یکی از بهترین کتابخانه های موجود است که میتواند نوشتن جاوا اسکریپت را بسیار راحت کند.اگر چه،مانند بسیاری از ابزارها، jQuery وقتی توسط حرفه ای ها استفاده شود در بهترین حالت خودش است. اما آیا همه ما حرفه ای هستیم؟ البته که نه. آیا حرفه ای نبودن به معنای استفاده نکردن از jQuery است؟ البته که نه. ولی برای استفاده بهتر و کارایی بیشتر jQuery کمک گرفتن از یک برنامه نویس حرفه ای در اکثر مواقع ایده خوبی به نظر می سد.
ممنون… خیلی مفید بود