Sergey
Ну ты покажи
да смысл? В каждой модели написано has_many ModelName или many_to_many и один метод в BaseModel который выполняет оптимизацию всё
Ale
Подскажите, ORM для Redis — это сильно бред?
учитывая, что redis не очень relational
Дима
Память ОЗУ тоже не очень же
Anonymous
да смысл? В каждой модели написано has_many ModelName или many_to_many и один метод в BaseModel который выполняет оптимизацию всё
То есть, в жc тебе пришлось удариться в callback-hell, чтобы пройтись по вложенным связям из методов моделей ORM?
Ale
С++, Java..?
ага, экономия памяти и хаки вместо красивой системы типов
Ale
которую потом предложили новые фпшные языки
Ale
ну плюсам надо было юзать все, что есть в си максимально также, у жавы таже проблема, маркетинг короче
Дима
Просто у меня nohm не едет, ряд проблем с ним, я вот думаю, это из-за того, что мы с автором либы только в двоём малость поехали и больше это никому не нужно или как
Ale
Память ОЗУ тоже не очень же
ну никто ж для нее не делает orm. В редисе можно ж целый агрегат хранить
Vladimir
То есть проблема все таки не в ноде, а в ОРМ?
Ale
и просто гидрировать в нужный обекът
Sergey
То есть, в жc тебе пришлось удариться в callback-hell, чтобы пройтись по вложенным связям из методов моделей ORM?
нет промисы конечно (можно было и async/await но тогда было не вариант) но! Либо мне писать подобные запросы/обработки каждый раз либо выносить в метод, но тогда начинается вопрос обработки эксепшенов потому что часть либ юзающих промисы не выбрасывает наружу эксепшен и если что-то пошло не так, ты можешь об этом не узнать, потому что ошибка закралась в код маленькой функции которую ты пробросил в библиотеку чтобы отфильтровать выборку
Anonymous
Дима
Багнутая либа
Дима
Ну просто мне надо хранить структуры похожие на объекты, и руками всё писать малость надоело
Дима
Заюзал nohm и поехало, то пустые поля вернет, то ещё что
Sergey
да это всё понятно мне бизнес-логику тоже на sql каждый раз писать? или может мне заменить орм на свою реализацию и собирать sql по кусочкам?
Ale
ну ты в курсе, что БЛ на средне-больших проектах живет не в ActiveRecord моделях?
Ale
они юзаются как dao или типа того
Vladimir
Бизнес логика должна быть отделена от хранения в идеале
Vladimir
Это антифича рельс
Anonymous
нет промисы конечно (можно было и async/await но тогда было не вариант) но! Либо мне писать подобные запросы/обработки каждый раз либо выносить в метод, но тогда начинается вопрос обработки эксепшенов потому что часть либ юзающих промисы не выбрасывает наружу эксепшен и если что-то пошло не так, ты можешь об этом не узнать, потому что ошибка закралась в код маленькой функции которую ты пробросил в библиотеку чтобы отфильтровать выборку
Лол. Так всё, что на колбэках, легко промисифицируется (если ещё не промисифицировано). А в колбэк тебе приходит ошибка, если что-то не так. Если пришла ошибка, реджектишь промис. Профит. Перехват исключений не работает с асинхронными операциями (работает, еслми пишешь async/await). Новичкам всегда рекомендую сначала писать без промисов и asyn/await и переходить на них только тогда, когда они избавятся от callback-hell БЕЗ НИХ (да, так можно).
Ale
да это всё понятно мне бизнес-логику тоже на sql каждый раз писать? или может мне заменить орм на свою реализацию и собирать sql по кусочкам?
у тебя есть бизнес понятия, получить последние новости и есть метод findRecentNews(). Его реализация может быть sql, который в базу ходит, может быть в монге они, может в другом сервисе по хттп достаются, твой бл от этого должен быть отвязан
Sergey
бля
Sergey
вот почему в рубях заюзать просто DCI для отделения бизнес-логики от всего это просто а в js это КОСТЫЛЬ
Nikolay
ОРМ для редиса это круто, я вот не нашел в свое время, пришлось пилить все руками.
Sergey
Сервис-объект и форм-объекты в js ой как удобно реализовывать
Sergey
Сам не умеешь, что ли?
DCI это ПАТТЕРН!
Anonymous
DCI это ПАТТЕРН!
Ок. А JS как тебе в этом мешает? =)
Sergey
эм
Igor
у вас недопонимание
Sergey
ну например, чтобы сделать в чистом виде надо создать 3 класса, в каждом классе 3 переменные которые будут указывать на соседей, и вызывать методы цепочками, потому что честного способа расширить объект нет
Дима
ОРМ для редиса это круто, я вот не нашел в свое время, пришлось пилить все руками.
Я почти допилил, но случайно нашёл nohm. В итоге, orm пришлось пилить вокруг него %) То ли лыжи не едут, то ли ещё что, но половину крутых фич из доки я просто не заюзал
Vladimir
> @sovamist потому что честного способа расширить объект нет прототипы?
Sergey
в руби есть великолепная вещь: модули model_object.extends SomeRole
Vladimir
нет
Vladimir
классы вообще особого значения не имеют в js
Vladimir
Object.create() и вперед
Sergey
Object.create() и вперед
мне нужен объект модели с логикой
Sergey
а
Дима
Ето староверы
Sergey
ну костыль же
Vladimir
Object.assign(model, logic)
Vladimir
Но это какой то нехороший паттерн
Ale
во-во
Sergey
MVC тоже плохой ))
Sergey
чего уж
Vladimir
Что мешает делать logic(model)?
Ale
add(some(cool(feature(to(my(old(object)))))));
Дима
Object.assign(model, logic)
Фабрика тогда уж.
Vladimir
Фабрика тогда уж.
Декоратор уж
Sergey
ничего так, да))
Anonymous
СТОП. Нафига одному объекту наследовать другой объект и зачем им тогда классы?
Дима
Декоратор уж
Я не читал что тут происходит
Anonymous
Не перебор ли?
Ale
лол, если ты наследуешь, то модель тонкая?))
Дима
Но я по прежнему хз о чем вы
Vladimir
> @ZeroBias Я не читал что тут происходит Ну типо добавление функционал к объекту
Ale
типа 100 маленьких классов в наследовании дают маленькую модель? /0
Anonymous
Это прототипное наследование
Это я знаю. Но Сергей явно хочет просто скопировать всё к ебеням.
Vladimir
Как декоратор, но не по GoF
Sergey
Sergey
как раз БЕЗ наследования
Дима
Too high
Ale
даже если ты юзам вставляеш в объект
Anonymous
как раз БЕЗ наследования
Только копирование, только хардкор?
Ale
типа как assign или декоратором