воскресенье, 26 декабря 2010 г.

Saros или Distributed Pair Programming

  Многие люди знают или слышали о преимуществах парного программирования. Кто не слышал - http://en.wikipedia.org/wiki/Pair_programming. Но часто парное программирование невозможно из-за накладных расходов(распределенные комманды, нет столов для парного программирования, злые менеджеры).

  Общего решения проблемы не существует, но пользователям eclipse можно воспользоваться замечательным проектом Saros. Сей замечательный плагин вместе с сервисом VoIP вполне может заменить сеанс парного программирования "вживую".
  Что же нам предлагает сие творение:
  1. Интеграция с jabber протоколом. Все потенциальные партнеры по программированию это контакты в Вашем аккаунте. (Добавить новые можно прямо в эклипсе)
  2. VoIP сервис.(К сожалению нам не удалось его попробовать, из-за отсутствия нужных кодеков на серверах google, поэтому пользовались Skype)
  3. Проводить сеансы парного и группового программирования. Изменения в коде отображаются в реальном времени. Все файлы, над которыми работает driver отмечаются у участников сессии. "Клавиатура" передается простым кликом мыши на контакте. Есть экспериментальная поддержка нескольких driver'ов, вроде стабильно работает.
  4. Sharing of screen(Опять же, не попробовали по причине в пункте 2)
  Сами разработчики плагина рекоммендуют выделенный jabber сервер для разработки, но мы пошли путем наименьшего сопротивления и использовали почтовые аккаунты гугл. Надо отметить, что ничуть не лагало, а вполне сносно работало все. В будущем планируется установка полноценного jabber сервера для разработки в нашем проекте с поддержкой всех плюшек Saros'a. 
  Ресурсы и источники ( Делать howto из данного поста смысле нет, т.к. на сайте полно документации):

  1. Сам сайт проекта http://www.saros-project.org/
  2. Установка http://www.saros-project.org/InstallUsing
  3. И видео, во всей красе раскрывающее прелести Saros'а http://www.saros-project.org/DemoVideo
P.S.: При тестировании плагина через gmail ( да и вообще при ненахождении в локальной сети) обязательно отметьте галочку в настройках эклипса Window->Preferences->Saros->Advanced->Force file transfer over XMPP network(slow). Быть может при дальнейшей работе мы найдем способ настройки на прямое соединение, но не сегодня(NAT и файерволл настраивали, скорее всего он случайные порты выбирает для прямого соединения).