Arthur G
«А вот когда ты перестаешь создавать кучу слоев абстракций и в HTTP контроллере (ну максимум выделить функции от интерфейса например в "features") пишешь 1 оптимальную SQL команду на UPDATE FROM SELECT, итерируешь по результатирующему курсору отправляя каждый готовый кусочек данных в сокет HTTP ответа, ты тратишь минимум ресурсов, так еще и логика намного понятнее»
А зачем тогда нужна абстракция «база данных»? По этой логике, можно в файликах всё хранить и самому строить индекс. Зачем всё в строки преобразовывать каждый раз? Столько ресурсов сгорает! 😂
Если я правильно понял вопрос, то ответ: "База данных" – это абстракция в виде технологии, а я говорю об абстракциях в твоем собственном коде
Поэтому БД – это натуральная сложность, а "свои слои абстракции" – это искусственная сложность (
писал об этом в книге)
И зная, что ты любишь ФП, сразу скажу комментарий: когда мы делаем слоистую работу с IO (сначала IO, потом логика, потом IO, и так далее) то это хороший подход, потому что он не про "абстракцию", а про control-flow, где мы хотим больше оставаться в области чистых функций
Пример: паттерн "репозиторий" абстрагирует БД, а если ты делаешь SQL запрос, потом его значение передаешь в чистые функции, потом результат функций опять в SQL запрос – это просто разделение флоу работы с IO
"Зачем всё в строки преобразовывать каждый раз?" – не совсем понял)