TDD как форма внутренней дисциплины. Почему боль при тестировании — не баг, а признак зрелости.

«Такова судьба, Лешенька. Будем страдать.
Страданиями душа совершенствуется.
Вот папенька говорит, что одни радости вкушать недостойно.»
Формула любви (1984)

Стоицизм как база для Test-Driven Development

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

Стоицизм учит нас принимать реальность такой, какая она есть. А TDD — принимать, что твой код, скорее всего, мусор, пока не доказано обратное. Эпиктет бы сказал: «Не баги тревожат людей, а их представления о баги». Настоящий стоик не орёт в чат: почему тест не проходит?! Он просто пишет ещё один тест. И улыбается. Потому что знает: страдания — это часть пути к просветлению, а просветление наступает, когда CI наконец-то зелёный.

Импульс и эстетика теста

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

Тест — это импульс. Мгновенный акт воли: «Давай, система, покажи мне, кто из нас тут бог». И чаще всего — не ты. Но в этом и сила. Хороший тест, как афоризм стоика, звучит просто, а бьёт глубоко. Если твой тест выглядит как юридический договор между двумя идиотами — возможно, тебе нужно не рефакторинг, а терапия.

Эстетика тестирования — это не про порядок, а про здравомыслие в аду. Код обрастает зависимостями, методами, костылями — и только тесты напоминают тебе, что ты ещё способен к логике. Как стоик, который смотрит на рушащийся мир и говорит: «Да, я всё ещё могу различить хорошее и плохое». В твоём случае — pass и fail.

Практика стоического TDD

Стоицизм — это ежедневная тренировка в самоконтроле. TDD — ежедневная тренировка в самоуничижении. Каждый раз, когда ты запускаешь тест, ты смотришь в зеркало и видишь не «инженера», а того, кто написал эту кашу. Но именно это и делает тебя лучше. Потому что у тебя нет синдрома самозванца — ты просто самозванец, и все это видят. Но если ты продолжаешь писать тесты, значит, где-то глубоко внутри ты всё ещё веришь, что однажды обманешь всех и код действительно будет работать.

Тест — это твоя форма стоического дневника. В нём ты фиксируешь не победы, а провалы, и не стыдишься их. Ведь как сказал бы Сенека, если бы знал про CI/CD: «Каждый раз, когда падает пайплайн, душа получает шанс стать крепче».

Вместо эпилога

Практика тестирования — не техника, а этика. Мы не просто доказываем, что код работает — мы учимся терпеть боль от того, что он не работает. Мы принимаем ограниченность своего разума, некомпетентность коллег и бессмысленность Jira-тикетов. И в этом, возможно, есть некое извращённое спасение.

Стоицизм TDD не делает тебя счастливым. Он делает тебя функциональным.
А для инженера это и есть счастье.

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


  1. AndreyDmitriev
    20.10.2025 02:24

    Давайте зайдём с другой стороны, так сказать, с противоположной философской концепции счастья. Гедонизм кода, как форма получения удовольствия от программирования. Не надо страдать. Нравится писать тесты? - Пишите! Но не делайте то, что вызывает страдания, их нужно просто избегать. Избегать правильным выбором архитектуры, использованием подходящих фреймворков, языков в конце концов, при этом надо всегда делать осознанный выбор. Всё это, наверное, приходит с опытом, я вот программирую больше двадцати пяти лет и до сих пор получаю от этого офигенное удовольствие. Это постоянное творчество и саморазвитие, и наслаждение от нового железа и софта. А если что-то там не работает как надо, так это мелочи, всё равно в конце всё будет хорошо.


    1. Renius Автор
      20.10.2025 02:24

      У меня не получается, простите. Гедонизм - пассивная практика. Гедонизм вообще плохо укладывается в созидательную практику


      1. AndreyDmitriev
        20.10.2025 02:24

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

        Для меня статьи, что я на Хабр писал - гедонизм в чистом виде, я получил неимоверное удовольствие при ковырянии в том, о чём писал, и от самого процесса, хотя набор на кириллической клавиатуре и приносит мне определённые стоические страдания (я нечасто ею пользуюсь). Но смею надеяться, созидательная составляющая в этом есть.

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


        1. Renius Автор
          20.10.2025 02:24

          Однако некоторые художники с вами бы поспорили.

          Вы описали высшее удовольствие как продукт преодолённого страдания, то есть то, что античные философы называли eudaimonia - не гедонизм (чистое удовольствие), а «удовлетворение от правильно прожитого действия». Так что я противоречий не вижу


          1. AndreyDmitriev
            20.10.2025 02:24

            С другой стороны создание шедевра ведь не всегда сопровождается страданием, это может быть чистое незамутнённое удовольствие от начала до конца (и вот где-то я читал, что в этом случае окончательное удовольствие совсем не такое, какое получается при версии с преодолённым страданием). Но я совершенно не силён в данной теме, хотя у меня и лежит дома двухтомник "Мир философии", я даже пробовал читать на сон грядущий, но читая эту книгу, я засыпаю быстрее чем осмысливаю прочитанное.


            1. Renius Автор
              20.10.2025 02:24

              Если не накладывать на слово "страдание" такую негативную коннотацию, то окажется что 86% человеков которые не хочут думать на самом деле ощущают трудности при мыслительном процессе, это трудно, это энергозатратно, это не вызывает дофаминового отклика - страдание. Тоже самое с человеками которые не любят спорт - не вызывает гармонального отклика.

              А тесты... ну я чаще слышу нытье про: "тесты это дорого, тесты это долго, смотри у меня тут в коде 8 дебаг чекпоинтов - никакие тесты мне не нужны, я про них забуду утром мне это не важно, я же забуду и про баг".


  1. dyadyaSerezha
    20.10.2025 02:24

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

    Но если посмотреть глубже, гораздо глубже... То всё фигня, кроме пчёл (с) Сократ. Как сказал бы.


    1. Renius Автор
      20.10.2025 02:24

      Напомните мне пожалуйста не писать больше по ночам. )
      Не так я много придавал значения страданию как получилось в статье


      1. dyadyaSerezha
        20.10.2025 02:24

        Напомните мне напомнить тогда)