Re: Кинули ли человека?
От: AmSpb  
Дата: 09.04.23 18:42
Оценка:
Здравствуйте, Shmj, Вы писали:

Есть еще подобная контора, мне недавно попалась,

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

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

Первым делом хочется услышать обратную связь — как оцениваете задачу и если
готовы взяться, то через какое время рассчитываете вернуться к нам с первым
результатом, разумеется с учетом доступного свободного времени.



И еще пишут:

оно не лайтовое-скажу сразу
скорее, ожидания
а не требования


Т.е. сначала написали, что это требования, а потом, чтобы не спугнуть потенциального лоха, уточнили, что это ожидания
Отредактировано 09.04.2023 18:43 AmSpb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.