Size: a a a

Node.js — русскоговорящее сообщество

2021 March 06

AB

Artyom Burkan in Node.js — русскоговорящее сообщество
Unknown T.
lodash _.get() если я правильно понял
Почти то, что надо, но только я не знаю на какой глубине будет этот объект с таким свойством
источник

UT

Unknown T. in Node.js — русскоговорящее сообщество
Artyom Burkan
Почти то, что надо, но только я не знаю на какой глубине будет этот объект с таким свойством
Не понял. Тебе надо искать свойство с заданным именем по всему дереву объекта? Тогда тут только через dfs обходить весь объект, перебирая каждое свойство.
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Vanya Leyn
class Post{
  name: string
}

interface CanInsert<T>{
 insert(data: t): Promise<void>
}

export interface PostRepo extends CanInsert<Post>{}

export class PostRepoImpl implements PostRepo{...}


где пост просто представляет данные
@zaxoavoki
С одной стороны декларативно описываем методы репозитория, с другой стороны надо ли это, когда можно просто сделать базовый IRepository generic interface в котором будут общие для всех репозиториев методы и потом просто имплементить IRepository<Model>
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
Сергей Пограничный
@zaxoavoki
С одной стороны декларативно описываем методы репозитория, с другой стороны надо ли это, когда можно просто сделать базовый IRepository generic interface в котором будут общие для всех репозиториев методы и потом просто имплементить IRepository<Model>
сос мыслом
а если там будут кастомные методы, то просто их уже в классе писать?
источник

AB

Artyom Burkan in Node.js — русскоговорящее сообщество
Unknown T.
Не понял. Тебе надо искать свойство с заданным именем по всему дереву объекта? Тогда тут только через dfs обходить весь объект, перебирая каждое свойство.
Типо как в библиотеке normalizr, но, только не по id, а по свойству объекта
источник

AB

Artyom Burkan in Node.js — русскоговорящее сообщество
Unknown T.
Не понял. Тебе надо искать свойство с заданным именем по всему дереву объекта? Тогда тут только через dfs обходить весь объект, перебирая каждое свойство.
Что такое dfs?
источник

UT

Unknown T. in Node.js — русскоговорящее сообщество
я не работал с normalizr, к сожалению
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Pan Włodzimierz
сос мыслом
а если там будут кастомные методы, то просто их уже в классе писать?
Это может быть другой интерфейс, которые объявляет такие методы и вам его тоже можно будет заимплементить, но скорее это оверинжиниринг и не нужно
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
хм ладно попробую
источник

UT

Unknown T. in Node.js — русскоговорящее сообщество
Artyom Burkan
Что такое dfs?
depth-first-search. Не важно. Я имею в виду любой метод обхода всего дерева, то есть полный поиск. Если все данные, что есть - это объект с неизвестной структурой и имя свойства, которое надо найти, то это - единственный способ найти это свойство.
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Artyom Burkan
Что такое dfs?
Такое случилось из-за того что у вас объекты JS представляют собой хэш таблицы, прогуглите структуру объекта в JS и все встанет на места
источник

VL

Vanya Leyn in Node.js — русскоговорящее сообщество
Сергей Пограничный
@zaxoavoki
С одной стороны декларативно описываем методы репозитория, с другой стороны надо ли это, когда можно просто сделать базовый IRepository generic interface в котором будут общие для всех репозиториев методы и потом просто имплементить IRepository<Model>
Ты во всех репозиториях будешь имплементировать все методы?
источник

VL

Vanya Leyn in Node.js — русскоговорящее сообщество
Зачем если они не будет использоваться
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Vanya Leyn
Зачем если они не будет использоваться
Но по одному методу имплементировать тоже кощунство
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
Vanya Leyn
Ты во всех репозиториях будешь имплементировать все методы?
ну так вот и я за то
источник

VL

Vanya Leyn in Node.js — русскоговорящее сообщество
Сергей Пограничный
Но по одному методу имплементировать тоже кощунство
Почему?
источник

VL

Vanya Leyn in Node.js — русскоговорящее сообщество
Ты пишешь репо, говоришь что вот там базовый инсерт и файд и ещё два твоих кастомных
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Vanya Leyn
Почему?
Просто кажется в среднем, например всякие посты, комментарии(вроде бизнес логика @zaxoavoki) надо как читать, так и писать, эти RW в IRepository имеют право лежать в чем проблема
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Vanya Leyn
Почему?
Но и ваш кейс имеет место быть для всяких RO и WO моделей
источник

VL

Vanya Leyn in Node.js — русскоговорящее сообщество
Каво
источник