دنیای توسعه وب همواره در حال تغییر است و دنبال کردن این تغییرات خود یک چالش محسوب می شود. کدام چارچوب ها در سال ۲۰۱۹ کارا خواهند بود؟ و کدام زبان برنامه نویسی برای وب اپلیکیشن شما مناسب خواهد بود؟ بیایید بر این ۶ تکنولوژی توسعه وب نگاهی بیندازیم. در این مقاله ما تکنولوژی های فرانت اند و بک اند را از هم جدا کردیم. با سه چارچوب توسعه فرانت اند شروع می کنیم و سپس به سراغ سه چارچوب توسعه بکند می رویم.
چارچوبهای فرانت اند
۱. React.js
با استفاده از ری اکت،توسعهدهندگان میتوانند کامپوننتهای را ایجاد کنند که قابلیت استفاده مجدد دارند،که هر یک دارای وضعیت یا «state» خود است. اگر یکی از کامپوننت ها نیاز به بروزرسانی در صفحه داشته باشد (مثلاً زمانی که کاربر بر روی کلید لایک کلیک می کند) تنها همان بخش توسط ریاکت تغییر می کند (مثلاً رنگ کلید عوض میشود) بدون نیاز به بارگذاری مجدد کل صفحه. ری اکت برای انجام این کار از یک «DOM» مجازی استفاده میکند. این «DOM» مجازی نماینده یک رابط کاربری ذخیره شده در حافظه است که همواره در حال همگام سازی با «DOM» حقیقی است. نوع مرورگر مورد استفاده شما مهم نیست، «DOM» مجازی ریاکت به دلیل استفاده از روشهای کارآمدتر، سریع تر عمل می کند. چند سالی است که کمپانی های بزرگی مانند Airbnb و Netflix از React استفاده میکنند و می بینیم که این تکنولوژی در حال گسترش به کمپانی های بیشتری نیز است. علاقه به React در میان توسعه دهندگان بسیار زیاد است و این باعث محبوبیت هرچه بیشتر آن در سال های آینده می شود. علاوه بر ریاکت، React Native نیز وجود دارد.چارچوبی که به شما اجازه می دهد تا با یک بار برنامه نویسی یا کدنویسی بتوانید اپلیکیشن هایی برای پلتفرم های اندروید و ios تولید کنید. چارچوبی که از نظر فنی پایه ی کسانی مانند روی عکس دارد،آنچنان در میان توسعهدهندگان محبوب شده است که میتوانند علاوه بر وب سایت و وب اپلیکیشن، اپلیکیشن های موبایلی را تولید کنند.
۲. Vue.js
یکی دیگر از ابزارهای جدید توسعه فرانت اند Vue.js است. چارچوبی برای جاوا اسکریپت با جامعهای روبه رشد برای علاقه مندان به توسعه، با مستندات و جزئیاتی دقیق. Vue.js انتخاب مناسبی برای توسعه دهندگانی است که میخواهند چارچوب جدیدی را امتحان کنند. به دلیل شباهت زیاد از نظر معماری به ریاکت و انگولار گذر به این چارچوب آسان است. به دلیل حجم بسیار کم(در حدود ۲۰ کیلو بایت)، سرعت و انعطاف پذیری، Vue.js در مقایسه با دیگر چهارچوبهای فرانت اند عملکرد بهتری را نشان داده است. در مقایسه با انگولار و ری اکت سهم Vue.js از بازار بسیار کم است. به همین دلیل پیدا کردن توسعه دهندگانی که تجربه کار با Vue.js را داشته اند نسبتا دشوار است.
۳. jQuery
اما جی کوئری چطور؟ به نظر میرسه که جامعه توسعهدهندگان در حال رفتن به سمت کتابخانه های جاوا اسکریپت مشهورتر هستند. یکی از این دلایل ممکنه این باشه که جی کوئری همراه خوبی برای کتابخانهها ای مثل ری اکت نیست. مرورگرهای مدرن امروزه بسیاری از عملکرد هایی که در جی کوئری وجود داشته را پشتیبانی می کنند، در نتیجه در برخی موارد استفاده از جی کوئری اضافه کاری حساب میشه.به همین دلیل دیده میشه که خیلی ها به سمت جاوا اسکریپت خام رفتند. مثلاً گیت هاب اخیراً اعلام کرد که تمامی کدهای جی کوئری را با جاوا اسکریپت خام جابه جا کرده اند. شاید جی کوئری انتخاب اول برای راه اندازی یک پروژه جدید نباشداما با ۳۰۰ هزار دانلود در روز سهم بزرگی در بازار دارد. و حتی میتوان گفت که ۹۰ درصد از پانصد هزار سایت برتر دنیا هنوز از جی کوئری استفاده می کنند. انتخاب یک کتابخانه خاص کاملاً به پروژه ای که میخواهید با آن کار کنید مرتبط است. تغییرات در توسعه فرانت اند با سرعت زیادی در حال رخ دادن است و دنبال کردن همه آنها قطعاً امکان پذیر نیست اما با بررسی و فهمیدن مهمترین چارچوب ها میتوانیم با دیدگاه و انتخاب بهتری پروژه جدید خود را شروع کنیم.
هر یک از چارچوب ها و کتابخانه ها دارای فلسفه و قدرت خاص خود هستند اما یک چیزی که می توانیم از آن مطمئن باشیم این است که پایه همه آنها برای توسعه، جاوا اسکریپت است. بنابراین تیم های توسعهای که دانش و تجربه استفاده از جاوا اسکریپت را دارند میتوانند وب سایت ها و اپلیکیشن های مدرن را با جاوا اسکریپت اجرا کنند.
چارچوبهای بکند
۴. Kotlin
یکی از زبانهای برنامه نویسی که در سال های اخیر به شدت رشد پیدا کرده کاتلین است. این زبان یکی از جایگزین های جاوا است که می توان به سادگی آن را یاد گرفت.این زبان منبع بازه زمانی رشد آن افزایش پیدا کرد که گوگل رسما اعلام کرد که از آن برای برنامه نویسی اندروید پشتیبانی می کند. کمپانی های زیادی شروع به استفاده از کاتلین کردند مانند اسلک و نتفلیکس. نظر راب فلچر یکی از برنامه نویسان ارشد نت فلیکس: درسته که کاسپین انقلاب ایجاد نمی کند اما بهترین ویژگیهای دیگر زبان های برنامه نویسی را در خود جمع کرده است.
در تحقیقی که صورت گرفت نشان میداد که در اوایل تنها توسعهدهندگان با تجربه از این زبان استفاده می کردند. اما از زمان پشتیبانی گوگل توسعه دهندگان جوان و مخصوصاً دانشجویان هستند که باعث رشد آن شده اند. بنابراین تعجبی نیست که چرا اکثر توسعه دهندگان از کاتلین برای توسعه اپلیکیشن اندروید استفاده می کنند اگر چه می توان از آن برای توسعه اپلیکیشنهای سمت سرور استفاده کرد.
۵. Elixir و Phoenix
فونیکس که در زبان برنامه نویسی الکسیر ساخته شده است،چهارچوب تقریبا جدیدی است که توسط توسعه دهنده ها مورد توجه قرار گرفته است. یکی از دلایلی که توسعه دهنده ها به فونیکس علاقه پیدا کرده اند و عملکرد سریع آن است. برای مثال پردازش یک درخواست JSON که در Rails حدود یک و نیم ثانیه طول می کشد در فونیکس حدود ۴۰۰ میلی ثانیه زمان می برد. مهمتر از همه این هست که بررسی کنید که آیا تکنولوژی که میخواهید برای هر پروژه استفاده کنید آیا مناسب اون پروژه هست یا خیر. مثلاً فونیکس و الکسیر در اپلیکیشن های بلادرنگ بسیار قوی هستند،به دلیل پردازش ارتباطات بسیار زیاد همزمان،مانند یک اپلیکیشن چت.اما برای اپلیکیشنی که نیاز به قدرت پردازشی بالایی دارد الکسیر آنچنان مناسب نیست. تعداد توسعه دهندگان الکسیر در حال حاضر بسیار محدود است. از آنجایی که دل کسی وفا نیست تقریباً چارچوبهای جدیدی هستند به همین دلیل به کمپانی های کمی هستند که به سمت این چارچوب رفتند.قطعاً این مورد در آینده تغییر خواهد کرد و به همین دلیل است که باید نگاه ویژه و خاصی به فونیکس و الکسیر داشته باشید.
۶. GraphQL
احتمالا اسم GraphQL را شنیده اید. زبان کوئری منبع باز توسعه داده شده توسط فیسبوک،برای ساخت ای پی آی.جامعه GraphQL در حال رشد است و کمپانیهای بزرگی مانند توییتر، شاپیفای و آمازون شروع به استفاده از این تکنولوژی کردهاند. GraphQL راهکاری ساده برای توسعه دهندگان جهت بهبود بارگذاری و پردازش داده ها است. یکی از تفاوتهای بین GraphQL و REST API این است که در GraphQL توسعه دهنده می تواند دقیقا مشخص کند که چه نوع داده ای را میخواهد از ای پی آی دریافت کنند. GraphQL این اطمینان را به توسعه دهنده یا نرم افزار می دهد که داده های مورد نیاز را در یک درخواست دریافت کند. GraphQL زمانی که اپلیکیشن شامل مدل های تودرتو و از این دست داده ها است می تواند بسیار مفید واقع شود. برای مثال در یک اپلیکیشن موبایلی GraphQL میتواند باعث کاهش بار بر روی شبکه موبایل شود.
نتیجه گیری
به عنوان یک توسعه دهنده مهم است که تا حد امکان با تکنولوژیهای روز آشنا باشید. باید به فرصتهای جدید نگاهی بیندازید و در همین حین به ریسک هایی که تکنولوژی های جدید ممکن است با خود به وجود بیاورند نیز آگاه باشید. امتحان کردن مداوم چهارچوب های مختلف کمک می کند تا تجربه ای سودمند اما با محدودیت هایی به دست آورید.کاری که یک توسعه دهنده انجام می دهد عمدتاً حل چالش های تکنیکی است،و به همین دلیل باید از تکنولوژی های استفاده کنید که توانسته اند خود را اثبات کنندو این یعنی تکنولوژی هایی که جامعه بزرگی در پشت خود دارند.
این مطلب اولین بار و بطور اختصاصی در ویوین منتشر شده است.