Pull to refresh
124
Karma
0
Rating
Дмитрий Андриянов @dima117

Пользователь

Страх и ненависть локализации в больших проектах. Доклад Яндекса

И это у вас считается «слегка»?!

Извините, забыл добавить пометку "сарказм".
На самом деле, это точный перевод, который не соответствует контексту "меню в столовой".

Страх и ненависть локализации в больших проектах. Доклад Яндекса

Инструменты для работы с файлами переводов дают возможность вместе с русским текстом указать дополнительное поле с произвольным текстом, которое выгружается в Танкер. Пишем туда описание и ссылки на скриншоты. Эту информацию видят в Танкере переводчики.

Страх и ненависть локализации в больших проектах. Доклад Яндекса

В проде не использовали. У нас исторически используется собственное ядро интернационализации. У него меньше возможностей, но проще синтаксис, хорошо типизируется и интегрируется с компонентами.

Телефон для коня и оркестр без пианиста. Как придумать спортивные задачи по фронтенду

Вы правильно подумали. А Chromium выбран как среда для тестирования по причинам, которые написал выше :)

Телефон для коня и оркестр без пианиста. Как придумать спортивные задачи по фронтенду

В контексте соревнования фраза «поддержка браузеров» означает не количество пользователей, которому доступна программа, а среду, в которой выполняется проверка :) Мы не планировали, что в заданиях будут использоваться особенности браузеров, поэтому ограничились одним.

Выбрали Chrome потому, что есть удобный инструмент автоматического управления им — www.npmjs.com/package/puppeteer

Телефон для коня и оркестр без пианиста. Как придумать спортивные задачи по фронтенду

В прошлом году мы публиковали разбор задач с этого соревнования. Ссылка на него есть в конце статьи. Там можете посмотреть пример решения)

Телефон для коня и оркестр без пианиста. Как придумать спортивные задачи по фронтенду

В задаче у всех нот одинаковая длительность. Мы думали об этом. Решили, что про разные длительности трудно будет написать объяснение, которое бы поняли люди, далёкие от музыки. Опыт показал, что даже с пониманием нот есть проблемы.

Кроме того, все варианты одной задачи должны быть примерно одинаковыми по сложности. Чтобы добавить разные длительности нот, нужно придумать, как это сделать для всех вариантов.

Коллаборация и автоматизация во фронтенде. Чему мы научились за 13 школ

Задание нужно выполнять в приватном репозитории, чтобы другие кандидаты не могли скопировать ваш код.

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

Чтобы снизить количество ошибок при заполнении формы и отправки заданий на проверку, мы изменили ввод ссылки на репозитории: вместо заполнения текстового поля нужно выбрать репозиторий из списка. Также при отправке заданий на проверку мы автоматически даем пользователю yndx-shri-reviewer доступ к ним. Под этим аккаунтом проверяющие будут смотреть код выполненных заданий.

Авторизовать приложение нужно для того, чтобы:
— мы могли отобразить в интерфейсе список репозиториев для выбора;
— при отправке заданий на проверку автоматически добавить пользователя yndx-shri-reviewer в качестве коллаборатора в репозитории с заданиями.

Выполнение этих двух действий инициирует сам кандидат через интерфейс личного кабинета. Мы не выполняем действий над репозиториями без ведома кандидата. Токен, который мы получаем для операций над репозиториями, используется только приложением и люди (в т.ч. разработчики ЛК ШРИ) не имеют доступа к нему.

Также, если кандидат не хочет давать доступ к своим приватным репозиториям, всегда можно создать отдельный аккаунт на GitHub для выполнения заданий ШРИ.

Фронтенд, алгоритмы и опоссум Фридрих. Разбираем задачи конкурса Яндекса

Под пикселями подразумевал квадраты 10х10 (или любого другого размера), сгенерированные по картинке. Этот вариант не подходит под формулировку «сверстать макет», поэтому решения с JS стенд не пропускает, а нагенерированные решения не помещаются в лимит 10кб.

Про решение с использованием минимального количества элементов — интересная идея! Будем иметь в виду в будущем.

Фронтенд, алгоритмы и опоссум Фридрих. Разбираем задачи конкурса Яндекса

Спасибо за обратную связь! В будущем постараемся лучше тестировать алгоритмы проверки.


Надеюсь, вы не использовали возможность подсунуть некорректное решение и получили удовольствие, решив задачу полностью ;)

Фронтенд, алгоритмы и опоссум Фридрих. Разбираем задачи конкурса Яндекса

тестовая система пропускала вообще левые решения

К сожалению, проверки отработали не совсем корректно. Там довольно сложная логика. В будущем постараемся больше времени уделять тестированию.


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


Задача 8 — в поставленной формулировке совсем тривиальная.

Интересно, каким было ваше решение. Расскажите подробнее.


Ну куда ж там ограничение в 10кб, гораздо интересней было ограничить количество элементов.

Ограничение в 10кб нужно, чтобы участники не генерировали верстку каритнки отдельными пикселями. А для чего предлагаете ограничение на количество DOM-элементов?

Фронтенд, алгоритмы и опоссум Фридрих. Разбираем задачи конкурса Яндекса

В квалификационном раунде было несколько вариантов. У заданий в разных вариантах были разные условия, но одна суть.

ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

Спасибо! В документации про это ничего нет, поэтому не нашел его. Попробую разобраться в коде, как будет время.

ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

Выглядит, как будто вы хотите получать diff двух состояний БД. Это немного другой подход. Для этого даже не нужны номера версий.

В простых случаях он позволяет делать руками меньше действий для обновления БД. В сложных случаях может потребоваться сложная магия. Такие инструменты тоже существуют (кажется в Visual Studio раньше была такая штука), но они, как правило, сложные, дорого стоят и них графический интерфейс (чтобы человек контролировал правильность того, что получилось).

Версионная миграция БД — второй подход, в котором вы описываете инкрементальные изменения (т.е. изменения для перехода от текущей версии к следующей). Этот подход выигрывает в плане простоты и надежности. Его легко автоматизировать.

ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

О, спасибо! Почему-то раньше этого не нашел. Буду иметь в виду.

.NET Core 2.1 Global Tools

Это относится к любым пакетным менеджерам и магазинам приложений)

.NET Core 2.1 Global Tools

Ага, как в npm.

Модульное тестирование интерфейсов в Headless Chrome. Лекция Яндекса

Пробовали jsdom, но отказались из-за множества мелких отличий от работы настоящего браузера. Сходу сейчас не смогу сказать, каких именно, но, если хотите, уточню и напишу вам.

Модульное тестирование интерфейсов в Headless Chrome. Лекция Яндекса

Привет! Вы правы, что не показаны сложные кейсы. Идея была — на примере простых кейсов показать, как тестировать код, зависящий от API браузера.

это особенность вашего инстумента, а не предметной области

Здесь не могу с вами согласиться. Можете привести аргументы?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity