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