Да, сайт уже работал. Но смысл конкурса не в том, чтобы скопировать существующее решение, а в том, чтобы предложить своё. Думаю в академии хотели увидеть нестандартные подходы к вёрстке, архитектуре кода и созданию пользовательского опыта. Это был отличный шанс проявить свои навыки без оглядки на то, что уже есть.
Спасибо за комментарий! Да, такой формат рабочий, но устарел и лучше использовать email: z.email() для проверки почты. Если же нам нужно сначала получить ошибку пустого поля, а потом некорректности email, то можно использовать такую конструкцию: email: z.string().nonempty("Поле обязательно").check(z.email("Некорректный email")) Внес правки в статью.
Да, data streams действительно удобная штука, особенно в более свежих версиях Elastic, где они отточены и хорошо поддерживаются.
У нас в инфраструктуре сейчас стоит стек 7.10, и там уже есть готовый пайплайн через Logstash, в котором собирается часть обработки и маршрутизации логов. Поэтому для e2e-тестов я просто вписался в существующую схему: Filebeat → Logstash → ES с индексацией по дате.
Переход на data streams в 7.10 возможен, но требует переделывать шаблоны, ILM и работу с Logstash, потому что в этой версии поддержка потоков ещё не такая гладкая, как в 7.16+ / 7.17 и тем более в 8.x.
В нашем случае это скорее вопрос совместимости с текущей конфигурацией, а не техническое ограничение Filebeat.
Тут немного другой кейс. xUnit-репортер даёт только pass/fail, а e2e-тестам нужен контекст: какой URL, что увидели на странице, какие ошибки вернулись и т.д. Поэтому логирование в Serilog — это скорее способ централизованно собрать дополнительную информацию и потом удобно анализировать её в ELK/Kibana.
Да, согласен. У меня Filebeat уже использовался с type: log, поэтому добавлял блок для e2e-тестов в ту же конфигурацию и сделал всё однотипно.
Про filestream и timestamp — да, вариант с parsers.ndjson и подтягиванием времени из логов в @timestamp выглядит логичнее, особенно если логи уже в JSON.
Абсолютно согласен, если раньше можно были прийти и сказать "Вот Вася - отличный разработчик" и вопросов не было, то сейчас заказчик перебирает несколько десятков кандидатов, прежде чем найдёт того самого Васю, причём он может оказаться далеко не самым лучшим.
На моей памяти первое касание с аутстаффингом было еще в начале 2000х, когда компания Нестле набирала себе офисный персонал у HR агентств без трудоустройства в штат. Модель всегда была, и, думаю, будет, в разных формах и соотношениях. Причин много - налоги, наличие штатных единиц, компененции, HR и так далее. В свое время важнее становятся те или иные, сейчас рост налоговых ставок может стимулировать рост направления.
В статье описана база по созданию компонентов полей. Далее с ней можно работать как удобно. Если у вас много простых форм из 3-7 полей, нет взаимной валидации или динамики, то конфиги подходят. Если что-то сложнее, то конфиги слишком сильно усложняются. Плюс конфиги сложно расширять, так как от заказчика часто приходят новые требования, которые проблемно вписать в логику конфига.
В точку. Часто с нуля пишем дизайн и логику форм и нужна уверенность, что мы не будем ограниченны рамками библиотек, так как рано или поздно в них упремся
Antd - отличная библиотека, которая справиться со многими задачами по созданию форм. Мы пытались внедрять различные библиотеки, но каждый раз упирались в их ограничения по UI/UX, так как переиспользуем формы между разными проектами, где дизайн и логика работы могут сильно отличаться. Что бы решить эту проблему, нам нужен полный контроль над формой. Именно это и привело нас к созданию собственного решения.
Да, сайт уже работал. Но смысл конкурса не в том, чтобы скопировать существующее решение, а в том, чтобы предложить своё. Думаю в академии хотели увидеть нестандартные подходы к вёрстке, архитектуре кода и созданию пользовательского опыта. Это был отличный шанс проявить свои навыки без оглядки на то, что уже есть.
Спасибо за комментарий!
Да, такой формат рабочий, но устарел и лучше использовать
email: z.email()для проверки почты.Если же нам нужно сначала получить ошибку пустого поля, а потом некорректности email, то можно использовать такую конструкцию:
email: z.string().nonempty("Поле обязательно").check(z.email("Некорректный email"))Внес правки в статью.
Да, data streams действительно удобная штука, особенно в более свежих версиях Elastic, где они отточены и хорошо поддерживаются.
У нас в инфраструктуре сейчас стоит стек 7.10, и там уже есть готовый пайплайн через Logstash, в котором собирается часть обработки и маршрутизации логов. Поэтому для e2e-тестов я просто вписался в существующую схему: Filebeat → Logstash → ES с индексацией по дате.
Переход на data streams в 7.10 возможен, но требует переделывать шаблоны, ILM и работу с Logstash, потому что в этой версии поддержка потоков ещё не такая гладкая, как в 7.16+ / 7.17 и тем более в 8.x.
В нашем случае это скорее вопрос совместимости с текущей конфигурацией, а не техническое ограничение Filebeat.
Тут немного другой кейс. xUnit-репортер даёт только pass/fail, а e2e-тестам нужен контекст: какой URL, что увидели на странице, какие ошибки вернулись и т.д. Поэтому логирование в Serilog — это скорее способ централизованно собрать дополнительную информацию и потом удобно анализировать её в ELK/Kibana.
Да, согласен.
У меня Filebeat уже использовался с type: log, поэтому добавлял блок для e2e-тестов в ту же конфигурацию и сделал всё однотипно.
Про filestream и timestamp — да, вариант с parsers.ndjson и подтягиванием времени из логов в @timestamp выглядит логичнее, особенно если логи уже в JSON.
Абсолютно согласен, если раньше можно были прийти и сказать "Вот Вася - отличный разработчик" и вопросов не было, то сейчас заказчик перебирает несколько десятков кандидатов, прежде чем найдёт того самого Васю, причём он может оказаться далеко не самым лучшим.
Вы давно на хедхантер заходили? Дай бог и не ходить бы туда, но если придётся, посмотрите на уровень зарплат.
На моей памяти первое касание с аутстаффингом было еще в начале 2000х, когда компания Нестле набирала себе офисный персонал у HR агентств без трудоустройства в штат. Модель всегда была, и, думаю, будет, в разных формах и соотношениях. Причин много - налоги, наличие штатных единиц, компененции, HR и так далее. В свое время важнее становятся те или иные, сейчас рост налоговых ставок может стимулировать рост направления.
Считаем, что материал будет полезен молодым разработчикам и студентам.
В статье описана база по созданию компонентов полей. Далее с ней можно работать как удобно. Если у вас много простых форм из 3-7 полей, нет взаимной валидации или динамики, то конфиги подходят. Если что-то сложнее, то конфиги слишком сильно усложняются. Плюс конфиги сложно расширять, так как от заказчика часто приходят новые требования, которые проблемно вписать в логику конфига.
В точку. Часто с нуля пишем дизайн и логику форм и нужна уверенность, что мы не будем ограниченны рамками библиотек, так как рано или поздно в них упремся
Antd - отличная библиотека, которая справиться со многими задачами по созданию форм. Мы пытались внедрять различные библиотеки, но каждый раз упирались в их ограничения по UI/UX, так как переиспользуем формы между разными проектами, где дизайн и логика работы могут сильно отличаться. Что бы решить эту проблему, нам нужен полный контроль над формой. Именно это и привело нас к созданию собственного решения.