@rubylang

Страница 1404 из 1684
Vasiliy
25.02.2018
10:24:28
потому что там классы закрытые, а DI даёт гибкость при тестировании

Google
Vasiliy
25.02.2018
10:26:16
и я в пыхе смотрел на это и думал - ну нахуя же так усложнять лол)

эт потом я увидел несколько проектов на рельсе и понял что говнокод от ЯП не зависит, так что хейтерство пыхи несколько приувеличено

Vasiliy
25.02.2018
10:35:38
и ещё(понесло) взять ту же симфони к примеру, там для БД тот же Repository используется, форм обжекты есть

Anton
25.02.2018
10:38:01
И контейнеры для зависимостей

Nikita
25.02.2018
10:57:10
а его без шахты не бывает?)

Dmitry
25.02.2018
10:59:42
Мне скорее интересно стало, мешает ли рубокоп Антону. Если шахта мешает.

Сегодня конечно сложно будет вопросы задавать тут.

Прочитал чат и не ослеп

мне тут на собеседовании вопрос задали. есть 10 миллионов юзеров, 10 млн постов и 100 млн лайков, как я бы выводил на странице последние 50 постов, для current_user с пролайкавшими эти посты друзьями.

Dmitry
25.02.2018
11:03:23
Я встал и ушел)

Google
No
25.02.2018
11:03:45
Надо было правильный ответ спросить

Ибо вопрос слишком абстрактный

И вариантов великое множество исходя из ситуации

Dmitry
25.02.2018
11:05:40
для текущего пользователя

для текущего пользователя
его последние 50 постов

Vasiliy
25.02.2018
11:08:39
а чего ты встал и ушёл то?

зассал?

Dmitry
25.02.2018
11:09:07
Типо того

Nikita
25.02.2018
11:09:14
current_user.posts.joins(:likes).where(«likes.user_id IN (#{current_user.friends.ids.join(‘,’)})»).order(‘posts.created_at DESC’).limit(50)

как-то так? но я не уверен, нужно модели видеть

Nikita
25.02.2018
11:09:36
а, понятно

No
25.02.2018
11:09:45
Nikita
25.02.2018
11:09:48
тогда правильно сделал что встал и ушел

rekero
25.02.2018
11:10:33
Почему?
прикинь сколько по времени у тебя этот запрос будет выполняться

для "10 миллионов юзеров, 10 млн постов и 100 млн лайков"

No
25.02.2018
11:11:00
Звучит интересно

Надо протестить

Dmitry
25.02.2018
11:11:29
Я вот тоже сижу базу заполняю тестовую.

Google
Decadent
25.02.2018
11:12:08
про индексы не забудьте

No
25.02.2018
11:12:27
Есть подозрение, что 10 млн юзеров не все активны

Dmitry
25.02.2018
11:12:51
Суть в том что код я уже написал который теоретически это сделает до конца существования галлактики.

No
25.02.2018
11:13:03
И 9 млн отфильтруются если в базе сделать индекс по isActive полю

Dmitry
25.02.2018
11:13:26
Только проверить как если ты никогда с такими объемами не работал?

Nikita
25.02.2018
11:13:42
для "10 миллионов юзеров, 10 млн постов и 100 млн лайков"
ты же не будешь все записи перебирать, там же только друзей учитывать нужно, + индексы есть

Dmitry
25.02.2018
11:13:57
Даже гем по автозаполению базы после 100 000 записей начинает вести себя не адекватно.

No
25.02.2018
11:14:11
Индекс эластика тоже не выход кстати

Ибо память треснет

По идее

Nikita
25.02.2018
11:14:49
но все равно жестко как-то

Vasiliy
25.02.2018
11:14:53
No
25.02.2018
11:15:13
Да, согласен

Но я слабо представляю решение этой задачи в вакууме

Vasiliy
25.02.2018
11:15:46
с джоинами я думаю оно охуеет

No
25.02.2018
11:15:48
Это не тривиальный вопрос про проки и лямбды

Dmitry
25.02.2018
11:15:58


No
25.02.2018
11:16:09
с джоинами я думаю оно охуеет
Думаю да, даже с индексами

Nikita
25.02.2018
11:17:05
та ну да, я что-то так подраскинул, джойнить лайки это жестко

No
25.02.2018
11:17:42
На руби писать такое нельзя. А на php рекомендуется

Google
No
25.02.2018
11:17:56
В чем недостаток руби перед пхп?

Vasiliy
25.02.2018
11:18:16
так то я думаю если в несколько запросов ебошить и всякие плаки юзать то руби вполне осилит

чувак наверное думает что все сущности в память пойдут

вообще я конечно в лужу могу пёрнуть, но counter_cache в рельсе под это можно заюзать

No
25.02.2018
11:20:19
Не, никак не поможет

Vasiliy
25.02.2018
11:20:36
а, там же блять условие что френды должны пролайкать

No
25.02.2018
11:20:36
Нам надо найти посты, которые лайкнули френды

Dmitry
25.02.2018
11:21:14
В чем недостаток руби перед пхп?
Это экспертное мнение одного мной уважаемого программиста, так что я хз. php я знаю постолько поскольку.

No
25.02.2018
11:21:57
Кстати в теории NoSql тут помогает

Vasiliy
25.02.2018
11:22:24
я про утечки памяти чёт не просёк

No
25.02.2018
11:22:43
На монге находишь посты юзера, в посте эмбедед лайки

Все быстро

Все бодро

Dmitry
25.02.2018
11:24:07
я про утечки памяти чёт не просёк
Ну я так понимаю что раз у нас 10 миллионов пользователей то какая то их часть одновременно захочет это вывести для себя. Тут я уже себе слабо представляю какой это ад может быть.

Vasiliy
25.02.2018
11:24:39
это уже другой вопрос

Dmitry
25.02.2018
11:25:04
Просто мне кажеться он на него попробовал ответить.

Vasiliy
25.02.2018
11:25:05
так то похую что там пых го или руби если затык в БД

ну он уже более глобально пошёл

No
25.02.2018
11:25:37
Так, стоп

Задача решается просто

Google
No
25.02.2018
11:26:07
current_user у нас уже есть

Если лайки хранить массивом в посте

То остается выбрать посты юзера

И фильтрануть

Nikita
25.02.2018
11:26:54
а если лайки по связи?

Vasiliy
25.02.2018
11:26:55
я про такое подумал - взять фрейдов и приджоинить их лайки к своим записям

No
25.02.2018
11:27:01
С корректными индексами - ноль проблем

а если лайки по связи?
Значит проеб в архитектуре базы

Dmitry
25.02.2018
11:27:22
Нужно не лайки вывести а юзеров которые твои друзья и пролайкали твой пост.

No
25.02.2018
11:27:52
Лайк == user_id в массиве likes

Изи

Nikita
25.02.2018
11:28:19
а как ты поймешь, что лайк от друга?

Vasiliy
25.02.2018
11:28:42
взять френдов дернуть посты где лайк от юзера френд к куррент юзер ид фильтрануть друганов

Nikita
25.02.2018
11:28:56
Значит проеб в архитектуре базы
имеено поэтому я и уверен, что лайки по связи

Dmitry
25.02.2018
11:29:31
блин сейчас найду, бумажку

Vasiliy
25.02.2018
11:29:39
но я не настоящий сварщик

No
25.02.2018
11:29:56
Если нам не надо джойнить 100 лямов лайков

То с корректными индексами

Проблемы нет

Vasiliy
25.02.2018
11:30:15
тут походу подъебка как раз в том что ты в лоб пойдёшь сразу лайки лопатить которые тебе наставили

Страница 1404 из 1684