Практикум

13.12.2020

Зимним воскресным днём собрались небольшой и дружелюбной компанией с Московским клубом программистов потренироваться в написании кода и тестов.

Как всё прошло? “Путевые заметки” от Светы

  • Сначала мы совместно обсудили и подискутировали про TDD подход к разработке, его преимущества и сложности. Также мы с Марком поделились своими знаниями и опытом работы с этим подходом.
    Инфо: про TDD написано много статей и книг, чтобы не повторяться, можно найти больше инфо в книге Кент Бек “Экстремальное программирование. Разработка через тестирование” или покороче в статье.

  • Потом посмотрели на пример разработки по TDD про високосный год, который я показывала на Java. Это хороший и быстрый вариант упражнения, чтобы показать суть TDD и обсудить возникающие вопросы.
    Инфо: В качестве альтернативного упражнения для введения в TDD также может подойти FizzBuzz. Его тоже можно написать с нуля довольно быстро и наглядно.

  • Затем мы выбрали упражнения для дальнейшей тренировки в группах. По предложению Марка взяли упражнения на числа Фибоначчи, сначала с простым алгоритмом, но медленным (например, в цикле или с рекурсией), потом с рефакторингом на быстрый алгоритм (упражение 1.19 из SICP). Для этого самоорганизовались в две группы по три человека — одна группа на Java, другая на C#.

  • Каждая группа самостоятельно выбирала процесс работы. Ребята с C# подключились к проектору и активно пользовались доской.
    Мы с Java собрались втроём вокруг ноутбука и передавали его друг другу, периодически меняясь. Мы использовали парное/групповое программирование с вариацией для TDD. Иногда мы прерывались, чтобы поинтересоваться как дела у другой группы. Потом обсудили результаты все вместе.
    Инфо: мы использовали driver/navigator и ping pong стили, когда каждый участник пишет код под уже существующий тест, а потом пишет тест для следующего участника. Например, можно почитать про это тут.

  • Закончив упражнения с числами Фибоначчи, мы поняли, что расходиться пока ещё не хочется, и решили попробовать другие упражнения на TDD. Мы в группе с Java взяли упражнение на строковый калькулятор StringCalculator, а ребята на C# заинтересовались римскими цифрами и строковым калькулятором для них.

  • Через пару часов после начала, решили, что уже пора расходиться и закончить упражнения на том логическом шаге, что есть сейчас. Кратко подвели итоги — кому что понравилось, и что было полезно. Прозвучало много тёплых отзывов и пожеланий повторить похожее мероприятие ещё.

Локация и конфигурация: Нас согласились приютить в небольшом, уютном и удобном хакспейсе (с котиком) в районе м. Чкаловская (ближайшая), м. Курская, или м. Китай-город (около 15 минут пешком). Участвовало шесть человек, работали как в группе все вместе, так и самоорганизовались позже в мини-группы по три человека. И котёнок с фото тоже приходил помогать и парно программировать.