
За карьеру получилось у меня поработать под руководством нескольких тимлидов, и я уже стал забывать их по именам, зато остались в памяти их любимые хоткеи. В некоторых описаниях вы, возможно и своих узнаете, а может и моих.
Обычно те тимлиды, к которым я попадал уже не писали код, или делали это очень редко. Чаще тимлид брал код из одного места, как-то его менял и переносил в другое, или не переносил, или переносил и делал задачу его починить. Всё, что делало большинство тимлидов, так или иначе было связано с чтением чужого кода. Но не весь код одинаков, поэтому разные способы его перемещения работают с принципиально разной скоростью, надёжностью и сопровождаемостью.
Ctrl+C тимлид-копипастер. Был тимлидом первой команды, куда я попал как начинашка-программист, поглощал литрами кофе и на его заляпаной клаве всегда были чистыми кнопки С и V. Код переносил без изменений, даже если тот был с багом и внутри проекта оставлял за собой следы вида «исправь минус на плюс в двадцати местах», и, разумеется, в одном месте забывал.
Потом был Ctrl+X тимлид-рефакторщик. Ctrl+V нажимал не всегда, и первое время казалось, что он просто ломает проект ради новых задач команды, потом оказывалось что он перетаскивает фрагменты туда, где они осмысленнее, и часто этим местом был /dev/null. Любимая фраза на ревью была «а давайте это удалим». Уже потом я прочитал умные книги и узнал, что по-научному это называет Continuous Refactoring, а разросшаяся мертвым кодом база это худшее, что бывает с проектом. За полгода он тихо удалил треть кодовой базы проекта, и никто этого не заметил.
Его сменил Ctrl+Arrow проектировщик. Самый спокойный и флегматичный человек в опенспейсе, снисходительно смотрящий на суетяхщихся «C» и «X» товарищей. Получив задачу, он сначала проводил маленькое исследование, смотря в потолок (но все думали, что он спит и вели себя тихо, опенспейс же), потом прыгал курсором в код и вписывал пару строк. Заметив явный изъян в коде, демонстративно отрывал руки от клавиатуры и погружался в очередное исследование.
Потом я ушел на проект с Ctrl+N тимлидом-бульдозером. Это был самый энергичный человек в команде и любую задачу начинал с создания нового файл и священного акта написания нового кода. Большого числа строчек нового кода. Очень большого числа строчек нового кода, который, как ни дроби на маленькие ревью, оставался “очень больншим новым куском кода, не надо тут инсинуаций”. От его коронной фразы «там почти всё правильно» глаз дергался у половины команды, а вторая в это время закидывалась валерьянкой пополам с энернетиками и готовилась к недельному спринту закрытия багов. Его PR можно было либо принять целиком, либо отправить в /dev/null, потому что отревьювать такое количество хм… пусть будет кода… за раз не мог даже техлид. Мы ему как-то сказали что можно использовать кодогенерацию, и тогда десять тысяч строк уложились бы в пятьсот, а не в новый файлик. Тогда у нас в проекте появился новый файлик кодогенератора, получился он совсем небольшой, всего на 10к строк в десяти функциях.
Лечить пошатнувшееся энергетиками и передозировкой валерьянки здоровье меня отправили в команду Ctrl+S hot-reload евангелиста. Этот вообще не верил в чтение кода, а просто сохранял файл и смотрел результат в запущенном приложении, и так по кругу, пока магия не сойдётся, наблюдая за живой системой. Работало обычно до момента, когда hot-reload ломался, тогда он ему приходилось идти за кофе и ждать пока проект пересоберется. Обычно кофе заканчивалось раньше, чем проект пересобирался с нуля.
Через полгода его сменил Ctrl+Z «здесьэтоненадо» батюшка, который пропроведовал revert религию. В особо тяжёлых багах просто откатывал комиты к нему приведшие, что естественно не радовало прихожан, зато позволяло продавать идеи реверта хозяину прихода. Технически было правдой, просто команда в этот момент молчала, открыв рты от изумления. Запасы валерьянки в опенспейсе также наличествовали и были заботливо разложены возле мониторов.
После двух сорваных мажоров недобатюшку сменил Ctrl+/ комментатор, который комментировал код «на всякий случай, вдруг понадобится». Проект обрастал мёртвым кодом, и уже никто, включая автора, не помнил, какой можно трогать, а какой нет. За полгода проект нарастил кодовую базу на треть, и никто этого не заметил. В итоге пришлось звать Ctrl+X супермена, которые следущие полгода чистил эти конюшни, тихо матерясь на предшественника при каждом новом // вдруг понадобится и сьев, запасенные командой на зиму, запасы валерьянки.
В одной из студий я встретил Ctrl+F редкий подвид тимлида-серчмэна. Архитектуру тот не помнил в принципе, но нужную строку находил быстрее, чем я успевал договорить вопрос. Обычно код на ревью приходил с кучей // TODO закладок, по которым он ориентировался как акула на запах крови. Его усилия по наращиванию кодовой базы были неоценимы, но опять этого никто не заметил.
В другой студии и на другой игре, повстречался мне очень редкий вид Ctrl+Shift+H тимлида, которому выдали старое легаси и картбланш на рефактор всего-и-вся. Понедельник начинался обычно с переименования переменных вида id во всём репозитории вместе со строковыми литералами, комментариями, чужим вендоренным кодом и, половиной документации. Пятница радостно заканчивалась под ворнинги частично положеного прода и веселыми выходными тех, кому выпало дежурить нинзя-фиксиками.
Проект в итоге отдали F2-коллеге, который был более мудрой версией этого Ctrl+Shift+H монстра. F2-мэн делал честный рефакторинг, маленькиими изменениями. На него никто никогда не жаловался, его изменения никто не ревьювал, и поэтому имени его никто не запомнил.
На одном из проектов попался мне F12-ныряльщик, который по проекту перемещался прыжками «перейти к определению», и часто уходил в клубок вызовов так глубоко, что выныривал уже где-то в исходниках стандартной библиотеки и пытался там что-то поправить. Помнил через какие функции можно добраться до нужного кода и пару раз положил прод, починив стандартную библиотеку.
На том же проекте работал товарисчЪ Tab-автодополнятель, который на 90% писал код, предложенный Copilotом. Обычно код компилировался, но всегда делал чуть-чуть не то, что задумано. Видимо, это была новая версия Ctrl+C-копипастера, только теперь источник копипасты жил в облаке и брал деньги за подписку.
До автодополнятеля был, еще Alt+Enter птица-дятел, который кода руками почти не писал, полагаясь на «умные действия» идешки, вроде импортировать, создать метод, обернуть в try. Проект был под андроидом, поэтому собраная из подсказок редактора программа, кое-как заводилась и работала.
В начале моего пути мне повстречался одинокий F5-динозавр, который глазами код почти не читал, а запускал игру и смотрел что работает, а что нет. Любил на полдня зависнуть в точках останова, а без отладчика пребывал в дурном настроении, выводя команду на канбан-доску и растреливая её тасками.
На одном из последних проектов я заметил ранее невиданный вид Alt+Tab птицы-дятла. Этот вёл пять задач одновременно и ни одну не доводил до завершения, а на митингах говорил, что был очень занят очередными задачами, и формально не врал, но команда начала подозрительно смотреть в сторону аптечек соседних опенспейсов и придумывать, где бы прикупить валерьянки.
З.Ы. За все эти годы автор понял, что лучший тимлид измеряется не числом добавленных строк, а числом удаленных. Лучшая правка та, которой не было. А лучший хоткей, это кнопка выключения монитора.
З.З.Ы Все персонажи, хоткеи, тимлиды, кофе, валерьянка, конюшни и прод, положенный в пятницу являются художественным вымыслом и плодом воображения автора, любое совпадение с реальными людьми, живыми или уволившимися, случайно и, скорее всего, является вашей паранойей. Никаких бульдозеров в реальных проектах никогда не существовало, потому что бульдозер это строительная техника, а если вы только что вздрогнули это пропущеная таблетка валерьянки, а не узнавание.
З.З.З.Ы Автор решительно отрицает, что когда-либо работал с кем-либо из описанных, и вообще всю карьеру провёл в идеальном опенспейсе с радушными коллегами и замечательными тимлидами, которые никогда не комментировали код «на всякий случай».
ссылка на оригинал статьи https://habr.com/ru/articles/1041102/