Tuesday, July 29, 2008

Совместное редактирование исходных текстов

Многие знают про технику парного программирования: это когда два программиста работают за одним компьютером, причем один набирает текст, а второй следит за ошибками и поправляет, периодически они меняются. Основной плюс данного подхода - в общении между членами команды (перечислять все преимущества не буду, читайте тут). С другой стороны, при таком подходе частенько хочется отобрать клавиатуру и написать быстренько самому, чем словами объяснять коллеге, что вы хотите.
Решений этой проблемы несколько. Некоторые стараются привнести идею парного программирования в обычную командную разработку, настаивая на регулярных мини-миттингах и "небольших" коммитах. Нельзя сказать, что этот способ плох, но все же он предполагает разделение задач между участниками команды.
В этой статье я хочу описать опыт использования инструмента для совместного редактирования кода Gobby - как по мне, это практически идеальное решение для парного программирования. Возможно, для кого-то из читателей это будет в новинку.
Итак, что такое Gobby - это бесплатный инструмент для совместного редактирования текста, который позволяет работать с несколькими документами одновременно, в котором есть чат и который работает во всех основных операционных системах (Linux, MacOS X, Windows, *nix). В действительности, Gobby - это просто редактор, который поддерживает технику парного(и более) программирования - только теперь вместо одной клавиатуры на всех у каждого программиста есть своя собственная.
Собственно об опыте использования: это невероятно! :) По пунктам:

  1. Еесли твой коллега находится далеко, то не нужно постоянно переключаться из окна IM мессенджера в окно редактора - все видно тут же.
  2. Смотреть, как появляется из ниоткуда исходный текст - это невероятно интересно!
  3. Очень удобно, что можно одновременно проверять работоспособность кода на разных машинах.
  4. Программистов может быть и не два, а больше, при этом так как вклад каждого отображается цветом, не запутаешься (в отличие от систем контроля версий, в которых выяснить, чья же это строчка кода, бывает трудно)
  5. Довольно удобный редактор с подсветкой синтаксиса без лишней функциональности
Из небольших неудобств - пока не нашел, можно ли поставить отображение курсора коллеги. Также стоит с небольшой грустью отметить, что под Windows есть некоторые проблемы с инсталляцией. Возможно, это единичный случай, но все же. Под Gentoo и Ubuntu все работает прекрасно, но так как множество разработчиков все же работает в Windows (по желанию или против оного :) ), то это может стать проблемой.
Скриншоты можно посмотреть здесь: http://gobby.0x539.de/trac/wiki/Screenshots
Чего не хватает: думаю, весьма полезен был бы централизованный сервер, на котором можно было бы любым желающим создавать сессии.
Аналоги: я не задавался целью найти что-нибудь аналогичное Gobby. Насколько мне известно, Eclipse поддерживает совместную работу. За любые указания на другие аналоги буду благодарен.