
Mykola
05.10.2018
19:15:06
ничего общего с трейтами в пхп
в расте тайпклассы это трейты вроде, да

Yury
05.10.2018
19:16:08
ну мне нужно на жабе)

Mykola
05.10.2018
19:17:23
очень жаль)

Google

Anton
05.10.2018
19:22:37
ну смотри, для визитора делаешь метод что-то вроде addBehaviour(VisitBehaviour vb) затем там внутри определи может ли vb дружить с объектами которые посещает визитор и если может, то вызывай что нужно.
сложно сказать валидно ли то что я предлагаю.

Mykola
05.10.2018
19:27:08
задача поставлена не очень хорошо для ооп
coupling надо решать
а он здесь не решается без рантайма
ну или без тайпклассов с имплисит конвершн
когда там в жаву их уже завезут?
может стоит подумать и поменять задачу)

Igor
05.10.2018
20:09:06

Yury
06.10.2018
01:44:16
coupling надо решать
Вот что я искал.
https://sourcemaking.com/design_patterns/visitor/java/2
Рефлексия в рантайме. Правда перформанс от такого страдает, наверное стоит переделать, чтобы отрабатывала при старте только.

Aleh
06.10.2018
06:25:27
Это уже лисп был, Кею он кстати очень нравился

First
06.10.2018
06:26:10

Google

Aleh
06.10.2018
06:29:57
Hey all, I decided to create a channel in Telegram, where I will post and you will only read. This chat is full of spam, unfortunately, and it’s time to help those who want to read only me. Please, join: https://t.me/yegor256news


Mykola
06.10.2018
06:31:01
класный чувак)

Aleh
06.10.2018
06:32:08
Он не про наш чат конечно же)

Mykola
06.10.2018
06:32:47
да понятно, но всё равно он класный)
профессионал

Adel
06.10.2018
07:19:21
Скромный профессионал

First
06.10.2018
07:28:18

tdesc
06.10.2018
08:22:52
Писал 10 лет на с++, потом java и obj c, javascript и сейчас на проекте дарт котлин и свифт.
Дарт крайне приятный язык со строгостью с++ и future и стримами. отлично подходит для реактивного программирования на мобилках и для энтерпрайз веба.

Yury
06.10.2018
08:27:28
д - деградация

First
06.10.2018
08:27:32
А это к чему?

tdesc
06.10.2018
08:29:06
Дарт мне зашёл лучше других

First
06.10.2018
08:29:21
Это ж не твиттер вроде

Aleh
06.10.2018
08:59:08
строгость c++
это как

illiatshurotshka❄️
06.10.2018
09:08:07
в дарте же нету строгости

Aleh
06.10.2018
09:08:18
а в плюсах?)

illiatshurotshka❄️
06.10.2018
09:08:38
была наверное

Google

Aleh
06.10.2018
09:09:32
всего две буквы - UB

First
06.10.2018
09:19:15

Yegor
06.10.2018
11:38:41
Я сделал себе новый телеграм канал, где будут свежие новости от меня, обновления, статьи и просто мысли про ООП, подписывайтесь: https://t.me/yegor256news

Sergey
06.10.2018
11:41:45
как-то там пока пустова-то
Тебе ж Дэвид Вэст уже объяснял что мысли про ООП это пустое)

Yegor
06.10.2018
11:42:57

Sergey
06.10.2018
11:43:08
тебе даже Алан Кей намекал на это)
он намекает почти в каждом своем выступлении, пока самое эпичное это интервью с создателем эрланга:
блин, лень искать таймкод... https://www.youtube.com/watch?v=fhOHn9TClXY
и я все ещё не согласен)
ну просто все твои статьи сводятся к "ой да может уже просто начнешь писать на Haskell, все ж мысли к этому и ведут"

First
06.10.2018
12:52:54

Sergey
06.10.2018
12:59:16
ты может тоже не оч, но мы тебя как-то терпим)

Ivan
06.10.2018
13:03:07
?

First
06.10.2018
13:20:26


Viktor
06.10.2018
13:32:10
Привет всем,
Есть задача:
1. Есть 5-10 категорий по которым можно фильтровать продукты.
2. При выборе чекбоксов в категории нужно обновить состояние других фильтров (enable/disable checkbox)
3. Показать/обновить счетчик под категорией.
Пример hotline.ua, rozetka.com.ua
Так получилось что каждый тип фильтра отдельная таблица, и через джойны доставать каждый раз состояние всех фильтров слишком долго.
Можно кешировать полный перебор фильтров но есть минусы:
1. Каждый новый тип фильтра очень сильно влияет на размер кеша, так как там идет полный перебор.
2. Динамически добавлять продукты сложно, нужно дропать кеш и генерировать заново, что не весело.
Можно еще в еластик залить денормализованую таблицу продукта, где у продукта будет отдельный массив атрибутов под фильтр, но не знаю насколько будет быстрый поиск и агрегация для 500к+ продуктов.
Нагуглил вопрос без ответа на стековерфлоу https://stackoverflow.com/questions/41607299/implement-filters-with-counters
больше ничего толкового не нашел =(
Подскажите как решают такую задачу, уверен должен быть иной путь.


Adel
06.10.2018
13:33:17
с эластиком
сфинкс искал тоже крайне быстро
за тысячные доли секунды. на довольно слабенькой тачке
там правда данных было 150к... и это было давно :)

Google

Viktor
06.10.2018
13:37:26

Adel
06.10.2018
13:37:43
а это уже смотреть надо...
но очень врядли ты придумаешь чтото лучше

Viktor
06.10.2018
13:40:35

Ivan
06.10.2018
14:03:51

Sergey
06.10.2018
14:03:56
и хранить все в jsonb

Adel
06.10.2018
14:04:33
ну он чегото волнуется о скорости...

Sergey
06.10.2018
14:05:02
ну я рад за него, но тогда пусть расскажет объемы данных и прогнозы по трафику
ибо если этого нет - хер знает чего он боится
берешь постгрес, делаешь индексы, вуаля
эластика как бы тоже не на магии будет быстро работать - это надо разбираться и делать
+ появляется необходимость синхронизировать данные и вообще мониторить это говно
и я пока не услышал ничего что позволяет предположить что это все нужно

Max
06.10.2018
14:07:32


Viktor
06.10.2018
14:25:24
каждый новый фильтр будет приумножать записи на количество вариаций, вот почему я засомневася)

Sergey
06.10.2018
14:34:51
ну 500К это уже поинтереснее конечно и возмоооожно можно подключать эластику (хотя у тебя будут проблемы с пагинацией при поиске, хотя это в любом случае если делать по старинке через limit/offset)

Google

Sergey
06.10.2018
14:36:47
но в целом я бы начал с эксперементов БЕЗ подключения отдельных баз данных для поиска, как никак постгря спокойно справляется с такими выборками

Viktor
06.10.2018
14:40:29
не знаю зачем ты делал материал вью...
у нас структура таблиц где фильтры хранятся неоптимальна, продукт в одной таблице и для каждого типа фильтра отдельная таблица. Поиск продуктов относительно быстрый, проблема в апдейте фильтров. (юзер нажал галочку и у тебе нужно задизейблить другие галочки по которым нет продуктов с такой конфигурацией)
ну ы плюс посчитать для каждой конфигурации новое количество продуктов и данной выборки

Sergey
06.10.2018
14:41:27
ну это просто сделать поиск, тебе ж всеравно его делать
опять же. я слишком мало знаю о задаче (пока представляю себе дефолтный каталог аля яндекс маркета)

Adel
06.10.2018
14:42:48
или ты только мои ответы прочитал?

Sergey
06.10.2018
14:47:53
примеры каталогов я понимаю, я просто не понимаю зачем хранить фильтры)
а про 500К проглядел, видел только про 5 категорий (и 5 категорий на большое количество товаров мне как-то кажется странным)
ну просто предварительно "просчитывать" статистику под все комбинации фильтров явно не эффективно
а какие-то совсем базовые фильтры (когда слишком общие, но они и чаще юзаются) можно кэшировать в целом.

Viktor
06.10.2018
14:50:34

Sergey
06.10.2018
14:50:48
понял, то есть все же это не совсем "каталог товаров".

Viktor
06.10.2018
14:51:04
нет но очень похоже

Sergey
06.10.2018
14:51:35
раз уж речь об эластике была - а апдейты как часто происходят?

Viktor
06.10.2018
14:51:48
раз в неделю
данные довольно статичны

Sergey
06.10.2018
14:52:49
ну тогда можно и эластику... просто опять же - основная ж проблема как я понимаю не в базе данных а в способе хранения.