TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #3105 2.21K
День 2584. #Карьера
Коллега Сказал Мне, что Мой Код «Уровня Джуна». Начало
47 комментариев. Я посчитал дважды, потому что сначала подумал, что что-то пошло не так. Может глюк утилиты сравнения? Но нет.

Знаете чувство, когда ты только что выпустил что-то, чем искренне гордишься. Я отправил PR, ожидая… ну, не знаю… пару придирок. Вместо этого я получил бесконечный документ с комментариями. Каждый комментарий — небольшой, точечный удар. А внизу, от инженера, которого я никогда не встречал, фраза, которая перевернула что-то внутри меня: «Это похоже на код джуна».

Я закрыл ноутбук, прогулялся вокруг квартала… дважды… Тот момент, когда обратная связь перестаёт касаться вашей работы и начинает ощущаться как касающаяся вас. Инстинкт срабатывает быстро. Отвергать. Защищаться. Обновить резюме.

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

PR, которым я гордился
Я работал уже 5 лет без нареканий. Получил уверенность, которая появляется, когда то, что вы выпускаете, в целом работает, и на вас никто не орёт. PR представлял собой рефакторинг конвейера данных. Около 800 строк в шести файлах. Тесты пройдены. Производительность улучшена. Я даже добавил подробные комментарии, что (как мне казалось) свидетельствовало о зрелости. В моей голове такой PR одобряют без лишних проблем, может быть, с небольшим комплиментом. Вместо этого я получил мастер-класс по всему, чего я не знал, что не знаю.

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

Одна функция одновременно обрабатывала валидацию и преобразование. «Это разные обязанности», — написал коллега. «Когда требования изменятся, а они изменятся, ты потратишь дни на то, чтобы разобраться в этом».

Я написал умный код. Компактный. Гордился его плотностью. «Мне пришлось перечитывать это три раза», — один из комментариев. «Умно — значит дорого. Ясность — вот в чём ценность».

Моя обработка ошибок была оптимистической. Счастливый путь сиял, несчастливые пути были запутанными и несогласованными. «В проде в основном несчастливые пути. Твой код этого ещё не знает».

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

Я думал, что сеньор — это решение более сложных проблем. Более сложные алгоритмы и архитектуры. Это не так. Работа опытного инженера заключается в решении проблем таким образом, чтобы не создавать новых. Код, который выдерживает взаимодействие с коллегами, меняющиеся требования, инциденты в 2 часа ночи и вашу забывчивость. Речь идёт не о том, чтобы быть умным, а о том, чтобы быть внимательным к будущему.

На практике для меня это было неочевидно. Я оптимизировал код, ориентируясь на «работает ли это», вместо того чтобы оптимизировать его на «что произойдёт, когда это сломается».

Окончание следует…

Источник:
https://medium.com/beyond-localhost/a-google-staff-engineer-told-me-my-code-was-junior-level-he-was-right-69ba2f80b7d3
  • 👍 49
  • 👎 2
More from @netdeveloperdiary
  1. Sep 28, 2026День 2798. #Оффтоп Утиная Типизация в C# с Помощью Перехватчиков. Часть 2 Некоторое время…
  2. Sep 27, 2026День 2797. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Окончание Начало Продол…
  3. Sep 26, 2026День 2796. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Продолжение Начало Три…
  4. Sep 25, 2026День 2795. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Начало Проблема с позиц…
  5. Sep 24, 2026День 2794. #Оффтоп #Здоровье Сегодня будет необычный пост. Завтра в Москве стартует конфер…
  6. Sep 23, 2026День 2793. #ЗаметкиНаПолях #SQL 10 Редких Возможностей SQL, Которые Стоит Знать Каждому. Ч…
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 →