amarao: (Default)
[personal profile] amarao
Вот я только что придумал.

Предположим, у нас есть код, который по каким-то описаниям пользователя говорит "да" или "нет" (можно ему или нет).

MVP: fn allow_user(...) -> bool

Теперь мы начинаем его выносить в отдельный сервис. Но, вместо того, чтобы завернуть bool в HTTP, мы ... чуть-чуть увеличиваем вычурность.

Пусть у нас будет не bool а лямбда, причём с частичным замыканием. Лямбда может захватывать параметры, в том числе, переданные в описании пользователя, откладывая момент принятия решения. Часть параметров захватывается в момент формирования лямбды, но часть параметров остаётся свободной и должна быть передана в момент evaluate. Поскольку evaluate не хочет знать про сигнатуру лямбды, мы делаем отдельную систему глобальных переменных, которые захватываются по ссылке, и которые могут меняться (т.е. захват неполный).

Поскольку это всё происходит через сеть, наша лямбда - это RPC, причём RPC вызов allow_user возвращает объект, являющийся RPC (от сервера, исполняющего allow_user в сторону сервера, отправившего запрос за allow_user). Разумеется, нам нужен портабельный механизм описания сериализации RPC-запросов.

И может быть, даже, через XML, с глобальным реестром определений для сущностей в запросах.

(И назад этот фарш не провернуть)

Date: 2024-11-21 12:09 pm (UTC)
From: [personal profile] permeakra
>Когда ты априори плохо относишься к чужой работе, то за придирками ты упускаешь главное: он решил все проблемы, которые были.

Нет.
Он решил не ВСЕ проблемы. Он решил достаточно проблем достаточно хорошим образом, чтобы его можно было задеплоить и продать развертывание проджект-менджеру. Это совершенно не значит, что он решил все проблемы и даже не значит, что он решил их хорошо.

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

>Повторю: уважай чужой продакшен, и будут уважать тебя.

Продакшн - не человек, а вещь. Нечего там уважать.

Date: 2024-11-21 06:22 pm (UTC)
From: [personal profile] permeakra
Я не понимаю, о чем ты говоришь. Уважение - штука ОЧЕНЬ субъективная и без четкого определения. Впрочем, как и понятие "индусский код". Это раз.

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

Profile

amarao: (Default)
amarao

November 2025

S M T W T F S
      1
2345678
91011121314 15
16171819202122
232425 26272829
30      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 2nd, 2025 11:08 am
Powered by Dreamwidth Studios