@nodejs_ru

Страница 1137 из 2748
Andrew
28.08.2017
14:51:05
А лайк не добавляет в закладки?
нет, просто сохраняется запись о лайке

Konstantin
28.08.2017
14:52:24
да, бизнес требование
Лично я бы сделал, наверное, CONSTRAINT-ом в postgres

Google
Andrew
28.08.2017
14:53:31
Лично я бы сделал, наверное, CONSTRAINT-ом в postgres
на клиент надо будет отправлять информацию о том, может ли текущий пользователь лайкать свой пост

Aleksandr
28.08.2017
14:55:18
Лично я бы сделал, наверное, CONSTRAINT-ом в postgres
вообще вот это норм пытаться вставить заведомо кривые данные и валидировать постгресом? звучит как простой быстрый и надежный вариант, но побочкой идет килотонна логов уровня ERROR даже без хайлоада если

Таймураз
28.08.2017
14:58:05
на клиент надо будет отправлять информацию о том, может ли текущий пользователь лайкать свой пост
Если лайков планируется сильно больше кол-ва постов- лучше запросить но айдишнику новость, чем еще одно поле добавлять

post < like^(2/3)- делать запрос и кешировать

Konstantin
28.08.2017
15:00:33
вообще вот это норм пытаться вставить заведомо кривые данные и валидировать постгресом? звучит как простой быстрый и надежный вариант, но побочкой идет килотонна логов уровня ERROR даже без хайлоада если
Не знаю, если честно, не сталкивался пока с таким хайлоудом. Исхожу я из того, что по требованиям юзер не может лайкнуть свой контент. Т.е. в БД ни при каких условиях не должны добавиться неконсистентные данные. В случае использования вне-БД-проверок, такое возможно.

Andrew
28.08.2017
15:01:23
Если лайков планируется сильно больше кол-ва постов- лучше запросить но айдишнику новость, чем еще одно поле добавлять
но получается что на каждый лайк мне нужно делать запрос на наличие лайка, плюс join на автора поста, чтоб провести валидацию. Плюс для показа лайка мне нужно сдеелать запрос на сам лайк, плюс join, чтобы узнать автора поста и выдать информацию может ли пользователь лайкать ---------- 4 запроса Если сохранять одно поле, то будет 2 запроса (один для показа, другой для валидации на наличие)

Aleksandr
28.08.2017
15:03:46
Не знаю, если честно, не сталкивался пока с таким хайлоудом. Исхожу я из того, что по требованиям юзер не может лайкнуть свой контент. Т.е. в БД ни при каких условиях не должны добавиться неконсистентные данные. В случае использования вне-БД-проверок, такое возможно.
ну так и делают, контсрейнт это реально самый минималистичный надежный и быстрый способ. как разработчик я бы так и сделал, как девопс я бы такое не одобрил вообще. когда у тебя миллион записей уровня ERROR бестолковых то среди них очень легко пропустить проблемы

Таймураз
28.08.2017
15:04:30
Автор поста и так известен (аутентификация) В итоге два запроса- проверить наличие лайка и найти пост. Чтобы показать лайк- один запрос- лайкнул ли пользователь и все. Наличие лайка, скорее всего, приходит в ответе с постом, по посту узнаем кто пользователь и пляшем от этого

На все действия три запроса сверху

Таймураз
28.08.2017
15:06:02
автор поста неизвестен, если ты его не передаешь вместе c id
К нам приходит пользователь, есть его айдишник Запрашиваем пост Совпадают автор поста и пользователь- это и есть автор

Aleksandr
28.08.2017
15:07:21
К нам приходит пользователь, есть его айдишник Запрашиваем пост Совпадают автор поста и пользователь- это и есть автор
пользователь ставит лайки на 10 постов, среди них 2 его, как без допольнительных обращений в базу отсечь самолайк? только таскать автора поста с постом или констрейнтом в БД

Konstantin
28.08.2017
15:07:23
Google
KlonD90
28.08.2017
15:10:13
хранить set лайкнувших и анлайкнувших и выводить число фильтром

Andrew
28.08.2017
15:12:27
А смысл в схеме новости автора не хранить?
post(id, author_id, text) like(id, author_id, post_id) Любой пользователь делает лайк на любой пост, нужно каждый раз проверять принадлежит ли пост этому пользователю При выводе поста нужно выводить флаг, может ли пользователь лайкать пост

Aleksandr
28.08.2017
15:13:35
хранить set лайкнувших и анлайкнувших и выводить число фильтром
в памяти? он потенциально может быть очень большого размера

Aleksandr
28.08.2017
15:20:31
а ты автора поста не отправляешь что ли? сравниваешь юзера текущего и автора, один и тот же - лайкать не надо
как в нормальный REST добавить автора? например PUT /posts/{id}/like, обязательным тело делать с ссылкой на автора, а если автора подсунули левого?

Andrew
28.08.2017
15:20:44
а ты автора поста не отправляешь что ли? сравниваешь юзера текущего и автора, один и тот же - лайкать не надо
хм, хороший вопрос. Я к посту отправляю информацию post(id, text, author(id, first_name, last_name)) в виде графа. А id - это глобальный id из relay-js

Vsevolod
28.08.2017
15:21:13
как в нормальный REST добавить автора? например PUT /posts/{id}/like, обязательным тело делать с ссылкой на автора, а если автора подсунули левого?
это при сохранении, а при получении поста можно флаг сразу пихать, или вообще оставить это на фронт

Aleksandr
28.08.2017
15:21:35
В редисе?
ну так это другой вопрос, там у автора изначально только БД вроде, если задаться ограничениями то можно искать варианты да

Vsevolod
28.08.2017
15:22:47
Aleksandr
28.08.2017
15:23:05
при сохранении проверять все равно надо
так изначально вопрос как это делать оптимально

Vsevolod
28.08.2017
15:23:28
ну так есть 2 задачи - првоерка при сохранении и вывод инфы на фронте

Andrew
28.08.2017
15:41:13
с одной стороны сохранять в like информацию об авторе поста -- это дублирование данных с другой не сохранять данные - это постоянно делать два раза join

Егор
28.08.2017
16:20:49
Всем привет! Начинаю работать над крупным проектом на Redux, использую ноду как прослойку для серверного рендеринга, нормализации данных для клиента, и т.д. У кого был опыт нормализации данных, подготовки стейта для клиента при получении данных из внешних источников? Поделитесь опытом?

Какие библиотеки используете? Или что-то самописное? Плюсы и минусы, с которыми столкнулись?

Google
Егор
28.08.2017
16:23:43
Спасибо

Только для этого нода и нужна, что бы лишнюю логику убрать с клиента, на сервере все данные подготовить. Или с точки зрения производительности это слишком накладно?

Я как раз фронтендер, и насчет производительности раньше не сильно заморачивался. Не знаю, насколько операции нормализации на сервере могут сказаться на ней.

Andrew
28.08.2017
16:27:37
Только для этого нода и нужна, что бы лишнюю логику убрать с клиента, на сервере все данные подготовить. Или с точки зрения производительности это слишком накладно?
я делал несколько проектов мобильные/фронтенд с использоватением этой библиотеки. Для тех нужд было достаточно. Если не будет, то есть другой путь, требующий сущестенно больше времени для изучения материала

Егор
28.08.2017
16:29:22
Понял, спасбио

Ilya
28.08.2017
17:00:31
На микросервис json запросы лучше делать axios? Fetch?

Леха
28.08.2017
17:02:40
Как потестить авторизацию через GitHub, если сервер на localhost? Что мне указать в Callback URL?

Сергей
28.08.2017
17:02:45
Леха
28.08.2017
17:04:47
Эм, localhost? :)
ну мысль была такая, но решил сначала уточнить ))

Konstantin
28.08.2017
17:05:46
Не надо бояться экспериментировать ;)

Sergey
28.08.2017
18:01:04
Парни

Плохая практика делать динамические страницы на node?

Вернее на экспрессе

KlonD90
28.08.2017
18:02:04
а какие ты хочешь выводить?

Sergey
28.08.2017
18:02:59
При запросе на site.ru/bugs выводить запрос к БД

Gleb
28.08.2017
18:24:30
При запросе на site.ru/bugs выводить запрос к БД
Why not? Ты хочешь для этого запилить Web App на React+Redux+Saga+GraphQL?

Borys
28.08.2017
19:02:17
парни а можете объяснить как работает event loop или дать пару ссылок на источники?

Вишневый чай
28.08.2017
19:02:33
Why not? Ты хочешь для этого запилить Web App на React+Redux+Saga+GraphQL?
React+Redux+Saga+GraphQL - это максимум на лендос

Google
Borys
28.08.2017
19:04:51
спасибо. очень крамольно будет спросить - возможно есть текст его выступления? даже без перевода? про субтитры на ютубе знаю

Borys
28.08.2017
19:07:22
ох. сорри и спасибо!

A.
28.08.2017
19:13:18
https://m.youtube.com/watch?v=8cV4ZvHXQL4&feature=youtu.be

Ilya
28.08.2017
19:14:10
Ещё почитать про libuv

Попробовать с ней поиграть в сях

Sergey
28.08.2017
19:14:36
Знай свой инструмент: Event Loop в libuv https://habrahabr.ru/post/336498/

там есть куски из libuv, довольно неплохая статья

A.
28.08.2017
19:23:21
Вопрос достаточно обширной тематики, но задам. Какие существуют хорошие практики по логированию в проекте? Интересует анализ, хранение (критические ошибки и т.д.).

Aleksandr
28.08.2017
19:25:13
Gleb
28.08.2017
19:25:43
Плюсую по поводу статьи.

A.
28.08.2017
19:26:32
Хотя Winston вроде как тяжеловат.

Aleksandr
28.08.2017
19:26:53
Gleb
28.08.2017
19:27:08
Bunyan ещё

Aleksandr
28.08.2017
19:28:01
Bunyan ещё
benchBunyan*10000: 1355.229ms benchWinston*10000: 2226.117ms benchBole*10000: 291.727ms benchDebug*10000: 445.291ms benchLogLevel*10000: 322.181ms benchPino*10000: 269.109ms

Borys
28.08.2017
19:28:08
спасибо за перевод и за ссылки!

A.
28.08.2017
19:28:24
pino
Почему раньше не видел ?

Google
A.
28.08.2017
19:28:29
pino
Спасибо!

Aleksandr
28.08.2017
19:29:09
Почему раньше не видел ?
ну мало кого тревожит скорость логгера, меня тревожит, поэтому я всегда такие пакеты вижу и ищу

A.
28.08.2017
19:30:24
ну мало кого тревожит скорость логгера, меня тревожит, поэтому я всегда такие пакеты вижу и ищу
Именно поэтому не использовал Winston, свои "наработки" (в кавычках) были.

Gleb
28.08.2017
19:30:27
Спасибо!
Если хочешь, можешь переодически простукивать мне в ЛС, я всё никак не собируюсь выложить на GitHub свой конфиг для EFK.

Aleksandr
28.08.2017
19:30:57
Gleb
28.08.2017
19:31:01
Pino достаточно молодой вроде, надо будет попробовать)

Ой, да шо там писать...)

Aleksandr
28.08.2017
19:32:43
Ой, да шо там писать...)
да, многие берутся за час написать, в итоге выходит херово за неделю

Pino достаточно молодой вроде, надо будет попробовать)
он еще и браузер поддерживает, отличный проект и очень толковый подход у ребят

Gleb
28.08.2017
19:40:15
Сейчас уже не айс делать лог в файл, пусть этим внешняя аппа занимается (pm2, docker). Остаётся форматирование, но это такое... Про браузерную поддержу да, не подумал, но не думаю, что это нечто фатально сложное, верно?

Gleb
28.08.2017
19:44:06
Окей, после еды полистаю исходники этого вашего pino)

Gleb
28.08.2017
20:06:15
Лучше до еды
Хм) Пожалуй) На самом то деле ничего особенного, обычный древненький код. Сериалайзер да pretty-print утилка.

Быстрота тупо за счёт маленького функционала. Но согласен, да, что простой как лопата, тем и хорош. Но юзать не буду, я лучше свой велосипед построю ?

Voskresus
28.08.2017
20:09:37
как запустить ноду в интернет

Страница 1137 из 2748