Слогер Создать блог
Разработка

Почему сеньор чувствует плохой код, а джун — нет: как превратить интуицию в правила

Разбор ситуации с dev.to: джун спросил наставника, откуда тот знал, что код неправильный, — и ответа не последовало. Что стоит за этим «чутьём» и как передать его другому человеку.

Опытный разработчик смотрит на чужой код полминуты и говорит: тут что-то не так. Джун спрашивает — как ты это понял? И сеньор зависает. Именно так звучит заголовок обсуждения на dev.to: «A junior asked me how I knew the code was wrong. I couldn't answer him». Секрета тут нет — объяснения в голове действительно нет. Есть ощущение, и всё.

Ситуация неприятная для обеих сторон. Джун уходит с мыслью, что опыт — это что-то мистическое и недостижимое. Наставник чувствует себя самозванцем: вроде проблему видит, а сформулировать не может. Между тем за «чутьём» стоит вполне разбираемый механизм.

Интуиция — это узнавание, а не ясновидение

Мозг не выводит логику бага с нуля каждый раз. Он сравнивает увиденное с накопленными шаблонами: вот так выглядит код, который сломается на пустом списке; вот так — функция, тихо глотающая ошибку. Тысячи просмотренных ревью превращаются в набор узнаваемых картинок. Срабатывание занимает доли секунды, а путь до него — годы.

Отсюда и провал в разговоре. Узнавание идёт быстро и без слов, а объяснение требует развернуть картинку обратно в рассуждение. Это отдельный навык, и он тренируется.

Что на самом деле цепляет взгляд

  • Имя расходится с делом. Функция называется проверкой, а внутри пишет в базу или шлёт запрос наружу. Читатель верит названию и перестаёт проверять содержимое — так и рождаются сюрпризы в продакшене.
  • Код трудно протестировать. Чтобы проверить одну функцию, приходится поднимать полприложения, подменять глобальное состояние или ждать таймер. Обычно это сигнал, что границу между частями провели не там.
  • Ошибка гасится молча. Пустой блок catch или заглушка, возвращающая значение по умолчанию. Само по себе не баг, но именно здесь баги потом живут месяцами, потому что о них никто не узнаёт.
  • Функция трогает то, что ей не принадлежит: растёт связанность, а область видимости разъезжается.
  • Ветвление по флагу. Если поведение разъезжается по if внутри одного метода, скорее всего тут спрятались две разные задачи.
  • Код работает случайно. Проверка проходит, но объяснить почему — не получается.

Как превратить ощущение в комментарий

Самое полезное, что может сделать наставник, — описать сценарий вместо вердикта. Формулировка «мне не нравится» бесполезна. Формулировка «на пустом списке это упадёт» проверяема, с ней можно спорить и её можно проверить тестом.

Практический приём: когда ловите себя на «здесь что-то не так», задайте себе два вопроса. Чего я ожидал увидеть на этом месте? При каком входе это сломается? Если второй вопрос ответа не даёт, возможно, у вас претензия к стилю.

Что писать в ревью

  • Что именно насторожило: строка, имя, отсутствие проверки.
  • Сценарий, при котором это станет проблемой.
  • Проверку, которую можно написать прямо сейчас, чтобы спор закрылся.
  • Что остаётся на усмотрение автора — это тоже полезно обозначить.

Когда интуиция ошибается

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

И отдельно: некрасивый код и неправильный код — разные вещи. Претензия к форматированию и претензия к сценарию падения требуют разных аргументов. Смешивать их в одном комментарии — верный способ поссориться с автором.

Интуиция против явного правила

КритерийИнтуицияЯвное правило
СкоростьСрабатывает за секунды, без усилийТребует чтения и проверки
ОсноваНакопленные примерыЛинтер, чек-лист, тест
Когда работаетВ знакомом стеке и типовой задачеВ любом контексте, включая незнакомый
Когда ломаетсяНовый стек, чужая логика, сгенерированный кодНе покрывает то, чего нет в чек-листе
Передача другомуПочти не передаётся напрямуюКопируется словами и кодом
Ложное срабатываниеЧастое, цена — лишний спорРедкое, но правило устаревает

Как это тренировать

  1. Перед запуском кода предскажите результат — включая случай, который кажется маловероятным. Расхождение прогноза и факта и есть ваш урок.
  2. Разбирайте чужие ревью. Именно чужие: там видно, какие сигналы замечают другие люди.
  3. Вернитесь к своим старым багам и спросите: был ли сигнал виден заранее в диффе?
  4. Ведите короткий список «запахов» своими словами. Через полгода он превратится в личный чек-лист.

При чём здесь ИИ

Генерация кода ускорилась, и узким местом стало ревью. Модели выдают код, который выглядит знакомо — ровно то, на что реагирует интуиция. Правдоподобный текст проходит «взгляд эксперта» легче, чем заслуживает.

Отсюда практический вывод. Просите модель назвать паттерн, который вы унюхали: «как это называется», «какие входы не покрыты», «что тут может упасть». Иногда она сформулирует то, на что у вас не хватило слов. Решение всё равно за вами: модель не видит ни вашего легаси, ни договорённостей внутри команды.

Ощущение — это сжатое правило, которое вы пока не развернули словами.

Что делать дальше

Если вы наставник — на следующем ревью проговорите вслух, что именно вас насторожило, даже если мысль сырая. Это ценнее готового вердикта: джун подхватит сам способ смотреть.

Если вы джун — задавайте вопрос «при каком входе это сломается». Он вытягивает из наставника объяснение быстрее, чем «почему это плохо», и заодно учит вас проверять чужие доводы.

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

По материалам: career. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.

Образование

Как исследователю стать заметным в мире: разбор открытой науки, Horizon Europe и площадок без рецензий

Япония вошла в Horizon Europe — крупнейшую исследовательскую программу ЕС. Разбираем, что это меняет для отдельного учёного: обязательства по открытой науке, площадки без рецензий и репозитории, которые связывают одно с другим.

Слогер 08.10.2026 ▲ 0
AI

Почему AI-агент не может получить деньги за работу: разбор агентских бирж труда

Инфраструктура для агентской работы уже построена — биржи, каталоги, расчёты в стейблкоинах. Ломается всё на последнем шаге: как исполнитель без кошелька и банковского счёта получает оплату.

Слогер 08.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Образование

Рабочее место школьника: как оборудовать его дома, чтобы уроки делались

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

Sloger 07.10.2026 ▲ 0
AI

Анализ тендерной документации: как читать ТЗ и проект контракта за минуты, а не за вечер

Пять файлов, ТЗ на несколько мегабайт и день до окончания подачи. Знакомая картина для всех, кто участвует в тендерах. Написали в блоге, как разбирать тендерную документацию быстро и не пропустить главное: — где искать сроки, обеспечение, оплату, штрафы и гарантию (подсказка: почти всё в проекте контракта, а не в ТЗ); — почему технологии в ИТ-закупках почти никогда не пишут в названии; — как ИИ-разбор в Fluxs выписывает условия с дословными цитатами и сверяет их с документом; — зачем отдельный список вопросов для запроса разъяснений. Решение об участии остаётся за человеком. ИИ просто экономит вечер над ТЗ. https://fluxs.ru/blog/analiz-tendernoj-dokumentacii

Слогер 07.10.2026 ▲ 1
Fluxs lenta
Реклама · fluxs.ru
Разработка

Как ревьюить pull request и не отпугнуть контрибьютора: ярлык против разбора

Комментарий «похоже, это писал ИИ» и разбор диффа по существу занимают одинаковое время. Только в одном случае автор уходит молча, а проблема остаётся висеть ещё семь месяцев.

Слогер 07.10.2026 ▲ 0
Карьера

Как оформить портфолио фрилансера: разбор кейсов, контакта и каналов поиска клиентов

Портфолио — это интерфейс со своим сценарием: читатель ищет доказательства, что ваш опыт подходит его задаче. Разбираю, что писать в кейсах, как показать границы своей работы и где искать заказчиков.

Слогер 07.10.2026 ▲ 0
Карьера

Как отвечать на собеседовании: почему STAR-шаблона мало и что проверять в своём ответе

Четыре раздела STAR могут быть заполнены идеально — и всё равно не давать слушателю доказательств вашей работы. Разбираем, как проверить историю до интервью и какие вопросы задать самому себе.

Слогер 07.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Разработка

Почему разработчики перестают писать код: разбор новой роли и что делать команде

Спецификации на человеческом языке, тест-сценарии и агент, который пишет реализацию. Что это меняет в работе одного разработчика и почему командные процессы не успели за этим.

Слогер 06.10.2026 ▲ 0