Инструменты для работы с файлами переводов дают возможность вместе с русским текстом указать дополнительное поле с произвольным текстом, которое выгружается в Танкер. Пишем туда описание и ссылки на скриншоты. Эту информацию видят в Танкере переводчики.
В проде не использовали. У нас исторически используется собственное ядро интернационализации. У него меньше возможностей, но проще синтаксис, хорошо типизируется и интегрируется с компонентами.
В контексте соревнования фраза «поддержка браузеров» означает не количество пользователей, которому доступна программа, а среду, в которой выполняется проверка :) Мы не планировали, что в заданиях будут использоваться особенности браузеров, поэтому ограничились одним.
В задаче у всех нот одинаковая длительность. Мы думали об этом. Решили, что про разные длительности трудно будет написать объяснение, которое бы поняли люди, далёкие от музыки. Опыт показал, что даже с пониманием нот есть проблемы.
Кроме того, все варианты одной задачи должны быть примерно одинаковыми по сложности. Чтобы добавить разные длительности нот, нужно придумать, как это сделать для всех вариантов.
Задание нужно выполнять в приватном репозитории, чтобы другие кандидаты не могли скопировать ваш код.
В этом году мы используем автотесты, чтобы снизить нагрузку на преподавателей, проверяющих задания. Так как автотесты выполняются без участия человека, они не смогут самостоятельно обработать ситуацию, когда кандидатом указаны ошибочные данные (например, опечатка в ссылке на репозиторий).
Чтобы снизить количество ошибок при заполнении формы и отправки заданий на проверку, мы изменили ввод ссылки на репозитории: вместо заполнения текстового поля нужно выбрать репозиторий из списка. Также при отправке заданий на проверку мы автоматически даем пользователю yndx-shri-reviewer доступ к ним. Под этим аккаунтом проверяющие будут смотреть код выполненных заданий.
Авторизовать приложение нужно для того, чтобы:
— мы могли отобразить в интерфейсе список репозиториев для выбора;
— при отправке заданий на проверку автоматически добавить пользователя yndx-shri-reviewer в качестве коллаборатора в репозитории с заданиями.
Выполнение этих двух действий инициирует сам кандидат через интерфейс личного кабинета. Мы не выполняем действий над репозиториями без ведома кандидата. Токен, который мы получаем для операций над репозиториями, используется только приложением и люди (в т.ч. разработчики ЛК ШРИ) не имеют доступа к нему.
Также, если кандидат не хочет давать доступ к своим приватным репозиториям, всегда можно создать отдельный аккаунт на GitHub для выполнения заданий ШРИ.
Под пикселями подразумевал квадраты 10х10 (или любого другого размера), сгенерированные по картинке. Этот вариант не подходит под формулировку «сверстать макет», поэтому решения с JS стенд не пропускает, а нагенерированные решения не помещаются в лимит 10кб.
Про решение с использованием минимального количества элементов — интересная идея! Будем иметь в виду в будущем.
К сожалению, проверки отработали не совсем корректно. Там довольно сложная логика. В будущем постараемся больше времени уделять тестированию.
Также надеемся, что, несмотря на тесты, хотя бы часть людей решили задачу честно и получили от этого удовольствие.
Задача 8 — в поставленной формулировке совсем тривиальная.
Интересно, каким было ваше решение. Расскажите подробнее.
Ну куда ж там ограничение в 10кб, гораздо интересней было ограничить количество элементов.
Ограничение в 10кб нужно, чтобы участники не генерировали верстку каритнки отдельными пикселями. А для чего предлагаете ограничение на количество DOM-элементов?
Выглядит, как будто вы хотите получать diff двух состояний БД. Это немного другой подход. Для этого даже не нужны номера версий.
В простых случаях он позволяет делать руками меньше действий для обновления БД. В сложных случаях может потребоваться сложная магия. Такие инструменты тоже существуют (кажется в Visual Studio раньше была такая штука), но они, как правило, сложные, дорого стоят и них графический интерфейс (чтобы человек контролировал правильность того, что получилось).
Версионная миграция БД — второй подход, в котором вы описываете инкрементальные изменения (т.е. изменения для перехода от текущей версии к следующей). Этот подход выигрывает в плане простоты и надежности. Его легко автоматизировать.
Пробовали jsdom, но отказались из-за множества мелких отличий от работы настоящего браузера. Сходу сейчас не смогу сказать, каких именно, но, если хотите, уточню и напишу вам.
Извините, забыл добавить пометку "сарказм".
На самом деле, это точный перевод, который не соответствует контексту "меню в столовой".
Инструменты для работы с файлами переводов дают возможность вместе с русским текстом указать дополнительное поле с произвольным текстом, которое выгружается в Танкер. Пишем туда описание и ссылки на скриншоты. Эту информацию видят в Танкере переводчики.
В проде не использовали. У нас исторически используется собственное ядро интернационализации. У него меньше возможностей, но проще синтаксис, хорошо типизируется и интегрируется с компонентами.
Кстати, JFYI недавно для Firefox появился такой же инструмент
Выбрали Chrome потому, что есть удобный инструмент автоматического управления им — www.npmjs.com/package/puppeteer
Кроме того, все варианты одной задачи должны быть примерно одинаковыми по сложности. Чтобы добавить разные длительности нот, нужно придумать, как это сделать для всех вариантов.
В этом году мы используем автотесты, чтобы снизить нагрузку на преподавателей, проверяющих задания. Так как автотесты выполняются без участия человека, они не смогут самостоятельно обработать ситуацию, когда кандидатом указаны ошибочные данные (например, опечатка в ссылке на репозиторий).
Чтобы снизить количество ошибок при заполнении формы и отправки заданий на проверку, мы изменили ввод ссылки на репозитории: вместо заполнения текстового поля нужно выбрать репозиторий из списка. Также при отправке заданий на проверку мы автоматически даем пользователю yndx-shri-reviewer доступ к ним. Под этим аккаунтом проверяющие будут смотреть код выполненных заданий.
Авторизовать приложение нужно для того, чтобы:
— мы могли отобразить в интерфейсе список репозиториев для выбора;
— при отправке заданий на проверку автоматически добавить пользователя yndx-shri-reviewer в качестве коллаборатора в репозитории с заданиями.
Выполнение этих двух действий инициирует сам кандидат через интерфейс личного кабинета. Мы не выполняем действий над репозиториями без ведома кандидата. Токен, который мы получаем для операций над репозиториями, используется только приложением и люди (в т.ч. разработчики ЛК ШРИ) не имеют доступа к нему.
Также, если кандидат не хочет давать доступ к своим приватным репозиториям, всегда можно создать отдельный аккаунт на GitHub для выполнения заданий ШРИ.
Про решение с использованием минимального количества элементов — интересная идея! Будем иметь в виду в будущем.
Спасибо за обратную связь! В будущем постараемся лучше тестировать алгоритмы проверки.
Надеюсь, вы не использовали возможность подсунуть некорректное решение и получили удовольствие, решив задачу полностью ;)
К сожалению, проверки отработали не совсем корректно. Там довольно сложная логика. В будущем постараемся больше времени уделять тестированию.
Также надеемся, что, несмотря на тесты, хотя бы часть людей решили задачу честно и получили от этого удовольствие.
Интересно, каким было ваше решение. Расскажите подробнее.
Ограничение в 10кб нужно, чтобы участники не генерировали верстку каритнки отдельными пикселями. А для чего предлагаете ограничение на количество DOM-элементов?
В простых случаях он позволяет делать руками меньше действий для обновления БД. В сложных случаях может потребоваться сложная магия. Такие инструменты тоже существуют (кажется в Visual Studio раньше была такая штука), но они, как правило, сложные, дорого стоят и них графический интерфейс (чтобы человек контролировал правильность того, что получилось).
Версионная миграция БД — второй подход, в котором вы описываете инкрементальные изменения (т.е. изменения для перехода от текущей версии к следующей). Этот подход выигрывает в плане простоты и надежности. Его легко автоматизировать.
Здесь не могу с вами согласиться. Можете привести аргументы?