TGViewer
isqualog • front-end • productivity isqualog • front-end • productivity @isqualog · 586 subscribers
Post #121 581
Жизнь научила меня не смешивать разные изменения в одном PR

Фичи, багфиксы, рефакторинг — у этих изменений разный контекст и разный уровень риска. Бывает, сядешь за новую фичу, и видишь, отрефакторить бы немного, тогда фича отлично ляжет. Ну рефачишь, по дороге еще какой-то баг обнаружил в соседней фиче, его поправил, заливаешь пулрик на 1к строк с этим всем. В чём проблема?

Сложно одновременно всё ревьюить (разные контексты) но вам об этом ревьюеры и так скажут. Или будут морозить неделю, потому что такой PR читать лень. Но это не главное.

Вот вас кое-как оревьюили, тестеры протестировали, выкатили на прод. Бум! Какая-то проблема проскочила все защиты и надо срочно откатывать. Тоже не проблема — мы же умные, роллбечим релиз.

Но в мастере-то код сломан. И следующий релиз будет сломан. Тут головняк пропорционален частоте ваших релизов. Надо мастер тоже чинить. Быстрее всего — ревертнуть. Но как? Допустим, проблема в той новой фиче, и откатить нужно именно её. Но вы в том же PR ещё багу починили, отревертите тот PR — бага вернётся. А ещё рефакторинг сделали (разный уровень риска). А ваши коллеги может уже понаписали там что-то поверх, будете ревертить — конфликтов не оберётесь. Короче, удачи.

А если бы вы в трёх отдельных PR сделали то же самое, ревертнули бы только фичу. Опенсорс тоже говорит об этом, вспомните React 18.3. Они там прямо говорят, что к предыдущей версии они добавили лишь ворнинги для подготовки к react 19. Чтобы обеспечить 3-шаговое обновление:

Шаг 1: Обновляетесь до 18.3 — если вы были на 18.2, то код совместим
Шаг 2: Чините все ворнинги и deprecations — короче активно шатаете кодовую базу
... тут вы даже можете пожить с этим какое-то время и убедиться что всё ок ...
Шаг 3: Обновляетесь до 19.0 — это должно пройти практически бесшовно, если вы на шаге 2 всё починили
сгорел прод? ну откатываете версию, а код не надо трогать

То же самое при внедрении новых правил линтеров:
1. Сначала приводите код в соответствие правилу
2. Потом врубаете его на всех

Это перекликается с идеей Branch by abstraction из TBD. Там большие изменения не могут долго жить в отдельной ветке. Их дробят на маленькие безопасные шаги, которые можно быстро влить и быстро откатить.

О чём надо себя спросить перед открытием PR: как я буду в случае чего это ревертить?
  • 🔥 7
  • ❤ 4
More from @isqualog
  1. Jul 24, 2026Диктовка На работе нам раскатили Wispr Flow — аппка для распознавания речи в любом текстов…
  2. Jul 10, 2026Видели уже страничку с пулреквестами в гитхабе? Я только сегодня обнаружил редизайн, обычн…
  3. Jun 26, 2026пожалуйста уберите огонёчек, и так жарко
  4. Jun 26, 2026Европу накрыла heat wave, поэтому сегодня у нас рубрика РАСПАКОВКА В Германии кондиционеры…
  5. Apr 16, 2026Привет, а вот и новое видео! В прошлой серии мы залезли в одну функцию сортировки и улучша…
  6. Mar 28, 2026Layers vs Vertical Slices Кирилл Мокевнин (Hexlet) набросил, как файлы класть — по типу ил…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →