И вот куда же в этом десятилетии придёт айтишка с эйайкой??
Ладно, спалю базу. Вот о чём тебя будут спрашивать на собесах буквально через год-два =>
1. Поясни за infrastructure as code через Мартина-Лёфа.
Патамушта IaC -- это про индуктивные типы, обычный пайплайн интерпретируем как начальную алгебру (для полиномиального эндофунктора), понадобится уникальный гомоморфизм из неё в алгебру грязных IO-результатов (рекурсивный фолд свёртки).
Хотя сворачивать ast пайпа можно разными алгебрами (запуск, валидация, косты...), но все они будут над одним и тем же функтором. И вполне можно обойтись сборкой результата из сумм, произведений и констант (поля, варианты, списки, деревья) -- ровно то, что обычно лежит в ваших YAML/JSON.
А если бесконечный reconcile loop в кубере? А это уже коалгебраическая история...
2. Пилим gRPC-стриминг для геймеров на 100500 миллионов юзеров, поясни за правильный протокол.
Индексированная/пошаговая кодата по состояниям (нельзя получить данные до аутентификации, нельзя подписаться до handshake, нельзя слать подтверждение после закрытия...). Списки, деревья, суммы, произведения -- это всё индуктивные конструкции для конечных структур, бесконечный реактивный поток ими не задать, на них всё будет ломаться на реконнектах, частичных сбоях, порядке сообщений, идемпотентности и backpressure. Делаем сразу коиндуктивную машину, где ивенты роутятся по правилам/типам.
3. Надо выполнить каноникализацию всех наших конфигов, манифестов, стейтов и артефактов.
Абстрагируем операции devops (merge, overlay, patch, apply, compose) в кольцо, и задаём кастомные эквивалентности, чтобы семантический нормализатор был устойчивым и сходящимся на всех операциях.
В первом приближении вместо кольца можно взять полурешётку, или даже моноид, потому что apply или delete особо не отменить.
А дальше можно уходить в поля (бюджеты токенов) со своими алгебрами, векторные пространства (веса канареечного релиза, ага)...
etc
Думаете, шучу? ну штош.
Ладно, спалю базу. Вот о чём тебя будут спрашивать на собесах буквально через год-два =>
1. Поясни за infrastructure as code через Мартина-Лёфа.
Патамушта IaC -- это про индуктивные типы, обычный пайплайн интерпретируем как начальную алгебру (для полиномиального эндофунктора), понадобится уникальный гомоморфизм из неё в алгебру грязных IO-результатов (рекурсивный фолд свёртки).
Хотя сворачивать ast пайпа можно разными алгебрами (запуск, валидация, косты...), но все они будут над одним и тем же функтором. И вполне можно обойтись сборкой результата из сумм, произведений и констант (поля, варианты, списки, деревья) -- ровно то, что обычно лежит в ваших YAML/JSON.
А если бесконечный reconcile loop в кубере? А это уже коалгебраическая история...
2. Пилим gRPC-стриминг для геймеров на 100500 миллионов юзеров, поясни за правильный протокол.
Индексированная/пошаговая кодата по состояниям (нельзя получить данные до аутентификации, нельзя подписаться до handshake, нельзя слать подтверждение после закрытия...). Списки, деревья, суммы, произведения -- это всё индуктивные конструкции для конечных структур, бесконечный реактивный поток ими не задать, на них всё будет ломаться на реконнектах, частичных сбоях, порядке сообщений, идемпотентности и backpressure. Делаем сразу коиндуктивную машину, где ивенты роутятся по правилам/типам.
3. Надо выполнить каноникализацию всех наших конфигов, манифестов, стейтов и артефактов.
Абстрагируем операции devops (merge, overlay, patch, apply, compose) в кольцо, и задаём кастомные эквивалентности, чтобы семантический нормализатор был устойчивым и сходящимся на всех операциях.
В первом приближении вместо кольца можно взять полурешётку, или даже моноид, потому что apply или delete особо не отменить.
А дальше можно уходить в поля (бюджеты токенов) со своими алгебрами, векторные пространства (веса канареечного релиза, ага)...
etc
Думаете, шучу? ну штош.
✍22🤔8👍1