пост из разряда "... а что, так можно было?"
Один дебаг — и ты сразу герой чатиков, но не по той причине, по которой хотелось бы.
Если б мне давали монетку каждый раз, когда я случайно пушила console.log("hui")
в прод, у меня было бы две монетки. В другой раз, сюрприз вылез прямо на демке, как значение фильтра (name = hui). Короче, дебажим на полную, коммитим на фейспалм.
В принципе, обьем пережитого кринжа достаточно для того, чтоб задуматься над срочной автоматизацией: всё-таки звучит слишком дружелюбно для продакшена.
Шаги:
1. Создаем файл Git Hook:
Создаем папку .git/hooks (если её нет), и внутри неё файл с именем pre-commit.
touch .git/hooks/pre-commit
2. Пишем проверку:
Открываем файл pre-commit и добавляес в него следующий код:
#!/bin/sh
FORBIDDEN_WORD="hui"
FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(js|ts|jsx|tsx|py|html|css|md)$')
if [ -n "$FILES" ]; then
FORBIDDEN_COUNT=$(grep -inr "$FORBIDDEN_WORD" $FILES | wc -l)
if [ "$FORBIDDEN_COUNT" -gt 0 ]; then
echo "🚨 Ошибка: Обнаружено запрещенное слово '$FORBIDDEN_WORD' в коммитах:"
grep -inr "$FORBIDDEN_WORD" $FILES
exit 1
fi
fi
exit 0
3. Не забудь сделать файл исполняемым:
chmod +x .git/hooks/pre-commit
4. Как это работает:
Этот скрипт проверяет только файлы, которые изменены и добавлены в коммит (git diff --cached)
.
Он ищет слово "hui" (или любое другое) в файлах с расширениями .js, .ts, .jsx, .tsx, .py, .html, .css, и .md. Если слово найдено, коммита не произойдёт, и вы получите в консоль ошибку.
Помни: если это вызвало у тебя улыбку, в продакшн это не должно пойти
Прочитал? Поделись своей кринжовой историей с работы
Давайте придумаем проблему, а потом её героически решим 😃
Как насчёт того, чтобы не раскладывать хуи по коду?
Уже минимум 10 лет что бы я не делал, на какой бы 100500 раз тестовой среде изолированной от продакшена десятью заборами, я всегда использую для тестовых данных что-то что если попадёт в прод то будет не стыдно.
Особенно это касается каналов где нельзя быстро "закатить" что-то назад - пуши, смс, e-mail. Пуш не воробей, вылетит не поймаешь. Но я крайне рекомендую применять эту практику везде.
Во всех таких случаях я использую что-то вроде "Прогноз погоды на завтра +сколькото градусов". Если я вдруг когда-нибудь облажаюсь и пользователи получат прогноз погоды от, условно, банка, то они удивятся, но больше думаю ничего страшного не произойдёт. Если они получат hui то скорее всего потом я очень пожалею и буду вынужден переоценить свои подходы к разработке. Поэтому я сделал это заранее.
После того, как у нас фронтендер дебажил админку (почему-то на проде) и ушел массовый пуш «тест тест тест», я решил хуями больше не пользоваться, а потом и консоль логом
С тех пор я давно уже не работаю в компаниях с таким разделением доступов, но хорошая привычка осталась