Около года назад я нашел сообщение в блоге, написанное программистом с более чем 40-летним опытом. Это отличный рассказ для чтения, я настоятельно рекомендую его. Среди других замечательных вещей в этом блоге был совет, который гласил: Прочтите не менее 6 книг в год. Это может показаться многословным, но это всего лишь 1 книга за 2 месяца, ничего особенного. Самое замечательное в том, что через 5 лет вы прочтете 30 книг, а это большой опыт.

Когда вы ищете отличные книги по разработке программного обеспечения, вы не можете пропустить Роберта К. Мартина (дядя Боб). Также существует серия книг, написанных или написанных дядей Бобом. Я читал несколько из них, и почти в каждом упоминалась дисциплина Кодекса ката. Это действительно интересная философия профессионального обучения компьютерному программированию. Короче говоря, он вдохновлен карате. Ката - это упражнение в карате, в котором вы повторяете форму много-много раз, делая небольшие улучшения на каждом шаге. Его можно применить и к технике программирования.

Для этого блога я выбрал ката для игры в боулинг. Это упражнение TDD для простой консольной игры. В этой игре применяются стандартные правила игры в боулинг.

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

Запас - это когда игрок сбивает все 10 кеглей за две попытки. Бонус за этот кадр - количество кеглей, сбитых при следующем броске. Итак, в кадре 3 выше результат равен 10 (общее количество сбитых очков) плюс бонус 5 (количество кеглей, сбитых при следующем броске).

Забастовка - это когда игрок сбивает все 10 кеглей с первой попытки. Бонусом для этого кадра является стоимость следующих двух брошенных шаров.

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

В этом упражнении я использовал C # в качестве языка и .net в качестве фреймворка. В качестве IDE я использую Visual Studio 2017, вы можете использовать более старые версии VS, это не должно быть проблемой.

Для удобства я использую:

  • Представление группы вертикальных вкладок (в Visual Studio выберите "Окно-› Новая группа вертикальных вкладок ").
  • CTRL + SHIFT + B для быстрой сборки.
  • CTRL + R, A, чтобы запустить все тесты.

Принцип TDD прост, быстр, небольшие итерации от RED- ›GREEN-› Improve. Это означает, что вы сначала пишете тест на падение, затем пишете код для прохождения теста, а затем улучшаете. Делайте это циклами, как ката.

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

Вот некоторые улучшения кода, которые можно добавить, чтобы сделать код более читабельным.

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

Эта презентация очень помогла мне для этого видео.

Если вы хотите узнать больше о кодовых ката, вы можете многое найти по этим ссылкам:

Http://codekata.pragprog.com

Http://codingdojo.org

Http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata

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

И, наконец, если вы нашли этот пост полезным, не стесняйтесь поделиться + передать его ❤️, чтобы другие тоже могли его найти!