Size: a a a

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

2020 September 27

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
@ZloyPrizrak видишь, ты всего лишь задал вопрос как реализовать фичу, а уже всему чату понятно, что у вас там никудышная архитектура, все выводы сделаны, теории построены 😎
источник

D

Dmitry in Node.js — русскоговорящее сообщество
Алексей Попов
@ZloyPrizrak видишь, ты всего лишь задал вопрос как реализовать фичу, а уже всему чату понятно, что у вас там никудышная архитектура, все выводы сделаны, теории построены 😎
Опыт не пропьёшь ;)
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Алексей Попов
@ZloyPrizrak видишь, ты всего лишь задал вопрос как реализовать фичу, а уже всему чату понятно, что у вас там никудышная архитектура, все выводы сделаны, теории построены 😎
Есть такое. Даже странно, как компания существует и растет... Как дома, построенные прадедами стоят веками, а "правильные" современные разваливаются )))
источник

JB

Joe Beretta in Node.js — русскоговорящее сообщество
Eldar
а у каждой новости держать флаг видимости и по нему собирать ленту ?
Флаг категории. Если категорий всего лишь три (юзеру, компании, всем) то я бы накидал флаг только на именованные категории (юзеру и компании) а "всем", оставил бы без флага (зачем писать и юзеру и компании, а новая категория появится и его вписывать придется)

Тогда лишь 1 и тот же запрос в бд, с 1 условием поиска category: categoryName может выдернуть все записи для нужной категории, а "для всех" и вовсе без условия поиска (просто findAll(*)) выдернет
источник

М

Максим in Node.js — русскоговорящее сообщество
Алексей Попов
@ZloyPrizrak видишь, ты всего лишь задал вопрос как реализовать фичу, а уже всему чату понятно, что у вас там никудышная архитектура, все выводы сделаны, теории построены 😎
Ещё определили квалификацию, характер... 😂
источник

E

Eldar in Node.js — русскоговорящее сообщество
Joe Beretta
Флаг категории. Если категорий всего лишь три (юзеру, компании, всем) то я бы накидал флаг только на именованные категории (юзеру и компании) а "всем", оставил бы без флага (зачем писать и юзеру и компании, а новая категория появится и его вписывать придется)

Тогда лишь 1 и тот же запрос в бд, с 1 условием поиска category: categoryName может выдернуть все записи для нужной категории, а "для всех" и вовсе без условия поиска (просто findAll(*)) выдернет
Thats good point
источник

JB

Joe Beretta in Node.js — русскоговорящее сообщество
Eldar
Thats good point
thnx)
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Joe Beretta
Флаг категории. Если категорий всего лишь три (юзеру, компании, всем) то я бы накидал флаг только на именованные категории (юзеру и компании) а "всем", оставил бы без флага (зачем писать и юзеру и компании, а новая категория появится и его вписывать придется)

Тогда лишь 1 и тот же запрос в бд, с 1 условием поиска category: categoryName может выдернуть все записи для нужной категории, а "для всех" и вовсе без условия поиска (просто findAll(*)) выдернет
К слову об архитектуре и сложности изменений при её неоптимальности: а что будет, когда появится ещё одна категория пользователей? Кажется, расширение такой схемы будет весьма нетривиальным
источник

D

Dmitry in Node.js — русскоговорящее сообщество
Алексей Попов
К слову об архитектуре и сложности изменений при её неоптимальности: а что будет, когда появится ещё одна категория пользователей? Кажется, расширение такой схемы будет весьма нетривиальным
еще одна очередь + одна имплементация интерфейса очереди
делов на копейку
источник

DR

Dmitry R in Node.js — русскоговорящее сообщество
пока до конца не разобрался, но мб кто-то знает, почему может process.on('SIGTERM', ...) и SIGINT и beforeExit не работать - не вызывается колбек? работает только process.on('exit'). запускаю npx ts-node app.ts и node -r ts-node/register. с дебаггером в vscode если убивать kill -15 pid то тоже колбек не вызывается
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Dmitry R
пока до конца не разобрался, но мб кто-то знает, почему может process.on('SIGTERM', ...) и SIGINT и beforeExit не работать - не вызывается колбек? работает только process.on('exit'). запускаю npx ts-node app.ts и node -r ts-node/register. с дебаггером в vscode если убивать kill -15 pid то тоже колбек не вызывается
Как ты понял, что не вызывается?
источник

DR

Dmitry R in Node.js — русскоговорящее сообщество
если на простой аппке вызывать kill и ctrl+c то работает
setTimeout(() => {
   console.log('base settimeut exit')
}, 1000000)

new Promise(resolve => {
   console.log('process pid', process.pid)

   const onKill = (code: NodeJS.Signals) => {
       console.log('kill', code)

       setTimeout(() => (console.log('after 1 sec'), process.exit()), 1000)
   }
   process.on('SIGTERM', onKill)
   process.on('SIGINT', onKill)
})
источник

DR

Dmitry R in Node.js — русскоговорящее сообщество
Алексей Попов
Как ты понял, что не вызывается?
1) нажимаю ctrl+c - нет логов из колбека и аппка выходит при этом. но при этом коды корректные и лиснеры регаются тоже
источник

DR

Dmitry R in Node.js — русскоговорящее сообщество
Dmitry R
если на простой аппке вызывать kill и ctrl+c то работает
setTimeout(() => {
   console.log('base settimeut exit')
}, 1000000)

new Promise(resolve => {
   console.log('process pid', process.pid)

   const onKill = (code: NodeJS.Signals) => {
       console.log('kill', code)

       setTimeout(() => (console.log('after 1 sec'), process.exit()), 1000)
   }
   process.on('SIGTERM', onKill)
   process.on('SIGINT', onKill)
})
тут работает
источник

DR

Dmitry R in Node.js — русскоговорящее сообщество
process.on('exit', ...) при этом работает, логи из колбека есть
источник

JB

Joe Beretta in Node.js — русскоговорящее сообщество
Алексей Попов
К слову об архитектуре и сложности изменений при её неоптимальности: а что будет, когда появится ещё одна категория пользователей? Кажется, расширение такой схемы будет весьма нетривиальным
Ну так добавится в список категорий. Я бы их вынес в энам, список, конфиг или еще что угодно.
И когда добавится новая категория, она по умолчанию будет отображаться среди постов "всех категорий", а чтобы отображать новой категории пользователей достаточно поправить переменную в запросе бд и добавить проверку на принадлежность юзера к данной категории
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Joe Beretta
Ну так добавится в список категорий. Я бы их вынес в энам, список, конфиг или еще что угодно.
И когда добавится новая категория, она по умолчанию будет отображаться среди постов "всех категорий", а чтобы отображать новой категории пользователей достаточно поправить переменную в запросе бд и добавить проверку на принадлежность юзера к данной категории
У тебя есть правило, что с тегом А отображать одной категории пользователей, с тегом Б - другой, а без тега - всем. Пока всё ок
Но появляется новая категория, которой надо показывать только с тегом В, и не показывать, если нет тега - и тут твоя схема ломается
источник

JB

Joe Beretta in Node.js — русскоговорящее сообщество
Алексей Попов
У тебя есть правило, что с тегом А отображать одной категории пользователей, с тегом Б - другой, а без тега - всем. Пока всё ок
Но появляется новая категория, которой надо показывать только с тегом В, и не показывать, если нет тега - и тут твоя схема ломается
я понял о чем ты. ну так схему я и описал для категорий без вложений
источник

JB

Joe Beretta in Node.js — русскоговорящее сообщество
если на то пошло, тут много нюансов надо учитывать и вовсе по другому все это обставлять
источник

D

Dmitry in Node.js — русскоговорящее сообщество
Алексей Попов
У тебя есть правило, что с тегом А отображать одной категории пользователей, с тегом Б - другой, а без тега - всем. Пока всё ок
Но появляется новая категория, которой надо показывать только с тегом В, и не показывать, если нет тега - и тут твоя схема ломается
это все разруливается через event sourcing при создании поста
PostCreatedEvent -> CategoryASubscriber|CategoryBSubscriber и тд
каждый получит пост и сформирует нужную очередь в зависимости от данных самого поста
источник