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

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

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

Фронт: Добавить прeпроцессоры в Nano Stores I18n

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

Nano Stores I18n — библиотека для перевода приложений.

Есть интересная идея: добавить процессоры в переводы. Например, на базе этих препроцессоров можно сделать смену перевода при смене ширины экрана.

// stores/i18n.js
import { atom, onMount } from 'nanostores'
import { createI18n, sizePreprocessor } from '@nanostores/i18n'

const screenSize = atom('big')
onMount(screenSize, () => {
  let media = window.matchMedia('(min-width: 600px)')
  function check () {
    screenSize.set(media.matches ? 'big' : 'small')
  }
  media.addEventListener('change', check)
  () => {
    media.removeEventListener('change', check)
  }
})

size.setSource(screenSize)

export const i18n = createI18n(locale, {
  get:,
  preprocessors: [
    sizePreprocessor
  ]
})

Надо отправить PR в Nano Stores I18n с реализацией препроцессоров.

Польза: получить open source портфолио на JS.

  1. Форкнуть репозиторий проекта.
  2. Прочитать документацию Nano Stores и Nano Stores I18n.
  3. Изучить код примера в задаче.
  4. Придумать, как препроцессор будет обновлять переводы.
  5. При возникновении вопросов, спросить Ситника в Телеграме.
  6. Изменить API Nano Stores I18n.
  7. Добавить препроцессор для смены переводы при смене ширины экрана (но дать возможность пользователю самому задать код вычисления ширины экрана).
  8. Добавить тесты.
  9. Добавить документацию.
  10. Отправить PR.