Я ненавижу проблемы с кодированием. И с этим покончено…

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

Но каким-то образом, по неизвестным мне причинам… это то, что многие ненавидят, и тем не менее является отраслевым стандартом… хотите работать в сфере технологий? Используйте эту ужасную онлайн-среду (а не вашу) IDE, которую все будут ненавидеть, чтобы ответить на совокупный вес задачи о человеке-арбузе, в которой есть 10 миллионов арбузов, размер которых изменяется по схеме Фибоначчи.

Мой вызов (каламбур)

Чего я хотел: можно ли явно использовать TDD для решения задач кодирования?

Что я нашел: зависит. (ответ программиста по умолчанию)

В то время как вы можете (и должны) использовать TDD даже без использования TDD. (по сути, вы проходите цикл красного-зеленого-рефакторинга, просто не написав тестов.)

Почему TDD может оказаться неподходящим инструментом для работы:

  • Вы можете в конечном итоге «потратить» время (особенно если это испытание на время) на вещи, которые не важны для текущего теста.

многие проблемы говорят, что ввод не нужно проверять

вы уже знаете минимальные/максимальные возможные значения

  • У вас уже есть тест-кейсы.

вы можете не знать, что это такое (а некоторые платформы даже скрывают, проходите ли вы все или нет… не знаю, почему…) так что вам вообще нужно писать тесты?

  • Многие проблемы самодостаточны.

большая часть того, что вам нужно сделать, может быть сделана в строке, а не в нескольких функциях/классах.

если вы начнете с неправильной абстракции или структуры данных, все созданное вами наращивание отправится в «мусор».

Тогда это бесполезно?

Я не говорю, что вы не получите решения с помощью TDD, вы его получите.

Скорее всего, когда вы совсем заблудитесь, TDD поможет найти решение…

Просто это может быть не «ЛУЧШЕЕ» решение, решение, которое пройдет все тесты (особенно на временную/пространственную сложность).

Теперь с тобой!

Каков ваш опыт решения задач кодирования?

У вас есть альтернатива их решению?

На данный момент лучший совет, который я получил и который я могу вам дать, — это тот, который вы, вероятно, увидите во многих играх (в каламбуре): «git gud ».

Фото на обложке Jukan Tateisi на Unsplash