Сообщение Re: Кинули ли человека? от 09.04.2023 18:42
Изменено 09.04.2023 18:43 AmSpb
Есть еще подобная контора, мне недавно попалась,
Во-первых присылают ссылку на вакансию в архиве, хотя говорят, что актуальна.
Что это значит ? Что ребята жмоты, т.к. за вакансию в архиве не надо платить.
https://spb.hh.ru/vacancy/76558439
Во-вторых, хотят, чтобы ты сделал ТЗ прямо по профилю ихней компании, т.е. доработка/улучшение nginx.
Вот ТЗ:
[cut=ТЗ от компании]
Введение
В модуле mail, который предназначен для реверсивного проксирования почтовых
протоколов, и модуле stream, предназначенном для проксирования произвольных
TCP/UDP-сессий, есть поддержка PROXY Protocol v1 в сторону проксируемого
сервера. Он представляет из себя специальный заголовок, который вставляется
в начало передачи данных и позволяет передать через несколько проксирующих
серверов информацию о клиентском соединении, в частности, IP-адрес клиента.
У этого протокола есть две версии (v1 и v2), которые описаны в спецификации:
http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
В nginx в сторону проксируемого сервера в настоящий момент реализована только
первая версия этого протокола. Включается с помощью директив: proxy_protocol
— в stream:
http://nginx.org/ru/docs/stream/ngx_stream_proxy_module.html#proxy_protocol
— в mail:
http://nginx.org/ru/docs/mail/ngx_mail_proxy_module.html#proxy_protocol
Задачка
Добавить поддержку второй версии протокола в модуль stream (реализация
аналогичной настройки для модуля mail в рамках тестового задания не требуется).
Одним из ключевых отличий второй версии протокола, кроме иного формата
передачи данных, является также возможность дополнительно передавать
произвольную информацию в т.н. TLV-векторах. Поэтому, кроме того, что
потребуется добавить директиву proxy_protocol_version, позволяющую задать
используемую версию протокола:
proxy_protocol_version 1;
или
proxy_protocol_version 2;
Необходимо также дать возможность задавать TLV-векторы, например:
proxy_protocol_tlv alpn "http/2";
proxy_protocol_tlv 0x31 $msec;
proxy_protocol_tlv ssl_cn $proxy_protocol_tlv_ssl_cn;
proxy_protocol_tlv ssl_0x26 $proxy_protocol_tlv_ssl_0x26;
Тут первым параметром задается тип TLV, аналогично тому, как это реализовано
для переменных $proxy_protocol_tlv_*. А вторым параметром устанавливается
значение, которое будет передано. Второй параметр должен поддерживать
переменные.
В качестве результата ожидается один или несколько патчей в формате unified
diff поверх исходников nginx версии 1.23.2, которые доступны в репозитории
Mercurial:
— https://hg.nginx.org/nginx/
И зеркале на GitHub:
— https://github.com/nginx/nginx
Безусловным успехом будет считаться работающая реализация, которая успешно
пройдет ревью. Высоко ценится чистота патча (ничего лишнего не затронуто без
необходимости), аккуратность, кропотливость и выдержанность в едином
стиле с кодом вокруг.
Основной способ соблюдение стиля — это подражание окружающему коду, поиск
похожих конструкций. Кроме того, некое общее представление о стиле и части
правил можно получить по ссылке:
— http://nginx.org/en/docs/dev/development_guide.html#code_style
Первым делом хочется услышать обратную связь — как оцениваете задачу и если
готовы взяться, то через какое время рассчитываете вернуться к нам с первым
результатом, разумеется с учетом доступного свободного времени.
[/cut]
И еще пишут:
оно не лайтовое-скажу сразу
скорее, ожидания
а не требования
Т.е. сначала написали, что это требования, а потом, чтобы не спугнуть потенциального лоха, уточнили, что это ожидания
Есть еще подобная контора, мне недавно попалась,
Во-первых присылают ссылку на вакансию в архиве, хотя говорят, что актуальна.
Что это значит ? Что ребята жмоты, т.к. за вакансию в архиве не надо платить.
https://spb.hh.ru/vacancy/76558439
Во-вторых, хотят, чтобы ты сделал ТЗ прямо по профилю ихней компании, т.е. доработка/улучшение nginx.
Вот ТЗ:
ТЗ от компании | |
Введение В модуле mail, который предназначен для реверсивного проксирования почтовых протоколов, и модуле stream, предназначенном для проксирования произвольных TCP/UDP-сессий, есть поддержка PROXY Protocol v1 в сторону проксируемого сервера. Он представляет из себя специальный заголовок, который вставляется в начало передачи данных и позволяет передать через несколько проксирующих серверов информацию о клиентском соединении, в частности, IP-адрес клиента. У этого протокола есть две версии (v1 и v2), которые описаны в спецификации: http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt В nginx в сторону проксируемого сервера в настоящий момент реализована только первая версия этого протокола. Включается с помощью директив: proxy_protocol — в stream: http://nginx.org/ru/docs/stream/ngx_stream_proxy_module.html#proxy_protocol — в mail: http://nginx.org/ru/docs/mail/ngx_mail_proxy_module.html#proxy_protocol Задачка Добавить поддержку второй версии протокола в модуль stream (реализация аналогичной настройки для модуля mail в рамках тестового задания не требуется). Одним из ключевых отличий второй версии протокола, кроме иного формата передачи данных, является также возможность дополнительно передавать произвольную информацию в т.н. TLV-векторах. Поэтому, кроме того, что потребуется добавить директиву proxy_protocol_version, позволяющую задать используемую версию протокола: proxy_protocol_version 1; или proxy_protocol_version 2; Необходимо также дать возможность задавать TLV-векторы, например: proxy_protocol_tlv alpn "http/2"; proxy_protocol_tlv 0x31 $msec; proxy_protocol_tlv ssl_cn $proxy_protocol_tlv_ssl_cn; proxy_protocol_tlv ssl_0x26 $proxy_protocol_tlv_ssl_0x26; Тут первым параметром задается тип TLV, аналогично тому, как это реализовано для переменных $proxy_protocol_tlv_*. А вторым параметром устанавливается значение, которое будет передано. Второй параметр должен поддерживать переменные. В качестве результата ожидается один или несколько патчей в формате unified diff поверх исходников nginx версии 1.23.2, которые доступны в репозитории Mercurial: — https://hg.nginx.org/nginx/ И зеркале на GitHub: — https://github.com/nginx/nginx Безусловным успехом будет считаться работающая реализация, которая успешно пройдет ревью. Высоко ценится чистота патча (ничего лишнего не затронуто без необходимости), аккуратность, кропотливость и выдержанность в едином стиле с кодом вокруг. Основной способ соблюдение стиля — это подражание окружающему коду, поиск похожих конструкций. Кроме того, некое общее представление о стиле и части правил можно получить по ссылке: — http://nginx.org/en/docs/dev/development_guide.html#code_style Первым делом хочется услышать обратную связь — как оцениваете задачу и если готовы взяться, то через какое время рассчитываете вернуться к нам с первым результатом, разумеется с учетом доступного свободного времени. | |
И еще пишут:
оно не лайтовое-скажу сразу
скорее, ожидания
а не требования
Т.е. сначала написали, что это требования, а потом, чтобы не спугнуть потенциального лоха, уточнили, что это ожидания