Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 May 24

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
то нужно написать код, который их сливает. А потом код, который их чистит

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

V

Vitalii in NodeUA - JavaScript and Node.js in Ukraine
👋🏻 привіт!
Розумію, що тут більшість нод-розробники, але все ж мають бути люди, які спробували за своє життя не тільки його.

Мене цікавить, яка технологія краще підійде для розробки системи метчингу (matching system). Це підбір (метчинг) людей на основі кількох критеріїв (ні, це не Tinder, але так також зводитиме людей).
К-сть користувачів? Припустимо 100-500 мільйонів людей.
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
мне кажется при грамотном подходе любой язык выдержит
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
другое дело что вам нужен будет не один сервер а несколько, и что-то типа Map/Reduce или что там используют
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
эта задача от бекенд-языка мало зависит.
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
а так-то главное правильный и быстрый алгоритм а не язык
источник

V

Vitalii in NodeUA - JavaScript and Node.js in Ukraine
Так, варто додати ще, що matching system вимагає застосування машинного навчання (чи це хибна думка?). Тому треба це враховувати.
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
Хз какое там машинное обучение. В момент сохранения профиля прогоняется какая-то функция, которая выдает профилю score. Вот ее на чем захочешь, но том и напишешь.

А матчинг просто по скору людей, их близости и мб еще каким-то полям в базе выборку из бд делает.
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
мы когда-то делали матчинг для сведения людей без машинного навчання. просто люди в профиле указывали интересы (слова) и матч это если более 3х интересов совпадают. первая версия кода была типа такая
for (let i = 0; i < users.length; i++) {
  for (let j = 0; j < users.length; i++) {
      const cnt_matches = countMatches(users[i], users[j]);
      if (cnt_matches > 3) saveMatchToDb(users[i].id, users[j].id)
  }
}
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
но это жесть и так не делайте. сложность O(n^2) и когда много пользователей начинает заканчиваться и память и время. поэтому основное это алгоритм )
источник

AG

Alex Grig in NodeUA - JavaScript and Node.js in Ukraine
тут еще важен критерий мэтчинга
источник

AG

Alex Grig in NodeUA - JavaScript and Node.js in Ukraine
даже  сложность O(n^2) не самое страшное имхо =)
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
поэтому всякие дейтинги тебе не показывают все матчи сразу, а по одному; Потому что выдернуть 1 профиль даже с n^10 нестрашно
источник

AG

Alex Grig in NodeUA - JavaScript and Node.js in Ukraine
а вы дейтинг разрабатываете, мне интересны дейтинги
источник

АМ

Андрей Москаленко... in NodeUA - JavaScript and Node.js in Ukraine
ну если юзеров около 100000, то оно будет слишком долго )
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
кеши решают
источник

AG

Alex Grig in NodeUA - JavaScript and Node.js in Ukraine
это можно как-то обойти я думаю
источник

АМ

Андрей Москаленко... in NodeUA - JavaScript and Node.js in Ukraine
все что угодно, лишь бы не думать над алгоритмом )
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
давным давно 2 года работала в дейтинг проекте ) наверно с тех пор алгоритмы матчинга стали лучше чем мы писали тогда на for-each-ах
источник

AG

Alex Grig in NodeUA - JavaScript and Node.js in Ukraine
прикольно, я раз фронт пилил на дейтинге на джквери но то тоже было давно =)
источник