آیا به React نیاز دارید؟
اگر شما توسعه دهنده Front-end باشید و هنوز از React در پروژههای خود استفاده نمیکنید ممکن است یک توسعه دهنده Front-end بد باشید. از ES6 هم استفادهای ندارید ؟ خیلی بد است Webpack چطور؟ خیر؟ چرا شما هنوز اخراج نشدهاید !؟
همه شما نظراتی مانند بالا را در حوضه کاری خود شنیدهاید. اطرافیان انتظار دارند که ما از جدیدترین تکنولوژیهای ایجاد شده، هرچقدر هم نو، استفاده کنیم. ما پروژههایی که با React، ES6 یا Webpack (یا هر تکنولوژی جدیدی) نوشته نشدهاند را رها کرده تنها به دلیل این که این پروژهها با تکنولوژیهایی قدیمیتری نوشته شدهاند. ما هزاران ساعت را برای تغییر همه پروژهها میگذاریم در حالی که در نهایت تقریبا محصول یکسانی را ایجاد میکنیم.
آیا ما همیشه باید این کار را به طور کورکورانه انجام دهیم؟ خیر، واقعا خیر. انجام این کار را متوقف کنید. تکنولوژی جدید الزاما به معنی گزینه بهتر نیست. بیایید با یکدیگر این موضوع را بررسی کنیم.
محصول ، بالاتر از همه چیز
اول از همه، ما توسعه دهنده نرمافزار هستیم و شغل ما به معنی توسعه برنامههای نرمافزاری است. نرمافزارهایی که زندگی را سادهتر کرده و به مردم کمک میکنند. برنامههایی که به خوبی کار میکنند. این هدف اصلی ما است و رسیدن به آن موجب مسرت ما خواهد شد.
هنگامی که به سمت تکنولوژی جدیدی میرویم ممکن است که محصول ما قبل از آن نیز به خوبی کار میکرده است. یا شاید ما تجربه بسیار بالایی در تکنولوژیهایی که در پروژه استفاده کردیم داشته باشیم و میتوانیم نرمافزاری بسیار سریعتر به وسیله همان تکنولوژیهای قدیمی ایجاد کنیم به این دلیل که با همه مشکلات و راه حلهای آنان آشنا هستیم.
همچنین، کاربران اهمیتی نمیدهند که شما از چه تکنولوژی برای توسعه نرمافزار خود استفاده کردهاید. آنان راه حلی برای مشکل خود میخواهند. محصولات فوقالعاده بسیار زیادی هستند که با تکنولوژیهای قدیمیتر نوشته شدهاند و بهتر از تکنولوژیهای جدید کار میکنند.
Jquery، Backbone ،Less، Ember و … آیا شما اینها را مرده میدانید؟ شاید بهتر باشد به لیست شرکتهایی که از Backbone استفاده میکنند نگاه کنید. یا شاید شرکتهایی که از Jquey و Ember استفاده میکنند. این تکنولوژیها در پروژههایی مانند Pinterest، WordPress، StackOverFlow، Amazon، Square ، Ted و بسیاری پروژه موفق دیگر استفاده شدهاند و کاربران را راضی نگه داشتهاند.
بنابراین اگر شما از تکنولوژیهای به اصطلاح قدیمی استفاده کنید، آنان را به خوبی به کار برده و کاربران را راضی کنید. در مسیر اشتباهی هستید؟ ما این طور فکر نمیکنیم.
سر و صدای بیش از حد
ما این منظور را نداریم که نباید پیشرفت کرده و تکنولوژیهای جدید را وارد مسیر توسعه محصولات کنیم.
Front-end با سرعت بسیار زیادی در حال رشد است و شاید بتوان سرعت توسعه آن را سریعتر از هر رشته دیگری در نرمافزار دانست. توسعه دهندگان در حال آوردن الگوها و طرحهای مختلف از دیگر زبانهای برنامه نویسی و همچنین ساختن فریم ورکها و کتابخانههای جدید هستند. این روزها به نظر میرسد که هر توسعه دهندهای شروع به ساخت فریم ورک خود را کرده است!
بعضی از آنان به راستی توسعه نرمافزار را سریعتر و راحتتر میکنند. اما این موضوع در تمام آنان صدق نمیکند یا شاید چنین تاثیری را در پروژه شما ندارند. اکثر آنان تنها به دلیل جدید بودن توجه به دست آوردهاند و ارزش این نوع خاص توجه را ندارند.
مشکل مشترک ما در دوست داشتن تکنولوژی جدید است. ما توضیح مارکتینگ کوتاهی را در مورد آنها میخوانیم و فکر میکنیم که با یک تکنولوژی فراانسانی طرف هستیم. حقیقت این است که این جملات بازاریابی و اسمهای زیبا تنها سو استفاده از جدید بودن تکنولوژی است و ممکن است تنها در دو ماه آینده به فراموشی سپرده شود. ما ساعتهای بیشماری را برای یادگیری این تکنولوژیهای جدید صرف میکنیم و به محض این که این تکنولوژی دیگر از نظر جامعه “جذاب” نیست، به طور کامل آن را به فراموشی سپرده و سراغ تکنولوژی جدید بعدی میرویم.
گاهی اوقات تکنولوژی ایجاد شده واقعا متفاوت و خاص است. اما این دلیلی بر استفاده از آن در پروژه بعدی شما نیست. هر تکنولوژی متحول کنندهای نیاز به زمان دارد تا بتواند خود را پیدا کند. تا به کمال رسیده و باگهای اولیه آن رفع شوند. Node.js در ابتدا خیلی جالب به نظر میرسد اما اگر پروژه خود را با آن شروع کنید متوجه خواهید شد که تازه در حال پیدا کردن جایگاه خود است. React یک راه حل فوق العاده است اما گاهی برای موارد بسیار پایه، نیاز دارید که کتابخانه خود را بنویسید.
در این راه شما باید صبور و بسیار با دقت باشید. به تکنولوژی زمان و امکان رشد بدهید و اجازه دهید تا مشکلات آنان برطرف شود.
همچنین توجه کنید که آیا محصول شما واقعا به امکاناتی که فریم ورک جدید به همراه خود میآورد نیاز دارد؟ برای مثال واضح است که React بارگذاری اپلیکیشن را در هنگام جابهجایی بسیار سرعت میبخشد یا شاید کتابخانه جدیدی نمودارهای بسیار زیبایی میکشد. با این حال این موارد در صورتی که محصول شما، بعضی نیازهای اساسی را رفع نکند ابدا اهمیتی ندارند. کاربران ترجیح میدهند تا نمودار آنان دقیق و به روز باشد تا زیبا. حتی اگر دو ثانیه دیرتر بارگذاری شود.
اگر پس از گذشت مدت زمان مشخص، تکنولوژی جدید به خوبی کار میکند، با دیگر کتابخانهها و فریم ورکها به خوبی ارتباع برقرار کرده و ثبات دارد. اکنون زمان آن رسیده است که در پروژههای بزرگ خود از آن استفاده کنید.
زمان و مکان مناسب
شما تصمیم گرفتهاید که تکنولوژی جدید را وارد ساختار محصول خود کنید. با این حال این کار در لحظه امکان پذیر نیست. تنها زمانی این تکنولوژی مزیت خود را نشان خواهد داد که تغییرات به صورت کامل انجام و جایگزین ساختار قبلی شده باشد.
شما به دو چیز مهم برای این تغییر احتیاج دارید. اول تیم و دوم زمان است. هر دوی آنان روی یکدیگر تاثیر میگذارند. این دو نیز به طور مستقیم از بودجه شرکت قدرت میگیرند.
معمولا شرکت محدودیتهای مالی زیادی دارد. بنابراین شما در توانایی تیم و زمان مورد نیاز برای پروژه محدودیت دارید. در صورتی که بتوان بین تکنولوژی جدید و پارامترهای ذکر شده تناسب ایجاد کرد و محصول مورد نیاز را وارد بازار کرد، میتوان گفت که انتخاب مناسب بوده است. در نظر بگیرید که ما اینجا در مورد نرمافزارهای پیشرفته با تعداد کاربر بالا صحبت میکنیم نه پروژههایی که محدودیت زمانی ندارند و معمولا بازاری نیز ندارند.
همان طور که گفته شد ما به عنوان توسعه دهنده در جهت آسانتر کردن زندگی مردم کار میکنیم. با این حال باید این کار در زمان مناسب و با ویژگیهای مناسب انجام شود. در صورتی که با تکنولوژی جدید معمولا هم از نظر تکنیکی و هم زمانی دچار مشکل خواهید شد.
شما همیشه باید اطمینان یابید که منابع شرکت برای انجام چنین تغییراتی در تکنولوژی کافی هستند.
با در نظر گرفتن همه موارد بالا، شما هنگام مهاجرت به تکنولوژی دیگری نه تنها باید به خود تکنولوژی توجه ویژهای داشته باشید بلکه باید به زمان این تغییر نیز توجه کنید.
نتیجه گیری
همیشه تکنولوژیهای جدید از نظر توسعه دهندگان جذاب به نظر میرسند. با این حال مهاجرت بدون فکر به آنان اغلب موفقیت آمیز نیست.
برای مثال تیم توسعه دهنده خود ما تصمیم به انجام پروژهای در مورد پیشبینی وضعیت آب و هوایی گرفته بود. انجام این پروژه برای تیم در صورتی که از تکنولوژی آشناتری استفاده میشد، زمان بسیار کمتری را میگرفت با این حال به دلیل استفاده از React و عدم تسلط تیم روی این فریم ورک، زمان مورد نیاز بسیار افزایش پیدا کرده و گاهی در موارد پایه نیز به مشکل برخورد نمود. React یک فریم ورک عالی است اما با توجه به ابعاد این پروژه، انتخاب مناسبی نبود.
پروژه در نهایت با موفقیت انجام شد ولی باید توجه داشت که منابع و زمان بسیار بیشتر از حد مورد نیاز در این کار مصرف شد.
در پروژههای جدید باید توجه کرد که چرا از تکنولوژی قدیمی دیگر استفاده نکرده و آیا به راستی ارزش خود را از دست داده است؟ تکنولوژی های جدید باید از فیلتر شما عبور کنند و تنها مواردی که ارزش دارند باقی بمانند.