Нам нужны твои мозги

Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.

На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решение.

Фронт: Отображать ошибки с Logux-сервера на клиенте

Для новичков, задача на пару дней

Logux-сервер работает с клиентом по веб-сокету. При ошибке сервера, клиент не отобразит страницу с ошибкой, как было бы с PHP или Ruby on Rails.

Поэтому надо добавить способ отображения серверной ошибки к консоли браузера.

Польза: внести свой вклад в протокол Logux; получить больше опыта в JS.

  1. Форкнуть logux-protocol.
  2. Добавить в описание протокола команду ["debug", string type, any data].
  3. Форкнуть logux-sync.
  4. Добавить в BaseSync метод sendDebug() для отправки команды и событие debug при получении команды.
  5. Добавить тесты для новых возможностей.
  6. Форкнуть logux-server.
  7. Добавить в BaseServer метод debugError(error), который отправит всем клиентам команду debug с типом error и stacktrace.
  8. Добавить в Server автоматический вызов debugError при ошибке, если this.env равен development.
  9. Добавить тесты на новую логику сервера.
  10. Форкнуть logux-client.
  11. При получении события debug с ошибкой, выводить ее в консоль, помечая, что это ошибка сервера. Желательно, чтобы ошибка показывалась как обычная JS-ошибка со стандартным UI для stacktrace.
  12. Добавить тесты на вывод ошибки.