Є кілька проблем, які поєднуються разом, щоб зробити рефакторинг складним у цьому середовищі. До цього приєднуються деякі нетехнічні проблеми ("але це питання управління та бій, який я ще виграв").
Перша проблема, на яку слід звернути увагу, - це довго працююча гілка. У цих гілках виникають труднощі з відстеженням змін поза зоною забудови. Для вирішення цього питання:
- Коли код буде завершений - дайте йому ще раз (нехай служба підтримки клієнтів перегляне його, якщо вони хочуть), але злийте його швидко в розробку, щоб інші зміни, які залежать від нього, змогли бути підібрані, а зміни, що конфліктують, будуть виявлені рано в процесі.
- Якщо з певних причин під час рефакторингу якийсь брекет стає тривалим, воно, як правило, є хорошою практикою зливатися зі стабільної у гілку, щоб отримати зміни та рефакторинг. Часто це мінімізує конфлікти та сюрпризи при злитті від функції функції у стабільну гілку.
- Все тестування інтеграції потрібно робити на випусках, а не на функціях . У цьому середовищі функції можуть або не можуть бути повністю інтегровані в систему. Незважаючи на те, що можна перевірити цінність функції окремо, вона не визначає проблеми після випуску.
- З моменту завершення коду для злиття (давайте називати його розвиватися - розгалуження від master / stable / release має власні проблеми не збору останніх змін в розробці) не повинно тривати занадто довго. Чим довше ви чекаєте, тим більше знань втрачається і тим важче інтегрувати код в інші рядки коду.
Ще одне питання, яке поєднується з цим, полягає в тому, що я натякав на вищезазначені моменти - це зміна ролі галузі з часом. Він починається як галузь розвитку, де розробники здійснюють зобов'язання, а потім стає тестовою областю (що тут робиться тестування, що може бути значимим у всій програмі?), Яка потім об'єднується в стабільну (і, імовірно, випущена - це знову перевірений?).
Якщо коротший час початку та закінчення функції, рефакторинг простіше мати можливість отримати інші гілки.
Заохочуйте розробників отримати все середовище. Просто зміни вишні можуть призвести до ... давайте говорити про цікаве середовище для розробників. Хоча збирання вишні має свої користі, тому що такий режим за замовчуванням втягування змін у гілку може викликати занепокоєння.
Рефакторинг - це те, що в ідеалі робиться постійно або якщо не постійно, коли є час простою. Відділіться, зробіть простий рефакторинг, запустіть одиничні тести, щоб переконатися, що все ще працює (його блок перевірений, правда? Так ? ), А потім з’єднайтеся назад у стабільний. Передайте інформацію іншим розробникам, щоб перетягнути ті зміни, які ви переробили у власні гілки.
Розробникам важливо володіти якістю коду. Хоча напрямок функцій надходить ззовні, а розподіл часу часто не є власним, якість коду - це те, чим потрібно пишатися і приділяти час.
Ви можете знайти наступні питання, корисні в пошуках виділення часу на вирішення технічної заборгованості:
Ви також можете переглянути такі інструменти, як sonar, які допоможуть визначити області коду, які потребують найбільшої роботи для рефакторингу. Плагін технічного боргу є те , що може бути використано для допомоги точки з накопичення боргу з плином часу в коді.
Часто доводиться зазначати, що рентабельність інвестицій для вирішення технічної заборгованості - це швидший час виконання функцій та виправлень помилок від команди розробників.