اشتباه اکثریت در مورد انگولار


انگولار قطعا یکی از معروف ترین فریمورک های موجود در زمینه ی توسعه ی فرانت اند و برنامه های SPA هستش و فکر میکنم رویه این قضیه هر چند خوشمون بیاد ازش یا نیاد و طرفدار فریمورک های دیگه باشیم یا نباشیم به اتفاق قبول داریم .

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

متن رزومه : آشنا یا مسلط یا هر چی به انگولار

**جلسه ی مصاحبه**

مصاحبه کننده ی محترم : شما نوشتی انگولار ولی نسخه شو ننوشتید چرا ؟ انگولار 2 یا 3 یا 4 یا ... ؟

زمانی که این سوال از من پرسیده میشه این حباب در ذهنم شکل میگیره که سوال کننده هیچ تحقیقی در مورد انگولار نکرده و اطلاعی از اون به طور کل نداره یا آشنایی با نسخه ی اول داره و فقط میدونه که نسخه ی دوم یه بازنویسیه کامل هستش ( اگر این فرض رو هم بذاریم که دلیل این بازنویسی رو هم میدونه )

یا بعضا با این نظر رو به رو شدم :

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


اما ایراد این سوال در کجا هست ؟

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

اما روش نسخه بندی تیم انگولار چیست ؟

با عرضه ی نسخه ی دوم تصمیم تیم بر این هست که از روش Semantic Versioning استفاده کنن به این معنا که ویژگی های جدید به انگولار رو بتونن اضافه کنن و همچنین باعث بازنویسی های کامل مثه نسخه ی قبلی نشن .

با این روش آپدیت هایی که پچ ریلیز هستن (2.1.5) باعث خراب شدن برنامه ی شما نخواهند شد و حالت باگ فیکس دارند ، آپدیت های جزئی (2.2.0) شامل اضافات مشخصی هستند که میتونید از بک لاگ اون ریلیز متوجه اضافات بشید.

اما ریلیز ها و آپدیت های بزرگ (3.0.0) شامل تغییراتی هستند که وابسته به برنامه ی انگولاری شما ممکن هست باعث بِرِک شدن برنامه ی ما بشن.

با استفاده از این روش در صورتی که منظور ما نسخه ی جدید انگولار هست به نظر من استفاده از نسخه ی اون بی معنی هست همونطوری که تیم انگولار نیز فقط ازش به عنوان انگولار یاد میکنه نه انگولار 5 یا انگولار 6 و اگر منظور ما از پرسیدن نسخه اون قابلیت خاصی هست که در ریلیز مشخصی ارائه شده بهتر هست از همون قابلیت سوال کنیم ، آیا با API Drag & Drop کار کردید ؟یا ....

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

طبق گفته ی خودشون هم باید اینطور انتظار داشت که هر هفته یک پَچ ریلیز دارند و به طور میانگین درهر شِش ماه 3 ریلیز جزئی ( minor) و یک ریلیز بزرگ ( major) خواهند داشت.

همچنین تیم انگولار نیز برای ریلیز های جزئی و بزرگ نیز آپدیت های بِتا و RC ارائه میده تا علاقه مندان بتونن خودشون رو زودتر هماهنگ کنن یا اگر فیچری هست که ما همین الان بهش احتیاج داریم بتونیم سریع تر بهش دسترسی پیدا کنیم ( قطعا با مشکلاتش هم دست و پنجه باید نرم کنیم :D)

پس زمانی که مصاحبه کننده میپرسه نسخه ی 4 رو بلدی یا نسخه ی 5 در صورتی که فکر می کنیم بهش بر نمیخوره گوش زد کنیم که این نسخه بندی مانند نسخه بندی انگولار 1 و 2 نیستش ....

پ.ن : روش نسخه بندی SemVer فکر میکنم تقریبا توسط همه ی کتابخونه ها ، فریمورک ها و ... که داخل npm هاست میشن استفاده میشه .