یک مقدار مهندسی – به بهانه AngularJs 2.0

چند روز پیش شنیدم که تیم AngularJs تصمیم به رها کردن نسبی پروژه AngularJs 1.x گرفته و نسخه بعدی این کتابخانه AngularJs 2.0 خواهد بود. (این موضوع مربوط به ماهها قبل می شود ولی من دیر شنیدم) موضوع اصلی این نوشته تغییرات احتمالی این کتابخانه نیست. از آن جایی که با بررسی هایی که کردم به این نتیجه رسیدم که نسخه دوم این کتابخانه بسیار بسیار در کاربری و مفاهیم و پیاده سازی با نسخه اول آن فرق دارد. چند نکته به نظرم رسید.

در اولین نگاه به موضوع برای من قابل درک نبود و نیست که کتابخانه ای به طور کلی از رده خارج شود و تیم اصلی تولید کننده آن پشتیبانی زیادی به آن ندهند. آن هم با در نظر گرفتن مدت کمی که از ایجاد و فراگیر شدن این کتابخانه گذشته است. من از فضای خارج از ایران اطلاعی ندارم ولی در ایران بسیار برنامه نویسان و مدیران پروژه ای دیده ام که بسیار مشتاق استفاده کردن از این کتابخانه بود و هستند.

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

همیشه در تصمیمات برنامه نویسی ام (یا شاید هر تصمیمی!) یک مثلث را در نظر می گیرم، که سه ظلع با عنوان های هزینه، زمان، کیفیت  دارد. در تصمیمات مدیریتی مهندسی همیشه باید توازنی بین این سه ظلع ایجاد شود. اگر این سه فاکتور اصلی را به صورت نا متوازن پیاده کنیم به احتمال خیلی بیشتری پروژه ما با شکست مواجه خواهد شد. در استفاده از AngularJs هم همین نکته را باید در نظر داشته باشیم.

cost-time-quality

اما مشکل اصلی من با پروژه های فعلی ای است که از این کتابخانه استفاده عظیم می کنند. این ها باید چکار کنند.

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

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

از آن جایی که این پروژه متن باز است یکی از گزینه های به صرفه برای کوتاه مدت fork کردن این پروژه و ایجاد نسخه های داخلی برای این پروژه خواهد بود. ولی این گزینه هم در طولانی مدت هزینه های بسیاری به همراه خواهد داشت. فرض کنید شما می خواهید زیرمجموعه ای از تیم تولید AngularJs در سازمان خود داشته باشید!!!

ولی کسانی که در حال یادگیری AngularJs هستند چه کنند؟!

به نظر من به کار خود ادامه دهید. یاد گرفتن کتابخانه ای مانند AngularJs چه این پروژه پابرجا باشد چه نباشد تجربه بسیار خوبی است. از بیشتر مفاهیمی که در این کتابخانه آموخته اید در پروژه ها و کتابخانه های دیگر نیز می توان استفاده کرد. به طور کلی خیلی نگران این نباشید که آیا این کتابخانه خواهد ماند یا نه.

تغییر همیشه در دنیای نرم افزار بوده و خواهد بود. مهم مدیریت درست تغییرات است.

4 دیدگاه برای «یک مقدار مهندسی – به بهانه AngularJs 2.0»

  1. به نظرم Angular و google مجبور به چنین کاری شد ! به دو دلیل ، یکی کتابخونه های جدید رقیب مثل React که تقریبا میشه گفت از همین ابتدای کار از Angular فعلی معماری بهتری دارند و صرفا جامعه را در دست ندارند که با زمان آن را هم به دست می آورند

    دوم اینکه ES6 داره وارد کار میشه و کتابخونه ها سعی میکنن خودشون رو باهاش وقف بدن و بر اساس اون معماری کتابخونه هاشون رو طراحی کنن .

    در هر حال با وجود شخصی مثل Rob Eisenberg در تیم Angular که تازگیا به تیمشون ملحق شده(که Durandal رو خلق کرد و از نظر منی که باهاش کار کردم واقعا معماری عالی داره ) به نظرم Angular 2 بهترین کتابخانه ی Spa خواهد شد.

    1. به نظر من هم همین طور خواهد شد و angularjs یکی از بهترین ها خواهد ماند. در حال حاضر هم یکی از بهترین هاست.
      ولی بیشتر نکته من در مورد پروژه های فعلی و هزینه های تحمیل شده به آنها است. و شاید خیلی از برنامه نویس هایی تازه کار با این کتابخانه را شروع کرده اند. البته گذشت زمان مشخص خواهد کرد که دقیقا چه پیش خواهد آمد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *