sh
17.02.2018
09:30:55
пробовал с мапом)) тоже самое
Игорь
17.02.2018
09:31:01
Не удаляй элементы в мапе, а верни новый массив
sh
17.02.2018
09:32:08
Google
sh
17.02.2018
09:33:54
вот так делаю, неправильно ?
Игорь
17.02.2018
09:35:43
Лучше так не делать. Ты мутируешь данные. Слышал что нибудь про мутабельность и чистые функции? Попробуй создать новый объект с нужными данными и верни его
sh
17.02.2018
09:36:11
Игорь
17.02.2018
09:36:51
A.
17.02.2018
09:39:00
sh
17.02.2018
09:39:33
A.
17.02.2018
09:39:50
Cenator
17.02.2018
09:39:58
Реакт тема
sh
17.02.2018
09:40:10
allRooms
так это массив объектов, массив сделать объектм ?)
A.
17.02.2018
09:40:21
А ты попробуй
Может поможет
Google
sh
17.02.2018
09:40:30
имутабельно ?
?
17.02.2018
09:41:54
{ ...elem, messages: null } не подойдёт?
Игорь
17.02.2018
09:42:20
sh
17.02.2018
09:43:41
сделал копию объекта, вот что там, объясните что это за вотафак ))
Valdemar
17.02.2018
09:43:45
Cenator
17.02.2018
09:43:50
sh
17.02.2018
09:43:59
в хроме тоже у меня работает )
Valdemar
17.02.2018
09:44:38
sh
17.02.2018
09:44:47
A.
17.02.2018
09:45:33
lean() в самом запросе
sh
17.02.2018
09:45:49
Naught
17.02.2018
09:46:23
Ребят, посоветуйте, я в отчаянии: есть приложение со следующей файловой структурой. Server это собственно экспресс-роуты, там апиха, дб, и сейчас хочу прикрутить вебморду. Но получается какая-то дичь. Началось трахание на тему "я не вижу папку views в папке сервер", поправлю, но выглядит как-то не то. Как правильнее организовать проект? Может сделать корневое app.js, из которого вызывать сервер и которое будет отвечать за рендер? я вот вообще не архитектор(((
Yurii
17.02.2018
09:47:29
A.
17.02.2018
09:47:32
Naught
17.02.2018
09:47:43
sh
17.02.2018
09:48:11
Google
Eugene
17.02.2018
09:48:12
?ну норм тогда
Yurii
17.02.2018
09:48:31
handlebars
ок, так когда ты вызываешь res.render у тебя ошибка, что views не там или что?
Naught
17.02.2018
09:49:08
всякое бывало, пока проблема в том, что отдаёт вместо страницы просто строку home.hbs
но это вторичное, мне не нравится архитектура
Valdemar
17.02.2018
09:49:29
Eugene
17.02.2018
09:51:34
Ну засунь в сервер, станет удобнее?)))
Naught
17.02.2018
09:51:55
хочу исправить, но не знаю, как
Cenator
17.02.2018
09:56:43
Alex
17.02.2018
10:03:15
Cenator
17.02.2018
10:04:01
Alex
17.02.2018
10:04:46
Cenator
17.02.2018
10:04:57
1) Я имел ввиду дебаг
Naught
17.02.2018
10:05:31
console.log(__dirname)
В браузере - Error: /home/max/mngo-node/views/home.hbs: The partial head could not be found
В коде сервера - hbs.registerPartials(__dirname + '../views/partials');
переменная. вызванная из сервера -
/home/max/mngo-node/server
Cenator
17.02.2018
10:08:45
Какая структура
Naught
17.02.2018
10:09:12
вот такая жеж
Игорь
17.02.2018
10:09:14
Почему лучше не менять данные?
js не самый прозрачный язык в плане мутабельности. По этому проще отказаться от мутирования вообще, чем потом бегать и искать концы, а в конце концов окажется что ты передал объект по ссылке и в последствии дропнул из него поле, которое использовал дальше по коду
Naught
17.02.2018
10:10:18
Google
Игорь
17.02.2018
10:11:00
нативных иснстрементов для глубокого копирования объектов вообще нет. И это расстраивает
Alex
17.02.2018
10:11:53
Cenator
17.02.2018
10:12:03
С перфомансом все норм
Naught
17.02.2018
10:12:56
Cenator
17.02.2018
10:13:13
Игорь
17.02.2018
10:13:44
Naught
17.02.2018
10:13:54
Alex
17.02.2018
10:14:26
Никакой, лучше забыть про мутации
Радикализм какой-то
И слишком смелое утверждение, имхо, что с производительностью всё норм
Возможно, просто пока не попадались такие задачи, где вариант породить новые данные, а не изменить существующие, был бы не самым оптимальным
Cenator
17.02.2018
10:14:47
Naught
17.02.2018
10:15:16
Игорь
17.02.2018
10:15:20
Просто мы живем не в 20 веке, где средняя машина имеет 64 магабайта оперативной памяти
Cenator
17.02.2018
10:15:55
Alex
17.02.2018
10:16:08
Ну и задачи решаем не из 20 века
И с другими объемами данных работаем
Naught
17.02.2018
10:18:53
Игорь
17.02.2018
10:20:51
Согласен, не из 20. Но зачастую делая копию данных оригинал уже не нужен, тюею выбрасывается из памяти. Это раз.
Зачастую приходится делать просто поверхностную копию объекта, что не так уж и бьет по производительности. Это два.
Мы работаем над проектом, где каждая функция на сервере является чистой, никакого мутирования. Таймаут запроса - 5 сек. Все что отрабатывает свыше 5 сек неприемлимо. И ни разу это не произошло из-за желания не мутировать данные
Alex
17.02.2018
10:24:04
Ну ок
А если вернуться на шаг назад
Какую проблему в данном примере решила бы замена мутации данных на формирование новых данных?
Это повысило бы производительность? Улучшило бы читаемость?
Согласен, не из 20. Но зачастую делая копию данных оригинал уже не нужен, тюею выбрасывается из памяти. Это раз.
Зачастую приходится делать просто поверхностную копию объекта, что не так уж и бьет по производительности. Это два.
Мы работаем над проектом, где каждая функция на сервере является чистой, никакого мутирования. Таймаут запроса - 5 сек. Все что отрабатывает свыше 5 сек неприемлимо. И ни разу это не произошло из-за желания не мутировать данные
Зачастую это понятно, конечно
Ну а если всё таки надо делать глубокую копию?
Я поясню
Я не против фп, чистых функций и иммутабельности
Я против того, что это универсальный подход. И против того, что при любом вопросе первое, что советуют - иммутабельность. Даже если проблема явно не с мутабельностью данных связана
Игорь
17.02.2018
10:28:13
ну я не говорил про "всегда и везде pure function"
Google
Игорь
17.02.2018
10:29:11
Я говорю, что в js мутабельность очень щекотливая тема и некоторые вещи не столь очевидны
Naught
17.02.2018
11:22:36
Nikolay
17.02.2018
11:22:46
привет всем, куда лучше вакансию запостить? сюда или есть отдельный канал?
Naught
17.02.2018
11:23:02
Nikolay
17.02.2018
11:23:26
Дмитрий
17.02.2018
11:26:50
Nikolay
17.02.2018
11:27:17
Валера
17.02.2018
11:53:05
Ребята, может кому-то не лень будет
не могу разобраться в архитектуре доставания promise из async function, не знаете где примеры глянуть, или напишите хотяб самый простой
sh
17.02.2018
11:57:49
Валера
17.02.2018
12:00:36
const test = await promise;
async f (){
do some shit <----- где-то здесь надо дать команду отправить промис. или нет?
};
Vsevolod
17.02.2018
12:01:28
Сначала разберись что тако промис
И как он работает
Игорь
17.02.2018
12:01:53
И что значит "доставлять" промис?
Аа, сорян, читаю не так)
Валера
17.02.2018
12:02:25
/уходит читать статьи/
Игорь
17.02.2018
12:03:08
Async function и так возвращает промис
Валера
17.02.2018
12:04:08
у меня пишет что promise returned from function is ignored
я пытаюсь с этим совладать
sh
17.02.2018
12:05:11