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

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

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

Узнавайте о новых задачах первыми

RSS

Помощь запрашиваетАлександр АброськинАлександр Аброськин Александр Аброськин

Бэк: Lefthook: добавить сегментированный вывод

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

Lefthook — менеджер Git-хуков для проектов на любых языках.

Требуется добавить возможность управлять логом вывода.

В текущей реализации Lefthook не предоставляет возможности пользователю управлять выводом. Для большого числа проверок количество сообщений может быть излишне большим и лог теряет информативность. Хочется через конфиг указать какие сообщения выводить, а какие нет. Например:

output:
  - meta
  - failures
  - success
  - summary

Польза: попрактиковаться с Go, познакомиться с git hooks.

Инструкции по выполнению

  1. Ознакомиться с более подробным обсуждением задачи или предложенной реализацией.
  2. Задать вопросы или попросить уточнения в issue на GitHub.
  3. Форкнуть проект Lefthook на GitHub.
  4. Реализовать необходимый функционал.
  5. Сделать Pull Request.

Присылайте свои решения:

— Можно мне взять эту задачу?

Все задачи на этой странице еще не решены. Если задача вам интересна — берите и смело делайте. Спрашивать разрешения и становиться в очередь не нужно. Даже если кто-то сделает задачу быстрее вас, не останавливайтесь — ваше решение может быть лучше. Это Open Source!

Помощь запрашиваетВова ДемВова Дем Вова Дем

Бэк: Logidze: создание «слепка» текущего состояния записи вручную

Для новичков, задача на неделю

Logidze позволяет работать с версиями объектов Active Record моделей и историей их изменений, хранящейся в виде инкрементального лога в отдельной колонке таблицы БД.

Лог изменений генерируется автоматически (с помощью триггеров в БД), и, как правило, разработчики в приложении используют его только для чтения. Однако, в некоторых случаях может возникнуть необходимость зафиксировать текущее состояние записи вручную: например, при массовом обновлении или вставке удобно отключать встроенный трекинг (Logidze.without_logging { ... }), что может привести к неконсистентности лога и текущего состояния записей.

Для решения данной проблемы предлагается добавить специальный метод model.fixup_log_data!, который будет добавлять запись в лог, актуализируя его состояние.

Польза: возможность поработать с базой данных на более низком уровне, принести пользу Rails сообществу.

Присылайте свои решения:

Помощь запрашиваетВова ДемВова Дем Вова Дем

Бэк: Ruby Next: поддержка явного списка преобразований в CLI

Для новичков, задача на неделю

Ruby Next — транспайлер для Ruby, который позволяет трансформировать новые синтаксические конструкции в совместимые со старыми версиями Ruby и альтерантивными имплементациями.

Один из возможных способов сделать это — воспользоваться ruby-next CLI. Текущая версия CLI позволяет указывать версию Ruby, для которой необходимо сгенерировать код (ruby-next nextify --min-version=2.5), что отлично работает для CRuby и совместимых реализаций, но не всегда подходит для таких платформ как mruby, Opal и других.

Требуется расширить функционал CLI и добавить возможность указывать список преобразований явно: ruby-next nextify --rewrite=pattern-matching --rewrite=endless-method.

Польза: попрактиковаться в написании и тестировании CLI на Ruby, познакомиться с миром транспайлеров, принести пользу Rails сообществу.

Присылайте свои решения: