На прошедшей встрече участникам посчастливилось стать очевидцами такого явления как программерский пинг-понг в исполнении двух Антонов. Вот видео, наслаждайтесь!
Так называемое «пинг-понг программирование» является детищем двух известных практик экстремального программирования — парного программирования, и разработки через тестирование. Суть в том, чтобы писать тесты до того как будет написан сам код, при этом, выдерживая наименьшие шаги при написании кода. Т.е. один программист пишет один тест, который компилируется, но «падает». Затем, второй программист должен написать код, который будет отвечать заранее написанному тесту, и, соответсвенно он же должен будет написать следующий тест, чтобы первый программист написал соответствующий код.
Всё это весело и довольно эффектно, но без сомнения требует довольно высокой концентрации на поставленной задаче. Будем рады, если в этой презентации кто то нашёл для себя нечто полезное. Наша цель была показать, как можно программировать вдвоём, а заодно и заставить задуматься присутствующих программистов, как они пишут свой код. Пишите комментарии, соучастники! 🙂
Maxim
Видеопотоки не совпадают по времени. В середине видео ScreenCapture опережает видеокамеру секунд на 10.
Антон Ахрипов
спасибо! посмотрим что можно сделать
Дмитрий Коновалов
Хочу поблагодарить Антонов за очень интересную и увлекательную презентацию такого необычного подхода к разработке программ. По-моему получилось здорово! Молодцы! Разумеется презентация носила ознакомительный характер и не смогла охватить всех сторон разработки программ, но лично меня это подталкнуло к дальнейшему самостоятельному изучению экстремального программирования в целом и этого вида в частности. Я присутствовал на встрече, поэтому видео еще не смотрел, комментировать не буду.
Антон Ахрипов
Дмитий, спасибо на добром слове! По сути цель уже достигнута, если тебя тема заинтересовала.
Aare
Действительно интересный подход к програмированию. Жалко только что он так сильно основывается на обьэктно ориентированный подход. Такие веши как getTotal()-функии я бы сразу переписал в UpdateBillInfo()-стиль, в функию пересчитываюшую все зависимые (derived) части счета. И запускал-бы я эту функцию после каздого изменения в счете. (Для оптимизации можно исползовать разного вида dirty-флаги, указиваюшие какая часть информации устарела)
Антон Архипов
продемонстрированный подход совершенно не завязан на ООП. TDD можно применять с любой парадигмой программирования.
неособо заметил, чем описанный выше подход лучше. то что сложнее — фаставление флажков и тп — это точно. больше похоже на процедурный подход. хотя может я чего то не понял
Aare
так и есть, мой подход исходит из процедурного программирования. давно пытаюсь обуздать шпагетного монстра 🙂
Anton
могу только посочувствовать :))
Aare
Спасибо 🙂
Anton Keks
Мега-статья, «pair programming is not for the masses», которая хорошо описывает, каким критериям должна соответствовать здоровая команда девелоперов, чтобы смочь делать pair programming, и какая от этого польза. Recommended read: http://blog.obiefernandez.com/content/2009/09/10-reasons-pair-programming-is-not-for-the-masses.html
Vasyl
В целом подход понятен и очень прозрачен.
Но для наглядности можно было бы одному из участников конференции предложить попедалить все вместе и тесты и код, а потом дать ему в помощь одного из докладчиков для написания тестов. Лично на своем опыте знаю , что так очень наглядно :)).
Не совсем удачный пример, если честно выбран , для самого приложения… как говорил Галыгин (с) «Был у меня один могильничек …» — писал я разбор строки ну и тесты к нему очень полезны оказались тесты особенно когда их стало больше т.е. с большим покрытием бизнес логики . Так к примеру было видно где одни тесты проходят а другие нет хотя как должно быть в идеале все тесты должны проходить .
Но все равно спасибо за видео.
Антон Архипов
спасибо за мнение!
Yury
Господа, подскажите, а какую они нажимают комбинацию клавиш:
Test
-> ??? ->
@Test
public void ()
Антон Архипов
это кастомный live template
Andrei Solntsev
@Yury Да, это кастомный live template. Набираешь «Test», нажимаешь TAB, и вместо «Test» появлается тест.
Но в последних версиях IDEA это можно делать проще, кастомный live template больше не нужен. Теперь просто Alt+Insert -> «Test method».