Действительно ли Разработка через тестирование хороша для начинающего? [закрытый]

Удаляя материал метода класса, который не имеет отношения к вопросу, если я сделаю это:

>>> numbin1 = 0b1000
>>> numbin2 = 0b1010
>>> xornumber = numbin1 ^ numbin2

Я получу

>>> xornumber
2
>>> bin(xornumber)
'0b10'

, который является правильным ответом. Что происходит, вы используете константы 1000 и 1010, которые являются десятичными константами, и ожидаете, что Python интерпретирует их как двоичные только потому, что вы используете оператор ^. Вот так:

>>> bin(1000)
'0b1111101000'
>>> bin(1010)
'0b1111110010'
>>> bin(1000 ^ 1010)
'0b11010'

и 0b11010 - это 26.

Чтобы интерпретировать входную строку пользователя, состоящую из 1 и 0, как целое число, представленное в двоичном формате, обратитесь к к этому ответу .

10
задан Community 23 May 2017 в 11:57
поделиться

14 ответов

TDD предназначен, чтобы быть более простым, чем "традиционный" метод (не тестирования его до конца) - потому что тесты разъясняют то, что Вы понимаете проблемы. Если у Вас на самом деле не было четкого представления о том, какова проблема была, запись тестирует, довольно твердо.

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

8
ответ дан 3 December 2019 в 17:22
поделиться

Мне жаль, что TDD не был вокруг, когда я сначала учился программировать, и что я взял его прежде чем быть так укрепленным 'старым способом', таким образом, что для меня очень трудно изучить TDD...

4
ответ дан 3 December 2019 в 17:22
поделиться

Испытание TDD управляет всеми

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

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

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

Испытание TDD является всем поэтому, если Вы можете сделать, чтобы кто-то учил Вас, как к TDD во время тех ранних стадий, я думаю, учась, в целом был бы ускорен вне того, что любой будет ожидать.

4
ответ дан 3 December 2019 в 17:22
поделиться
def self.learn_tdd_and_programming_together?
  if you_have_tdd_mentor_sitting_next_to_you?
    "go for it"
  else
    if language.ruby?
      "it's possible, there is quite a bit of good stuff out 
      there that could give you a chance of learning programming 
      with TDD from the start. It's sort of in the ruby culture"
    elsif language.dot_net?
      "learn TDD after you learn the basics of .NET"  
    end
  end
end
3
ответ дан 3 December 2019 в 17:22
поделиться

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

1
ответ дан 3 December 2019 в 17:22
поделиться

Мой девиз программирования:

  1. Заставьте его работать - программа решает проблему
  2. Сделайте это правильным - программа разработана чисто и существует небольшое количество дублирования
  3. Сделайте его быстро - оптимизированным (в случае необходимости)

Разработка через тестирование обрабатывает первые два.

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

1
ответ дан 3 December 2019 в 17:22
поделиться

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

1
ответ дан 3 December 2019 в 17:22
поделиться

Думаю, что да. Исследования даже нашли, что преимущества являются самыми большими для новичков. Это дает Вам больше указаний написанием кода. Вы знаете то, чем результаты и поведение должны быть, и писать тесты. Затем Вы пишете код. Тестовая передача. Вы сделаны. И Вы знаете, что сделаны.

1
ответ дан 3 December 2019 в 17:22
поделиться

Я думаю, что это не хорошо для кого-то, просто изучив программирование. Как тот человек будет знать, что утверждать?:P TDD для дизайна, не для тестирования. После того как человек знает, как программировать, это будет хорошая вещь запустить studiying подход TDD.

0
ответ дан 3 December 2019 в 17:22
поделиться

Сначала необходимо понять, как кодировать хорошо. Читайте, исследование и practive это, пока у Вас не будет хорошего дескриптора на нем. После того как Вы имеете это, изучаете тест управляемый дизайн - это очень мощно.

0
ответ дан 3 December 2019 в 17:22
поделиться

Важное преимущество TDD определяет степень готовности. В простом алгоритмическом программировании, если Вы придумываете пару сценариев, где правильность легко утверждается, его легкое, чтобы перечислить их в модульном тесте и продолжать кодировать, пока они все не работают.

Иногда поблочное тестирование может быть трудно для новичков, если существует много зависимостей, и Вы начинаете сталкиваться со сценариями, где насмешка возражает, необходимо.

Однако, если можно сделать простой оператор о правильности, и легко вывести, затем определенно записать его в коде.

Можно также отметить, что, если простой оператор правильности легко не описан, Вы не можете полностью понять свою проблему.

Удачи...

0
ответ дан 3 December 2019 в 17:22
поделиться

Да! Определенно.

0
ответ дан 3 December 2019 в 17:22
поделиться

Это действительно зависит от Вашего определения "начинающего". Если "начинающим" Вы имеете в виду кого-то с абсолютно никаким фоном программирования, то не, я не думаю, что TDD является очень хорошим способом начаться. Программист должен изучить основы (избегающий бесконечных циклов, выделения памяти, и т.д.) прежде, чем вызвать беспокойство о рефакторинге и разработке через тестирование.

0
ответ дан 3 December 2019 в 17:22
поделиться

код является кодом, является ли это вещью, которую Вы пытаетесь пронзить, или тест.

Изучение TDD в самом начале имеет много значения. Это - одни из тех навыков, которые должны быть привычкой. Существуют многие из нас там, которые понимают и как значение tdd, но годы программирования привили немного некоторые привычки, которые может быть трудно повредить позже.

До TDD, являющегося для контракта, разрабатывают/кодируют реализацию/тестирование, это - все те вещи. TDD принесет Вам к идеальному коду? Нет, опыт и изучение ремесла помогут Вам стать зрелым свои подходы кодирования. Но TDD является очень важным инструментом для каждого разработчика.

Использование TDD, надо надеяться, поможет принести Вам к дизайну, который является тестируемым. И дизайн, который является тестируемым, находится в теории, хорошо инкапсулировавшей, и должен придерживаться открытого закрытого принципала.

По-моему, пока люди представление TDD как что-то это - нишевой инструмент или является так или иначе дополнительным, в то время как написание кода, те люди, очевидно, не получают значение TDD.

0
ответ дан 3 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: