
Roman
27.06.2018
07:13:29
ааа может быть, значит не так понял

Pavel
27.06.2018
07:13:32
А про завершенный код!

Sergey
27.06.2018
07:30:49

code4aman
27.06.2018
07:38:07
Классифицировать сложность это в смысле accidental & essential?

Google

Sergey
27.06.2018
08:11:11
да

code4aman
27.06.2018
08:16:38
Думаю, речь о той, что essential

Валерий
27.06.2018
09:02:23
Привет всем.
Подскажите, пожалуйста.
Дано:
- сервис, на вход которому поступает текст (~2000 символов)
- внутри сервиса производится поиск вхождений некоторых слов (~200000 разных вариантов) в данном тексте
- сервис возвращает список всех слов, которые содержатся (хотя бы один раз) в данном тексте
Вопросы:
- как и где лучше хранить слова (чтобы было быстро)? какую выбрать модель хранения данных, какую СУБД?
- как и чем проводить поиск этих самых слов в тексте (чтобы было быстро)?

Дмитрий
27.06.2018
09:04:29
Зашёл как то сеошник в бар кафе ресторан вагон-ресторан бесплатно

Sergey
27.06.2018
09:04:59

Pavel
27.06.2018
09:05:31
Че ты про про дерево, ты про фабрики и прокси-классы раскажи
Где Visitor впихнуть, куда Observer с Bridge запихать!

F01134H
27.06.2018
09:06:30
Вообще, лучше в кэше, наверное

Pavel
27.06.2018
09:06:53

Sergey
27.06.2018
09:06:59

Pavel
27.06.2018
09:07:05
Распределенный

F01134H
27.06.2018
09:07:11

Google

Tex
27.06.2018
09:07:32

Sergey
27.06.2018
09:08:12
Не принципиально
в рэдис пока сходишь.... зачем.... не ну как, он то быстро проверит вхождение но зачем....
вообще вопрос еще на чем пишется проект)

F01134H
27.06.2018
09:09:22
+

Валерий
27.06.2018
09:09:49

F01134H
27.06.2018
09:09:57
Некоторые яп могут и упасть с таким кол-вом слов в памяти, хы)

Dmitriy
27.06.2018
09:10:13
perl

Валерий
27.06.2018
09:10:18
Почему? Или ето шутка такая?

Dmitriy
27.06.2018
09:10:20
как раз новая версия недавно релизнулась

Sergey
27.06.2018
09:10:30

Дмитрий
27.06.2018
09:10:38
Для хранения и быстрого доступа по строкам существуют отдельные структуры данных

Sergey
27.06.2018
09:10:41
он сейчас про дарт еще начнет

Валерий
27.06.2018
09:11:05

Дмитрий
27.06.2018
09:11:25
trie ещё

Sergey
27.06.2018
09:12:15
Ну почему ж "так себе"?
потому что все в этот термин вкладывают настолько ранзый смысл что смысл этот потерян. Не так сильно как для ООП но двай об этом в другой раз
короч в любом случае - задачка на вечер пол дня работы на любом языке, хоть на го хоть на котлине хоть на элексире

Google

Sergey
27.06.2018
09:14:00
библиотеки для radix tree есть под все языки, даже под php

Дмитрий
27.06.2018
09:14:12
Rope, во
Помню было что то)

Dmitriy
27.06.2018
09:15:44
Compressing Radix Trees Without (Too Many) Tears
Многообещающее название статьи про эти деревья)

Sergey
27.06.2018
09:16:35
Rope, во
смотрю вики - прикольно, не юзал. но из того что я вижу это больше для всяких стринг билдеров что бы ускорить вставку/удаление

Валерий
27.06.2018
09:29:09
Ничего, что я ещё тут?
Всем спасибо, пацаны. Буду смотреть в префиксные деревья.


Артур Евгеньевич
27.06.2018
11:00:06
Здравствуйте уважаемые ООП разработчики. Доброго вам утра! Особенно рад приветстваовать разработчиков используюих в своей практике язык PHP. Хотелось бы обсудить вот такую тему, как вы передаете глобальный стейт при возникновении команды/события?
Приведу пример, вот есть у меня запрос на удаления пользователя. Он может прийти из сайта, из админки, из миболиной апишки, может быть вызван из консоли и т.д
ДОпустим мне нужны следующие параметры - энвайремент(консоль, веб, апи и т.д), язык, рефералка и т.д Как бы вы их передавали?
1. обращаться к глобальным провайдерам/хранилищам для их получения - полнах хуйня
2. Передавать нужные данные в саму команду/ событие - чуть получше, но тут минус что мног лишнего гавна не относящегося к бизнес действию будет ъранится в дто команды.
3. Использовать контексты т.е вместе с командой кидаем в шину объект контекста, который содержит разную побочную инфу в более менее типизирвоанном виде - на данный моммент мне этот способ видется максимально удобным, но по сути это такой иммутабельный регистр(а точнее его снепшот на определенном этапе выполнения кода)...
Хотелось бы узнать что юзаете вы, и какие минусы видите в варианте с контекстами


Sergey
27.06.2018
11:02:36
Здравствуйте уважаемые ООП разработчики. Доброго вам утра! Особенно рад приветстваовать разработчиков используюих в своей практике язык PHP. Хотелось бы обсудить вот такую тему, как вы передаете глобальный стейт при возникновении команды/события?
Приведу пример, вот есть у меня запрос на удаления пользователя. Он может прийти из сайта, из админки, из миболиной апишки, может быть вызван из консоли и т.д
ДОпустим мне нужны следующие параметры - энвайремент(консоль, веб, апи и т.д), язык, рефералка и т.д Как бы вы их передавали?
1. обращаться к глобальным провайдерам/хранилищам для их получения - полнах хуйня
2. Передавать нужные данные в саму команду/ событие - чуть получше, но тут минус что мног лишнего гавна не относящегося к бизнес действию будет ъранится в дто команды.
3. Использовать контексты т.е вместе с командой кидаем в шину объект контекста, который содержит разную побочную инфу в более менее типизирвоанном виде - на данный моммент мне этот способ видется максимально удобным, но по сути это такой иммутабельный регистр(а точнее его снепшот на определенном этапе выполнения кода)...
Хотелось бы узнать что юзаете вы, и какие минусы видите в варианте с контекстами
> как вы передаете глобальный стейт
непонятные слова молвил он. Что такое глобальный стэйт и зачем его передавать - он же глобальный? Да и зачем вообще глобальный стэйт? ООП же


Sergey
27.06.2018
11:02:52
короч мне кажется ты сам себе проблему придумал возжелав шарить стэйт

Артур Евгеньевич
27.06.2018
11:03:06
нет, скорее объяснил неточно
Да и зачем вообще глобальный стэйт? ООП же
> вот по сути я и хочу убить его глобальность

Bohdan
27.06.2018
11:04:58
а зачем тебе этот стейт?
если ты на его основании принимаешь решения - ты делаешь дерьмо, делай больше команд
если это для метрик/аудита/etc - это метаданные, третий вариант ок имхо

Артур Евгеньевич
27.06.2018
11:08:00
Нужно отправить письмо с определёнными параметрами - язык, домен, и т.д

Sergey
27.06.2018
11:08:20
оно редко нужно кому-то еще

Google

Bohdan
27.06.2018
11:08:46
с другой стороны - эти данные фактически являются параметрами команды

Sergey
27.06.2018
11:08:53
тип того

Bohdan
27.06.2018
11:09:06
и передать их в команде тоже ок

Sergey
27.06.2018
11:09:22
блин надо перестать лениться и начать писать цикл статей по декомпозиции.... бесит уже.... одни и те же проблемы у всех

Artyom
27.06.2018
11:09:48

Sergey
27.06.2018
11:09:48
глобальные настройки которые глобальные потому что "ну это ж настройки, отдельная сущность"

Admin
ERROR: S client not available

Bohdan
27.06.2018
11:10:26
хоть я и хотел бы его прочитать - но это полноценно не спасёт
точнее, придётся писать ещё цикл о том, как аппроксимировать твои статьи для применения на проекте

Sergey
27.06.2018
11:11:12

Bohdan
27.06.2018
11:13:34


Sergei
27.06.2018
11:15:26
Здравствуйте уважаемые ООП разработчики. Доброго вам утра! Особенно рад приветстваовать разработчиков используюих в своей практике язык PHP. Хотелось бы обсудить вот такую тему, как вы передаете глобальный стейт при возникновении команды/события?
Приведу пример, вот есть у меня запрос на удаления пользователя. Он может прийти из сайта, из админки, из миболиной апишки, может быть вызван из консоли и т.д
ДОпустим мне нужны следующие параметры - энвайремент(консоль, веб, апи и т.д), язык, рефералка и т.д Как бы вы их передавали?
1. обращаться к глобальным провайдерам/хранилищам для их получения - полнах хуйня
2. Передавать нужные данные в саму команду/ событие - чуть получше, но тут минус что мног лишнего гавна не относящегося к бизнес действию будет ъранится в дто команды.
3. Использовать контексты т.е вместе с командой кидаем в шину объект контекста, который содержит разную побочную инфу в более менее типизирвоанном виде - на данный моммент мне этот способ видется максимально удобным, но по сути это такой иммутабельный регистр(а точнее его снепшот на определенном этапе выполнения кода)...
Хотелось бы узнать что юзаете вы, и какие минусы видите в варианте с контекстами
2) команда удаляет пользователя, параметр user_id, что за ненужные параметры?


Sergey
27.06.2018
11:15:45
вечная моя проблема - пока не придумаю, как сделать наиболее правильно на данный момент, не могу нормально начать)
не, у меня нет такой проблемы. переболел. У меня проблема сча хотя бы основную мысль нащупать) тут вопрос как подступиться.
Набор мыслей на основе которых хочу подумать порассуждать то простой:
- люди когда делают декомпозицию чаще делают это либо используя UI, либо, если его нет - воспоминания о том как выглядел тот или иной UI под похожие задачи
- люди не особо вникают что делают, отсюда например желание делать репорты как sql -> xls
- люди не особо вникают в то как данные между собой ходят и потому они у них ходят пиздец сильно

Артур Евгеньевич
27.06.2018
11:16:58

Bohdan
27.06.2018
11:17:21

Sergey
27.06.2018
11:17:25

Артур Евгеньевич
27.06.2018
11:17:34

Sergey
27.06.2018
11:17:52
хэндлер всераво всю хуйню делает

Артур Евгеньевич
27.06.2018
11:17:53

Sergei
27.06.2018
11:17:56
отправка письма это уже другая команда

Sergey
27.06.2018
11:18:17

Google

Sergey
27.06.2018
11:18:32
у которых "команда" это не тип операции а объект который в шину пихают

Bohdan
27.06.2018
11:19:49
почему я говорю об аппроксимации: имея пример "магазина" etc далеко не каждый сможет перенести его на свою систему

Артур Евгеньевич
27.06.2018
11:19:54

Bohdan
27.06.2018
11:20:01
у меня свои заморочки есть, кто-то еще недостаточно продумал и так далее

Sergey
27.06.2018
11:20:48

Bohdan
27.06.2018
11:21:07
и не запускать команды из хендлеров команд

Sergey
27.06.2018
11:21:11
да
но это уже event driven штуки и ты должен быть морально готов к этому

Bohdan
27.06.2018
11:21:37
у меня выбора просто нет, лол

Sergey
27.06.2018
11:21:45
ну значит ты готов)

Bohdan
27.06.2018
11:22:01
я пытался перенести на отдельные вызовы, но понял ,что это будет более сложным рефакторингом, чем перевод на tactician и адекватный event-driven
правда, ивенты у меня все равно наркоманские, но это меньшее зло

Артур Евгеньевич
27.06.2018
11:24:05
Давайте конкретный пример - запрос на сброс пароля. Нужно обработать запрос и отправить письмо с нужным языком от нужного партнера
Язык и сайт с которого был запрос я вижу контекстом вызова

Bohdan
27.06.2018
11:24:54
ResetPassword(Command) -> Handler -> PasswordWasReset(Event) -> Listener -> SendResetMail(Command) -> Handler

Артур Евгеньевич
27.06.2018
11:25:05
Passwordwasreset - нам с начало надо отправить письмо со ссылкой на сьрос

Bohdan
27.06.2018
11:26:03