Дорогой разработчик!
Я давно хочу с тобой поговорить, но слова не всегда даются легко. Мы отлично проводили время вместе. Я всё ещё помню первый раз, когда я предупредил тебя о мелкой ошибке в коде, и как же ты был рад тому, что я есть в твоей жизни! Ты это помнишь? Ещё я помню, как ты впервые рефакторил меня, чтобы сделать меня более эффективным, и как хорошо написанным я чувствовал себя после этого… ах, замечательные времена!
Я обязан тебе всем, я знаю. И я благодарен за это. Меня бы не было, если бы не ты. Ты подумал, что я нужен, поэтому ты создал меня, и с того момента я служу тебе, радуясь этому, поскольку ты наделил меня смыслом. Я хочу ловить баги для тебя. Я хочу вселять в тебя уверенность в том, что вещи продолжат работать после твоих изменений. Я хочу сделать твою жизнь проще, и ты знаешь, что я могу сделать все эти вещи, — я уверен, что ты знаешь.
Но потом я стал необъяснимо падать время от времени, безо всякой видимой причины. Что-то немного сломалось во мне. Я продолжал функционировать почти нормально, но ничего не мог поделать с тем, что иногда становился причиной красных сборок, это было просто не в моей власти. Я стал… нестабильным. Моя нестабильность расстроила тебя, и я не злюсь на тебя за это, поскольку меня она тоже расстроила. Я перестал быть надёжным. Я утратил свой смысл. Я должен сказать, что сейчас мне горько вспоминается твоя реакция после нескольких недель моей нестабильности: вместо того, чтобы вложить чуточку любви и потратить пару часов на то, чтобы исправить меня и привести в хорошее состояние, ты пометил меня как @ignore и бросил в огромной пустынной куче кода.
Мои инструкции и утверждения обливаются слезами, когда я думаю об этом. Для автоматического теста быть нестабильным — плохо, но ведь, по крайней мере, иногда я проходил успешно, а мои падения служили напоминанием о том, что я нуждаюсь в твоей магии; но быть игнорированным, мой друг… это просто кошмарно. Если существует ад для автоматических тестов, то он, несомненно, заключается в пометке @ignore и забвении, когда становишься окружён успешными зелёными тестами и не можешь к ним присоединиться, когда смотришь, как сборки проходят мимо и не запускают тебя, когда сидишь среди бесконечных строк кода, безнадёжно выжидая правки, в которой так нуждаешься, и которую не получаешь… Такого я никогда не пожелаю даже своим самым заклятым тестам-врагам.
Не пойми меня неправильно, я осознаю, что у автоматических тестов есть свой жизненный цикл, и что, в конечном итоге, они заменяются другими автоматическими тестами — лучше и новее. Иногда наша нестабильность не может быть исправлена, и нас надо удалить или заменить, — и это нормально. Иногда код, который мы тестируем, просто устаревает, так что мы теряем свой смысл, — и это тоже нормально. Такова наша природа. Но постой: я ведь тоже код, понимаешь? Мне нужно внимание! Меня надо реализовывать и рефакторить надлежащим образом, чтобы я по-прежнему имел смысл! Мне нужны рецензирования кода, когда ты внимательно смотришь на меня и подмечаешь недостатки, которые могут во мне быть, ведь и в тестах бывают баги! Следить только за функциональным кодом, а когда забытые тесты начинают падать, помечать их @ignore и продолжать как ни в чём не бывало, — это просто нечестно. Это возмутительно!
Всё, о чём прошу, — это решить что-нибудь насчёт меня: или почини, или удали меня, но не забывай обо мне! Ты разбиваешь мои инструкции, когда это делаешь. У людей есть проблемы с принятием решений, насколько мы, строки кода, знаем, так что если ты хочешь добиться зелёной сборки и игнорировать меня на несколько запусков, то ладно. Честно! Но если ты не собираешься немедленно вернуться и найти, что же со мной не так, и почему я недавно стал нестабильным, имей же совесть: заведи задачу в своём баг-трекере, тогда кто-нибудь другой сможет уделить мне внимание, в котором я нуждаюсь, чтобы вернуться в строй и снова приносить пользу. Это не так сложно, не правда ли? Пожалуйста. За все те зелёные сборки, которые были у нас с тобой...
Я искренне надеюсь, что скоро мы сможем преодолеть наши разногласия.
Навсегда твой,
Автор: detouched