Вы можете управлять своим стартапом на миллиард долларов с клиентами/пользователями, которые используют ваш продукт для управления своим бизнесом и целями, или вы можете продвигать свой первый MVP, чтобы отслеживать клиентов/пользователей, чтобы дать им ценный опыт.

Из ниоткуда вы замечаете ошибку, которая приводит к сбою вашего приложения. Следующее, что делает ваш мозг, — это подводит итог предпринятым вами шагам, которые привели к сбою приложения, и вы будете записывать точки данных по вопросу.

  • На какой странице произошел сбой приложения?
  • Какой компонент вызвал сбой?
  • Какой сценарий или данные привели к сбою приложения?

Как только вы найдете ответы на эти вопросы, следующее, что вы попытаетесь сделать, это реализовать исправление. Но, к сожалению, время — это роскошь, которую вы не можете себе позволить. В основном по двум причинам, перечисленным ниже:

  • Живой продукт с ошибкой, которую будут исследовать разные пользователи и репутация вашего продукта, и это на кону.
  • Для стартапа на ранней стадии привлечение потенциальных клиентов стоит больше реальных денег (рекомендации, маркетинг и т. д.). Если пользователь потерялся, то вернется он не скоро.

Лучшее/быстрое решение — вернуться к хорошей версии вашего приложения и развернуть ее.

Небольшому стартапу с разработчиками менее 5 легко определить, какое изменение вызвало сбой, и отменить его (даже это непросто в наши дни, так как люди делают коммиты очень часто, а ошибка могла уже существовать, а вы могли просто обнаружить ее). это было недавно, так что это может быть намного ниже линии фиксации).

Фехтование вашего меча не то же самое, что использование его на поле боя. Представьте, как вы программируете, когда люди смотрят на ваш экран. Я знаю, что это кошмар, и вы часто будете делать больше ошибок.

На вас возложено давление со стороны коллег и вы обязанны вернуться и развернуть как можно скорее.

ЖКТ пополам

Git — мощный инструмент. Вам не нужно изучать каждую команду git, вы учитесь по мере необходимости.

Git bisect — это инструмент, который находит плохой коммит, вызвавший ошибку, с помощью бинарного поиска.

Git bisect берет часть вашей истории коммитов, поэтому у вас есть последний коммит HEAD на мастере, а затем последний хороший коммит (который, как вы знаете, не содержит ошибок).

Если вы знакомы с бинарным поиском, он принимает отсортированный список элементов и целевое значение.

  1. Он выбирает средний элемент и сравнивает его с целевым
  2. Если целевой элемент ‹, он разделит список от первого элемента до среднего элемента -1.
  3. Если целевой элемент ›, то он будет разделен от среднего элемента + 1 до последнего элемента.
  4. Получив список, повторяйте описанные выше шаги, пока не найдете цель.

Вот как работает бинарный поиск, тот же принцип применим к вашему git bisect.

Шаги, чтобы найти плохой коммит

  1. Запустите приложение в локальной среде разработки.
  2. Попробуйте выполнить шаги, которые вызывают сбой приложения.
  3. Убедитесь, что вы находитесь в коммите HEAD (это означает, что вы используете последний код).
  4. Откройте терминал, запустите git bisect start.
  5. Следующая команда — git bisect bad, мы помечаем конкретный коммит как плохой, потому что в нем есть ошибка.
  6. Далее git bisect good GOOD_COMMIT_SHA Здесь GOOD_COMMIT_SHA — хэш/шах коммита (2f3865852fd7b7eebc70481a157d5fbf0f21c550)
    Вы должны выбрать коммит, который, как вы знаете, работает хорошо. (если вы не знаете, выберите коммит, который был сделан месяц назад, или выберите коммит случайным образом, который отстает на 50 коммитов).
  7. Теперь git bisect автоматически запускается и выбирает средний коммит, вы увидите сообщения типа Bisecting: 34 revision left to test after this (roughly 5 steps). Вы также увидите выбранный хэш/ша фиксации.
  8. Попробуйте повторить ШАГ 2.
  9. Если вы все еще находите ошибку, запустите git bisect bad.
  10. Если нет, то запустите git bisect good.
  11. Вы будете повторять ШАГ 8, 9, 10.В какой-то момент git bisect найдет фиксацию, вызвавшую эту проблему, и теперь вы можете определить основную проблему.

Как только вы найдете фиксацию, вызвавшую проблему, вы можете вернуться к версии ниже этой фиксации.

Последнее примечание

Одно важное примечание:запуститеgit bisect reset, чтобы выйти из состояния git bisect после того, как вы обнаружили ошибку или хотите выйти из нее.

Примечание. Описанный выше процесс работает только для ошибок, которые можно легко воспроизвести. если ваша ошибка возникает случайно, то найти правильный коммит непросто.

Подпишитесь на меня, чтобы мотивировать меня написать интересную статью

Дополнительные материалы на plainenglish.io