Подтвердить что ты не робот

Упражнения для обеспечения соблюдения передовой практики, такой как TDD и Mocking

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

Моя основная цель - ускорить процесс, чтобы кто-то понял концепции TDD и фактически был эффективен при их реализации. Есть ли свободные ресурсы, подобные этому?

4b9b3361

Ответ 1

Это трудная вещь, которую нужно поощрять, потому что ее можно воспринимать (довольно справедливо) как морское изменение; не столько продвижение к цели, сколько совершенно иной подход к вещам.

Краткий список рекомендаций:

  • Вам нужно быть лидером, вам нужно стать опытным, прежде чем вы сможете убедить других в том, что вам нужно показать другим путь и урегулировать их неопределенности.

  • Сначала станьте опытными в написании модульных тестов

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

    • Если вам нелегко начать работу, найдите самые простые методы и используйте их в качестве отправной точки.

  • Затем сосредоточьтесь на улучшении проверяемости кода, который вы производите

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

Лично у меня был мой "момент ясности" при чтении книги Боб Мартина "Чистый код"; в ранней главе рассказывается о том, как будет выглядеть чистый метод, и в качестве примера он использует метод линии шириной до 40, который визуально напоминает что-то, что я произвел, и реорганизует его в класс, который является едва ли большим количеством строк, но не состоит из ничего но методы размера укуса, которые, возможно, составляют 3-7 строк.

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

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

Ответ 2

Вы можете попробовать посещать (или размещать один, если поблизости нет вас!) кодирование dojo

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

Ответ 3

Книги всегда являются хорошим ресурсом - хотя и не бесплатным - они могут стоить вашего времени на поиск хороших бесплатных ресурсов - за те деньги, которые стоят эти книги.

"Разработка, основанная на тестах на примере" от Kent Beck.

"Test Driven Development in Microsoft.NET" Джеймса У. Ньюкирка и Алексея А. Воронцова

не стесняйтесь добавлять в этот список

Ответ 4

Одна вещь, с которой я работал, помогла мне оценить, что TDD больше было NHibernate и шаблон рабочей единицы. Хотя он специфичен для NHibernate и .NET, мне понравилось, как он был устроен. Используя TDD, вы разрабатываете что-то (UnitofWork), которое на самом деле полезно, а не простой пример "это то, что насмехается".

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

Ответ 5

Выродки отлично работают над метрикой, независимо от того, хороши ли они для них или нет!

Вы можете использовать это в своих интересах. Настройте CI-сервер и выйдите из строя, когда покрытие кода опустится ниже 50 процентов. Сообщите им, что порог будет расти на 10 процентов каждый месяц до 90. Возможно, вы можете использовать некоторые фиксации фиксации, чтобы они не могли проверить код, но я никогда не пробовал это сам.

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

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

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

Ответ 6

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

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

Наконец, научитесь "слушать тесты". Когда тесты выглядят ужасно, подумайте над тем, является ли это кодом, который виноват, а не ваш метод тестирования.