@oop_ru

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

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

Sergey
27.06.2018
07:30:49
Code Complete? Вряд ли эту сложность можно как-то измерить
для начала ее нужно классифицировать а там уже можно и количественные метрики какие выдумать. вопрос зачем

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
Зашёл как то сеошник в бар кафе ресторан вагон-ресторан бесплатно

Pavel
27.06.2018
09:05:31
Че ты про про дерево, ты про фабрики и прокси-классы раскажи

Где Visitor впихнуть, куда Observer с Bridge запихать!

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

trie ещё
так это ж оно и есть

trie ещё
redix/prefix tree

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

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

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
пусть эти параметры хранятся у штуки которая за отправку писем отвечает
А вот и нет. Я в контроллере создаю команду, и её проьрасвыю в хандлер, а уже хандлер вызывает отправщик писем. Так что мне нужно вычоенить язык уже на уровне контроллера и проьрасввать дальше

Артур Евгеньевич
27.06.2018
11:17:34
2) команда удаляет пользователя, параметр user_id, что за ненужные параметры?
Отправить письмо пользователю на нужном языке с нужного домена

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

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 - нам с начало надо отправить письмо со ссылкой на сьрос

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