SourceTalk: веб-конференции для обсуждения исходных кодов

в 3:20, , рубрики: совместная разработка, удаленная работа, фриланс, я пиарюсь, метки: , ,

Доброго тебе времени суток, дорогойин. Сегодня я хотел бы проанонсировать тебе (да-да, от слова «реклама») новый сервис, совмещающий возможности онлайн-конференций и совместного просмотра исходных кодов. Если ты программист, много работаешь удалённо и сталкиваешься с проблемой обсуждения исходников со своими коллегами — добро пожаловать под хаброкат.

Завязка

Идея проекта возникла во время одного из неформальных разговоров о преимуществах и недостатках удалённой работы. Я, как большой поклонник удалёнки, высказался в том плане, что работа в офисе уже сегодня анахронизм (речь шла только о программировании), и пока ещё продолжается исключительно по причине инерционности мышления работодателей. Возражение заставило меня задуматься, так как оголило действительно существующую проблему удалённой разработки: нельзя просто подойти к коллеге и вместе с ним посмотреть и обсудить исходники. Существующие на текущий момент решения сводятся к трём основным вариантам:

  1. обсуждение в чате или при звонке, буквально с объяснением на пальцах, где и какой файл/участок кода смотреть
  2. shared screen
  3. использование инструмента для совместного редактирования документов (Google Docs и подобные, онлайн-IDE и т.д.)

Первый вариант совершенно очевидно неудобен, это вряд ли нуждается в пояснении. Со вторым всё на первый взгляд кажется несколько лучше: исходники здесь можно показать. Однако проблемы возникают сразу же: во-первых, активна здесь только одна сторона, все прочие могут только наблюдать и в крайнем случае просить что-то показать, опять же, на пальцах объясняя, что и куда нужно прокрутить; во-вторых, качество отображения текста обычно страдает при сжатии потока; в-третьих, могут возникнуть проблемы при низкой скорости соединения. Казалось бы, здесь нам на помощь приходит вариант №3, однако и теперь не обойтись без разочарований: инструменты, предназначенные в первую очередь для совместного редактирования файлов (в данном случае, не принципиально, офисных документов или исходных кодов) не очень-то расчитаны на совместный просмотр и обсуждение. Скажем, если вам нужно обсудить кусок кода из середины файла, вы всё так же, как и в первых двух случаях, объясняете коллеге через скайп, куда мотать и что смотреть.

Идея

Идея решения родилась тут же: что если совместить групповой чат и инструмент для просмотра исходного кода с синхронизацией положения полосы прокрутки между всеми участниками? Мысль всем сразу же показалась дельной, но как и водится в подобных ситуациях, была после первоначальной эйфории (и как никто раньше не догадался?) отложена в долгий ящик (да, пожалуй, когда-нибудь...) Вероятно, она так и канула бы в Лету, если бы не удачный случай — 25-й HackDay, прошедший в моём родном Нижнем Новгороде неделю назад. Команда из трёх человек собралась быстро (как ни странно, в итоге ни у кого не оказалось «более срочных дел» в последний момент), решение «проекту быть» было принято.

Разработка

В качестве инструментария были выбраны Ruby on Rails, Coffeescript, Twitter Bootstrap и Backbone (оговорюсь сразу, до последнего пока так и не дошло — фронтенд-часть сейчас работает в формате jQuery + плагины).
Хотя сам процесс непрерывной двухдневной работы над прототипом был довольно занятным (достаточно сказать, что все мы спали эти два дня буквально по два-четыре часа прямо на рабочем месте, несмотря на то, что изначально планировали остановиться в соседней гостинице, а в офисе периодически наглухо пропадал интернет), остонавливаться на нём подробно я не буду. Так или иначе, к концу двухдневного срока у нас на руках был работающий прототип. Надо сказать, и проект, и прототип произвели довольно приятное впечатление как на публику (на 90% состоявшую из программистов, то есть нашей целевой аудитории), так и на менторский состав: примерно 40% присутствоваших в зале изъявили готовность пользоваться продуктом, а от одного из членов жюри мы получили предложение о дальнейшем сотрудничестве — но всех карт раскрывать пока не буду.
Сразу после демофеста было решено выпустить MVP (кто не знает — Minimum Viable Product, концепция, активно продвигавшаяся Михаилом Кечиновым, одним из менторов мероприятия) в течение недели.

MVP

За прошедшую неделю мы успели сделать небольшой pivot, доработать функционал, поправить часть багов (нет, далеко не все), купить подходящий домен и задеплоить проект на Heroku — пока что по бесплатному тарифу, в связи с чем хабраэффект очень даже возможен.
Что сейчас умеет наш MVP:

  • возможность создать публичную конференцию, доступную любому желающему по прямой ссылке (регистрация для этого не нужна)
  • в конференции имеются: простой чат и окно просмотра исходников
  • полоса прокрутки у окна с исходниками синхронизируется между всеми участниками конференции, то есть вы всегда можете быть уверенными, что смотрите с коллегами на один и тот же код
  • возможность выделения любой строки кода; выделенные строки также синхронизируются между всеми участниками
  • в целях безопасности конференций, ссылка на неё содержит UUID, практически исключающий возможность подбора, доступ к разделу конференций запрещён для индексации поисковиками, а сами конференции удаляются после 15 минут неактивности (то есть отсутствия активных соединений); в принципе, мы сделали всё возможное, чтобы обезопасить ваши данные настолько, насколько это позволяет открытый формат конференций, однако 100% гарантии безопасности здесь быть не может (кому она нужна — ждите платной версии)

Всё это доступно сейчас по адресу sourcetalk.net

Планы

Естественно, был сделан только самый первый шаг, и сейчас мы очень ждём любой реакции со стороны потенциальных пользователей: это может быть критика, пожелания, сообщения об ошибках и т.д. — мы скажем спасибо за любой конструктив.
В планах числится усовершенствование текущей бесплатной версии сервиса (она всегда будет оставаться бесплатной) и введение дополнительноый функциональности в платной версии.

Бесплатная версия:

  • переход на Ace для работы с исходниками
  • возможность работы с несколькими файлами в пределах одной конференции
  • выпуск плагинов для различных IDE и редакторов кода (в работе находится плагин для Sublime Text 2 — мы планировали включить его в MVP, но не успели закончить и решили не откладывать из-за этого релиз), позволяющих создать конференцию прямо из среды разработки, с текущим файлом и в текущем положении
  • поддержка аудио- и видеопотоков на основе WebRTC
  • много мелких, но необходимых улучшений и исправлений
  • и да, конечно новый дизайн — мы не планируем вечно заставлять пользователей наслаждаться очередным сервисом на незаскиненном бутстрапе
Платная версия:

  • вся функциональность бесплатной версии
  • возможность создавать закрытые конференции с доступом только по приглашениям (будет требоваться регистрация, закрыте конференции не будут удаляться в случае неактивности)
  • интеграция с хостингами исходников (первые на очереди GitHub и BitBucket), включая интеграцию с предусмотренными там системами code review

Также принимаются любые пожелания и предложения по дальнейшему развитию. Ну и в заключение небольшой опрос:

Автор: malroc

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js