@oop_ru

Страница 769 из 785
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
Это как трейты?
ad-hoc полиморфизм

когда там в жаву их уже завезут?
Есть jsr какой для имплиситов?

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

Google
Mykola
06.10.2018
06:31:01
А какая цель второго объекта? Может его полиморфный метод можно прямо в Shape отправить?
не говори такими словами, не все понимают что такое "полиморфный")

класный чувак)

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
д - деградация

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
как-то там пока пустова-то

Тебе ж Дэвид Вэст уже объяснял что мысли про ООП это пустое)

Sergey
06.10.2018
11:43:08
тебе даже Алан Кей намекал на это)

он намекает почти в каждом своем выступлении, пока самое эпичное это интервью с создателем эрланга:

блин, лень искать таймкод... https://www.youtube.com/watch?v=fhOHn9TClXY

и я все ещё не согласен)
ну просто все твои статьи сводятся к "ой да может уже просто начнешь писать на Haskell, все ж мысли к этому и ведут"

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

Ivan
06.10.2018
13:03:07
?

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
Привет всем, Есть задача: 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 больше ничего толкового не нашел =( Подскажите как решают такую задачу, уверен должен быть иной путь.
быстрый поиск будет

с эластиком

сфинкс искал тоже крайне быстро

за тысячные доли секунды. на довольно слабенькой тачке

там правда данных было 150к... и это было давно :)

Google
Viktor
06.10.2018
13:37:26
быстрый поиск будет
несмотря на то что там атрибут фильтра может быть масивом?)

Adel
06.10.2018
13:37:43
а это уже смотреть надо...

но очень врядли ты придумаешь чтото лучше

Viktor
06.10.2018
13:40:35
но очень врядли ты придумаешь чтото лучше
С поиском нет проблем и в posgres, проблема в апдейте с фильтра =( Ну если ничего толкового не найду, буду пробовать еластик(

Sergey
06.10.2018
14:03:56
сфинкс искал тоже крайне быстро
судя по всему речь идет о таких объемах что лучше не брать ни сфинкс ни эластику а взять postgresql и хватит

и хранить все в jsonb

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

Sergey
06.10.2018
14:05:02
ну я рад за него, но тогда пусть расскажет объемы данных и прогнозы по трафику

ибо если этого нет - хер знает чего он боится

берешь постгрес, делаешь индексы, вуаля

эластика как бы тоже не на магии будет быстро работать - это надо разбираться и делать

+ появляется необходимость синхронизировать данные и вообще мониторить это говно

и я пока не услышал ничего что позволяет предположить что это все нужно

Max
06.10.2018
14:07:32
Привет всем, Есть задача: 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 больше ничего толкового не нашел =( Подскажите как решают такую задачу, уверен должен быть иной путь.
есть похожий вопрос на тостере - https://toster.ru/q/355677 там в комментах много полезной инфы

Viktor
06.10.2018
14:25:24
и я пока не услышал ничего что позволяет предположить что это все нужно
Продуктов 500к+, категорий пока около 5, каждая катигория по 1-2к вариаций приблизительно, есть и маленькие совсем категории, делал денормализированую материал вюшку в постгре на 4 категории, вышло 6 млн записей.

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

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 категорий на большое количество товаров мне как-то кажется странным)

ну просто предварительно "просчитывать" статистику под все комбинации фильтров явно не эффективно

а какие-то совсем базовые фильтры (когда слишком общие, но они и чаще юзаются) можно кэшировать в целом.

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
ну тогда можно и эластику... просто опять же - основная ж проблема как я понимаю не в базе данных а в способе хранения.

Страница 769 из 785