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