Сегодня я разбирал семестровые работы студентов. Одна из работ на столько хорошо подходила для рефакторинга, что на лекции мы решили разобрать ошибки и исправить их. К сожалению, в лекционной нам не включили проектор, а запасная аудитория, которую мы в этом случае используем, была занята заочниками. Лекция сорвалась, но мы со студентами решили восполнить это упущение, тем более, что все хотели посмотреть, как можно было по-другому реализовать эту систему.
Мы договорились 18 декабря в 17.00 (время московское) сделать онлайн лекцию с разбором кода этого семестрового задания. Раз уж это будет онлайн лекция, я подумал, что можно предоставить доступ всем желающим (заодно опробовать идею с онлайн конференцией dotnetconf).
Как это будет:
- Думаю, что это будет похоже на совместное программирование на AgileCamp, когда я сидел за компьютером и мой экран отображался на проекторе. Все участники сначала обсуждали куда двигаемся, а я воплощал это в коде.
- Исходный код я выложу на Google Code. Чтобы его скачать надо будет установить TortoiseHg (Quick Start по TortoiseHg). Во время обсуждения я буду делать коммиты и пушить, так что все смогут получать себе последние версии кода. Ссылка на исходный код - http://code.google.com/p/tdd-refactoring-poker/source/checkout
- Будем писать программу для игры в покер, это и есть семестровое задание моего студента, которое он сам себе придумал. Я плохо знаю правила покера, поэтому буду рад экспертам в этой области :)
- Код будет в Visual Studio 2010, писать будем на WinForms/C#
- Я буду использовать ReSharper
- Тесты на xUnit
- Взаимодействие будем строить через GoToWebinar. Ссылка на регистрацию https://www3.gotomeeting.com/register/544517654. Не забудьте подключить микрофон, будет очень много живого общения.
По способу разработки я вижу два варианта:
- Рефакторить существующий код. Этот вариант меня немного беспокоит, потому что код очень запутанный, а тестов на него нет. Даже автор проекта не сможет гарантировать, что мы ничего не сломаем в логике.
- Оставить существующий код в виде артефакта, его не трогать, а писать систему заново с помощью TDD.
Я пока думал сделать второй вариант, но большинству интересен первый, поэтому будем рефакторить legacy code.
Буду рад услышать ваши пожелания по проведению. План написан примерный, в него можно вносить изменения.
Обратите внимание: автор проекта, студент 4-го курса кафедры Информатики, признал, что в коде есть недостатки и будет рад конструктивной критике.
Будет ли сделана видео запись? Очень хочу посмотреть и послушать, но к сожалению не смогу быть у компьютера в назначенное время?
ОтветитьУдалитьТак, если делать трансляцию через TeamViewer, там там по-моему нет видео записи. Что можно для записи видео использовать? Возможно вместо TeamViewer взять что-то другое?
ОтветитьУдалитьПосмотрите сюда: http://www.teamviewer.com/download/version_3x/teamviewer_manual.pdf
ОтветитьУдалитьРаздел 5.2
В новой книге от Scott-а Millett-а, которая называется "Pro Agile .NET Development with SCRUM", создаётся проект онлайн игры Блэкджек. Существует некий заказчик, который попросил разработать данную игру что бы добавить её в свой пул игр. На протяжении книги Скотт показывает работу команды по методологии SCRUM. Причём прописаны диалоги, каждого участника на stand-up встречах, обсуждениях и прочее. Не в этом суть. Они создают игру используя BDD вместе с TDD, а также CQRS. Почему бы не попробовать тоже самое или похожее, но с покером?
Было бы интереснее, конечно, посмотреть на то, как переделать неправильную архитектуру и при этом желательно, чтобы приложение находилось минимальное время в разломанном состоянии.
ОтветитьУдалитьТогда надо быть готовым к тому, что мы будем покрывать тестами код, который будем менять.
ОтветитьУдалитьКруто-круто :) Вот мой любимый пример разработки игры через TDD - http://www.objectmentor.com/resources/articles/xpepisode.htm
ОтветитьУдалитьПока два варианта есть, я думаю, что студенты решат, какой вариант для них интереснее и более практичный. Им через 2 недели надо зачет у меня получить))
Разве TeamViewer позволяет подключаться нескольким пользователям?
ОтветитьУдалитьА задавать вопросы?
Да, там есть все функции скайпа + доска и расшаренный экран.
ОтветитьУдалитьЭто классика. Книгу читал, но там только TDD. Тут же они совмещают приёмочные тесты с unit тестированием.
ОтветитьУдалитьРешён ли вопрос с записью? Мой часовой пояс не позволит смотреть сие действие онлайн. :(
Написать заново выглядит более легкой задачей, к тому же в жизни такой подход зачастую оказывается невозможен. Гораздо интереснее и сложнее исправить/улучшить уже существующий код. Это ведь и называется рефакторинг?! Посмотреть на покрытие тестами в реальной ситуации так же любопытно, особенно если код не в очень тестируемом состоянии изначально
ОтветитьУдалитьОчень хотелось бы посмотреть и послушать, но не смогу. Может есть какая то возможность сделать видео запись?
ОтветитьУдалитьСейчас буду пробовать запись через TeamViewer, когда попробую напишу
ОтветитьУдалитьМожно попробовать присоединиться, ID конференции m88-139-538
ОтветитьУдалитьОбратите внимание на время, исправил 12 декабря на 11 декабря.
ОтветитьУдалитьИсходный код http://code.google.com/p/tdd-refactoring-poker/source/checkout
ОтветитьУдалитьМожно параллельно использовать Wink для записи скринкаста.
ОтветитьУдалитьQuick Start для TortoiseHg http://tortoisehg.bitbucket.org/manual/2.1/quick.html
ОтветитьУдалитьДля того, чтобы код себе забрать хватит прочитать http://tortoisehg.bitbucket.org/manual/2.1/clone.html
ОтветитьУдалитьНовый ID m80-652-405, если и эта прервется, то опубликую новую
ОтветитьУдалитьПодключился. Какие-то звуки неприятные типо помех.
ОтветитьУдалитьНенависть, TeamViewer вылетает))) Какие будут варианты?
ОтветитьУдалитьМожет попробовать триальный gotomeeting.com?
ОтветитьУдалитьОн только за деньги будет работать.
ОтветитьУдалитьВ наш век, век межпланетных полетов и баллистических ракет... нет системы для онлайн трансляции?
http://www.nefsis.com/leads/free-trial.aspx
ОтветитьУдалитьБлин, точно))
ОтветитьУдалитьmikogo можно еще, только он звук вроде не передает...
Внимание: мероприятие переносится на следующую неделю. За это время я обкатаю ПО и куплю нормальную гарнитуру. Рад был всех увидеть :)
ОтветитьУдалитьhttp://www.xfire.com/
ОтветитьУдалитьКруутая штука
Мы то подождём, заодно обкатаешь технологию для конференции dotnetconf. А вот что студенты? У них то зачёт. Они могут ждать неделю?
ОтветитьУдалитьКстати может попробуешь посоветоваться с людьми, которые делали разные podcast, webcast и т.д. Например Дмитрий Нестерук.
http://nesteruk.wordpress.com/
Помню про гарнитуру для онлайн подкастов у него что то такое было.
А Макс купит себе микрофон. все сходится!
ОтветитьУдалить> А вот что студенты? У них то зачёт. Они могут ждать неделю?
ОтветитьУдалитьУ них зачет через 2 недели. Максиму (автор кода) вообще сильно повезет, потому что мы его семестровое будем делать :)
Я студентам уже показывал, как надо писать и автор кода уже знает недостатки, так что может всю неделю над ним работать. Возможно мы будем рефакторить уже улучшенный вариант.
Live meeting?
ОтветитьУдалитьМне тоже было интересно посмотреть, как решать проблему с помощью первого варианта.
ОтветитьУдалитьУже сейчас можно сказать, что лекция будет на платформе GoToWebinar. Подробности ближе к дате события.
ОтветитьУдалитьСсылка на страницу регистрации https://www3.gotomeeting.com/register/544517654
ОтветитьУдалить