TDD как форма внутренней дисциплины. Почему боль при тестировании — не баг, а признак зрелости.
«Такова судьба, Лешенька. Будем страдать.
Страданиями душа совершенствуется.
Вот папенька говорит, что одни радости вкушать недостойно.»
— Формула любви (1984)
Стоицизм как база для Test-Driven Development
Тест — это не просто инструмент проверки гипотезы. Это философский акт. Он — пауза, в которой разработчик встречается с самим собой, со своей глупостью и с той жалкой попыткой контролировать хаос, которую он гордо называет «системой».
Стоицизм учит нас принимать реальность такой, какая она есть. А TDD — принимать, что твой код, скорее всего, мусор, пока не доказано обратное. Эпиктет бы сказал: «Не баги тревожат людей, а их представления о баги». Настоящий стоик не орёт в чат: почему тест не проходит?! Он просто пишет ещё один тест. И улыбается. Потому что знает: страдания — это часть пути к просветлению, а просветление наступает, когда CI наконец-то зелёный.
Импульс и эстетика теста
Если тест проходит с первого раза — это скорее пугает. Это не победа, а ощущение, будто мир подстроился под твоё заблуждение. Стоик бы сказал: «Слишком лёгкая победа — это знак, что сражение ещё впереди». Ведь тест, который прошёл сразу, не столько подтверждает твой гений, сколько намекает, что ты, возможно, проверяешь не то, что нужно.
Тест — это импульс. Мгновенный акт воли: «Давай, система, покажи мне, кто из нас тут бог». И чаще всего — не ты. Но в этом и сила. Хороший тест, как афоризм стоика, звучит просто, а бьёт глубоко. Если твой тест выглядит как юридический договор между двумя идиотами — возможно, тебе нужно не рефакторинг, а терапия.
Эстетика тестирования — это не про порядок, а про здравомыслие в аду. Код обрастает зависимостями, методами, костылями — и только тесты напоминают тебе, что ты ещё способен к логике. Как стоик, который смотрит на рушащийся мир и говорит: «Да, я всё ещё могу различить хорошее и плохое». В твоём случае — pass и fail.
Практика стоического TDD
Стоицизм — это ежедневная тренировка в самоконтроле. TDD — ежедневная тренировка в самоуничижении. Каждый раз, когда ты запускаешь тест, ты смотришь в зеркало и видишь не «инженера», а того, кто написал эту кашу. Но именно это и делает тебя лучше. Потому что у тебя нет синдрома самозванца — ты просто самозванец, и все это видят. Но если ты продолжаешь писать тесты, значит, где-то глубоко внутри ты всё ещё веришь, что однажды обманешь всех и код действительно будет работать.
Тест — это твоя форма стоического дневника. В нём ты фиксируешь не победы, а провалы, и не стыдишься их. Ведь как сказал бы Сенека, если бы знал про CI/CD: «Каждый раз, когда падает пайплайн, душа получает шанс стать крепче».
Вместо эпилога
Практика тестирования — не техника, а этика. Мы не просто доказываем, что код работает — мы учимся терпеть боль от того, что он не работает. Мы принимаем ограниченность своего разума, некомпетентность коллег и бессмысленность Jira-тикетов. И в этом, возможно, есть некое извращённое спасение.
Стоицизм TDD не делает тебя счастливым. Он делает тебя функциональным.
А для инженера это и есть счастье.
Комментарии (9)

dyadyaSerezha
20.10.2025 02:24Это как посмотреть. Как сказал бы Платон, есть тесты и тесты. Первые - логичные, и если они падают, то надо просто найти ошибку в коде. Тут нет и не может быть никакого страдания - ты последовательно идёшь к цели и достигаешь её. Но есть и другие тесты, те, что на UI и всю систему. Вот там тест может падать по неизвестным причинам и в заранее неизвестные моменты времени. И эти тесты - истинная боль, порождающая неизбывное страдание и метания души.
Но если посмотреть глубже, гораздо глубже... То всё фигня, кроме пчёл (с) Сократ. Как сказал бы.

Renius Автор
20.10.2025 02:24Напомните мне пожалуйста не писать больше по ночам. )
Не так я много придавал значения страданию как получилось в статье
AndreyDmitriev
Давайте зайдём с другой стороны, так сказать, с противоположной философской концепции счастья. Гедонизм кода, как форма получения удовольствия от программирования. Не надо страдать. Нравится писать тесты? - Пишите! Но не делайте то, что вызывает страдания, их нужно просто избегать. Избегать правильным выбором архитектуры, использованием подходящих фреймворков, языков в конце концов, при этом надо всегда делать осознанный выбор. Всё это, наверное, приходит с опытом, я вот программирую больше двадцати пяти лет и до сих пор получаю от этого офигенное удовольствие. Это постоянное творчество и саморазвитие, и наслаждение от нового железа и софта. А если что-то там не работает как надо, так это мелочи, всё равно в конце всё будет хорошо.
Renius Автор
У меня не получается, простите. Гедонизм - пассивная практика. Гедонизм вообще плохо укладывается в созидательную практику
AndreyDmitriev
Созидательная практика тоже может приносить глубокое удовлетворение, которое само по себе является формой удовольствия. Ну вот, к примеру, художник, создавший шедевр, он же испытывает глубокое чувство удовлетворения?
Для меня статьи, что я на Хабр писал - гедонизм в чистом виде, я получил неимоверное удовольствие при ковырянии в том, о чём писал, и от самого процесса, хотя набор на кириллической клавиатуре и приносит мне определённые стоические страдания (я нечасто ею пользуюсь). Но смею надеяться, созидательная составляющая в этом есть.
Тут есть о чём поразмышлять, с одной стороны, действительно, стремление к гедонизму может привести к избеганию усилий и трудностей, необходимых для созидательной деятельности, но с другой стороны сюда также можно отнести и простоту и эффективное переиспользование кода, и это остаётся созиданием, просто идущим по пути наименьшего сопротивления.
Renius Автор
Однако некоторые художники с вами бы поспорили.
Вы описали высшее удовольствие как продукт преодолённого страдания, то есть то, что античные философы называли eudaimonia - не гедонизм (чистое удовольствие), а «удовлетворение от правильно прожитого действия». Так что я противоречий не вижу
AndreyDmitriev
С другой стороны создание шедевра ведь не всегда сопровождается страданием, это может быть чистое незамутнённое удовольствие от начала до конца (и вот где-то я читал, что в этом случае окончательное удовольствие совсем не такое, какое получается при версии с преодолённым страданием). Но я совершенно не силён в данной теме, хотя у меня и лежит дома двухтомник "Мир философии", я даже пробовал читать на сон грядущий, но читая эту книгу, я засыпаю быстрее чем осмысливаю прочитанное.
Renius Автор
Если не накладывать на слово "страдание" такую негативную коннотацию, то окажется что 86% человеков которые не хочут думать на самом деле ощущают трудности при мыслительном процессе, это трудно, это энергозатратно, это не вызывает дофаминового отклика - страдание. Тоже самое с человеками которые не любят спорт - не вызывает гармонального отклика.
А тесты... ну я чаще слышу нытье про: "тесты это дорого, тесты это долго, смотри у меня тут в коде 8 дебаг чекпоинтов - никакие тесты мне не нужны, я про них забуду утром мне это не важно, я же забуду и про баг".