Добавить в корзинуПозвонить
Найти в Дзене

Вчера в 2 часа ночи разбирали эпик фэйлы и было максмимально смешно, когда один из коллег скинул универсальный кодекс разработчиков на эту

тему. Вам. Для поднятия настроения👇🏻 01 — Работает — не трогай Код написан три года назад. Никто не знает как. Никто не знает зачем. Но он работает. // if it ain't broke, don't refactor it 02 — Баг — это незадокументированная фича Клиент недоволен поведением? Просто переименуй его в feature в Release Notes. // works as designed (WAD) 03 — Комментарии пишутся для будущего себя Тот, кто будет читать этот код в 3 ночи в пятницу перед дедлайном — это ты. Напиши нормально. // TODO: понять что это такое 04 — Оценки умножай на π Ты думаешь — 2 дня. По факту: интеграция сломана, Edge ведёт себя странно, Docker снова что-то придумал. Итого: 6.28 дня. // estimate * Math.PI — минимум 05 — Первое решение — никогда не финальное Архитектура из 3 утра выглядит гениально. Утром выяснится, что ты изобрёл XML. // v1 → v2 → v3 → back to v1 06 — Документация лжёт Документация описывает то, как должно работать. Код описывает то, как реально работает. Они никогда не совпадают. // source of truth: исходни

Вчера в 2 часа ночи разбирали эпик фэйлы и было максмимально смешно, когда один из коллег скинул универсальный кодекс разработчиков на эту тему. Вам. Для поднятия настроения👇🏻

01 — Работает — не трогай

Код написан три года назад. Никто не знает как. Никто не знает зачем. Но он работает.

// if it ain't broke, don't refactor it

02 — Баг — это незадокументированная фича

Клиент недоволен поведением? Просто переименуй его в feature в Release Notes.

// works as designed (WAD)

03 — Комментарии пишутся для будущего себя

Тот, кто будет читать этот код в 3 ночи в пятницу перед дедлайном — это ты. Напиши нормально.

// TODO: понять что это такое

04 — Оценки умножай на π

Ты думаешь — 2 дня. По факту: интеграция сломана, Edge ведёт себя странно, Docker снова что-то придумал. Итого: 6.28 дня.

// estimate * Math.PI — минимум

05 — Первое решение — никогда не финальное

Архитектура из 3 утра выглядит гениально. Утром выяснится, что ты изобрёл XML.

// v1 → v2 → v3 → back to v1

06 — Документация лжёт

Документация описывает то, как должно работать. Код описывает то, как реально работает. Они никогда не совпадают.

// source of truth: исходники

07 — 99 багов в коде, ты фиксишь один

Фиксишь один баг — появляется два новых. Это не программирование, это экология.

// bugs.push(...newBugs) — всегда

08 — Переменная “temp” живёт вечно

temp, temp2, temp_final, temp_FINAL_v2… Всё это в продакшене. Всё это никто не тронет.

// let temp = ... — 4 года назад

09 — Пользователь найдёт любой баг

Ты тестировал 2 недели. Пользователь сломает это за 47 секунд способом, который ты не мог вообразить.

// нажал Ctrl+Z 200 раз в поле даты

10 — Code review: всё плохо, но мы апрувим

Ты видишь 40 проблем. Пишешь один нитпик про пробелы. Апрувишь. Жизнь продолжается.

// LGTM — looks good to me (не смотрел)

11 — Git blame — путь к одиночеству

Смотришь кто написал этот ужас. Это ты. Три месяца назад. Закрываешь вкладку.

// git blame → git shame

12 — «Просто добавь кнопку» — не просто

Кнопка требует: роутинг, права доступа, i18n, логи, тесты, migration, три митинга и презентацию.

// estimated: 5 min — actual: 3 недели

13 — Stack Overflow — соавтор каждого проекта

В каждом production-коде живёт ответ от 2011 года с 542 лайками. Никто не проверял что там написано.

14 — Баг исчезает когда показываешь коллеге

30 минут падало. Коллега подходит — работает идеально. Коллега уходит — снова ломается.

// Heisenbug: наблюдение меняет результат

15 — Рефакторинг — это новый баг

«Я просто приберусь немного в коде.» — Через 6 часов не работает авторизация.

// git revert HEAD~47 — пятница 18:55