
cloudo
15.03.2017
12:30:02
Подскажите, пожалуйста, как лучше организовать несколько utility функций, которые относятся к одной сущности, и по факту принимают одинаковые начальные аргументы.
Сейчас я делаю через обертку. Например:
export function Group(gid, structure) {
const group = structure.getGroup(gid)
const {
name,
nodes,
groups,
domains = []
} = group
const getNodes = () => sortedByName(nodes.map(structure.getNode))
const getGroups = () => sortedByName(groups.map(structure.getGroup))
const getDomains = () => sortedByName(domains.map(structure.getDomain))
const isRoot = () => gid === ROOT_GROUP_ID
const isUnsorted = () => gid === UNSORTED_GROUP_ID
const isDeleted = () => gid === DELETED_GROUP_ID
const getName = () => isUnsorted() || isDeleted() ? gt(name) : name
return {
getName,
getNodes,
getGroups,
getDomains,
isRoot,
isUnsorted,
isDeleted,
}
}
но такой подход приводит к тому, что на каждое создание объекта, активно создаются новые экземпляры функций.
Попробую обобщить вопрос.
Как вы организовываете объектно-ориентированные методы для сущностей?
Например в редакс сторе лежат юзеры.
А хотелось бы иметь методы для юзера, но при этом не передавать в каждый метод userid.

cloudo
15.03.2017
12:58:45
как вариант использовать классы, да. мне больше нравится фабрики...
нашёл ответ здесь. https://medium.com/humans-create-software/factory-functions-in-javascript-video-d38e49802555#.24cs3pgq9
если не слишком много объектов, то можно забить на memory drain

Aleksey
15.03.2017
13:33:59
Ребята, как решить проблему. После перезагрузки страницы все пропадает использую react-router-dom, на сервере путь к index.html:
app.use('/', express.static(__dirname+ '/'));
как с этим бороться?

Eugeniy
15.03.2017
13:45:27
Да я хотел узнать, все ли зарегались в яндексе на это событие?)
я просто сегодня только зашел, увидел