💡 فرهنگ و ساختار نسخهدهی در تیمهای نرمافزاری
انتخاب Gitflow یا Trunk-Based Development؟
انتخاب Monorepo یا Multirepo؟
انتخاب GitHub Flow یا GitLab Flow؟
به نظرم سؤال اصلی این نیست که «کدوم بهتره؟»
سؤال بهتر اینه که «هر کدوم برای حل چه مسئلهای ساخته شده؟»
خیلی از تیمها مدلهایی رو از شرکتهای بزرگ کپی میکنن، بدون اینکه همون سطح از CI/CD، تست، ownership، feature flag، release management و tooling رو داشته باشن. نتیجهاش هم معمولاً شلختگی، merge conflict، releaseهای پراسترس و کیفیت ناپایداره.
طی این دو پست، که پاسخی به سوال یکی از دوستان کانال است؛ به فرهنگ و ساختار نسخهدهی رو از چند زاویه بررسی کردم:
ساختار repository: شامل Monorepo، Multirepo، Microrepo
مدلهای branching: شامل: Gitflow، GitHub Flow، GitLab Flow، Trunk-Based Development
و بعد ترکیب اینها در سناریوهای واقعی: مثل monolith، microservice، تیم کوچیک، چند تیم، SemVer، CalVer و چکلیست تصمیمگیری.
هدفم نسخه پیچیدن نیست؛ بیشتر اینه که انتخابمون از روی شناخت باشه، نه تقلید.
🔗 بخش اول
🔗 بخش دوم
3