
Artem
22.06.2018
16:33:22

Denis
22.06.2018
17:18:32
Кто нибудь знает как войти в google mail через curl?

Dmitry
22.06.2018
17:32:00

Denis
22.06.2018
17:32:36
через api можно гугл формы пройти на 1000 акках?

Google

Igor
22.06.2018
17:36:31
для такой автоматизации люто рекомендую nightmarejs

Denis
22.06.2018
17:42:18
спасибо,а есть примеры nightmarejs?

Sergey
22.06.2018
19:09:42
у тебя есть кнопка, ты на нее нажимаешь и тебе пишет "тебе нельзя жать эту кнопку" а ты такой "ну ахуеть теперь!"
нет кнопки - нет и негативных эмоций связанных с ошибками

Artem
22.06.2018
19:11:01
главное не дойти до "нет человека - нет проблемы" :D

Sergey
22.06.2018
19:11:23
опять же, по поводу "нет человека нет проблемы"
https://www.youtube.com/watch?v=GRr4xeMn1uU
вот тут хороший пример что people as service это не такая плохая идея

Artem
22.06.2018
19:12:36
ух ты, greg young, какие-то статьи я видел его, то ли про ES то ли про CQRS, не помню

F01134H
22.06.2018
19:13:31
Парни, короче, есть пакет для работы с RPC интерфейсом. Вся суть - отправка команд и обработка результата. При этом обработка результата может быть простой (тупо вычленить result и вернуть), так и сложной (выдернуть данные из result, вычленить какие то определенные поля, и всякое разное). Так вот, вопрос - как мне разделить сложные и простые запросы, что бы это архитектурно выглядело нормально?
ах да, пакет существует пока только в моей голове
(как бы странно не звучало)

Google

F01134H
22.06.2018
19:15:49
похоже что никто в пятницу вечером не хочет думать :D

Sergey
22.06.2018
19:17:17

F01134H
22.06.2018
19:18:27
с соблюдением DRY, например
под этим я подразумеваю не копировать кучу одинаковых методов, которые просто вычленять result будут
но при этом если метод вдруг нужно будет усложнить - его запросто можно было из общей кучи выделить в отдельный сложный метод
вообще я смутно вижу это все, т.к. впервые сталкиваюсь

Artem
22.06.2018
19:19:57
похоже что никто в пятницу вечером не хочет думать :D
я думаю у меня недостаточно квалификации, чтобы тебе что-то подсказать дельного.
Вообще, когда начинаются разговоры про удалённые вызовы, то у меня возникают ассоциации с bounded context-ами и anti corruption layer-ами, но я так понимаю у тебя не та ситуация, у тебя контекст один и тот же, только на разных машинах. Но типа модель-то всё равно после того как данные пришли надо восстановить
Короче фигню сказал :D

F01134H
22.06.2018
19:21:17
к примеру, результаты некоторых запросов настолько сложные, что для них впору отдельный класс пилить
тогда получится, что у меня половина методов будет магически дергаться через один коллбэк (тупо возвращая результат), а вторая половина будет в виде крупных классов, разбирающих результат...
это норм вообще?)

Evgeniy
22.06.2018
19:22:17
Он называется value object
Отдельный класс
Ну или dto
Но dto чуть другое

Sergey
22.06.2018
19:25:35
не обязательно оставлять это ограничение, просто возможно это позволит тебе чуть по другому посмотреть на вопросы расширяемости (помня что композиция практически всегда лучше наследования) и унификации интерфейсов
второе полезное ограничение - максимум 2 аргумента у метода
(цифры тут реально с потолка, просто что бы было ограничение. В условии ограничений ты начинаешь думать)

Artem
22.06.2018
19:27:17
не хотите ли добавить в ваши методы флаги? :D

Google

Sergey
22.06.2018
19:28:10
вообще если кто-то хочет побаловаться на выходных и поднять свои скилы декомпозиции и проектирования: https://habr.com/post/206802/

Evgeniy
22.06.2018
19:29:06

Sergey
22.06.2018
19:29:22

Evgeniy
22.06.2018
19:29:50
В книге эти цифры видел
Забыл название

Sergey
22.06.2018
19:30:01
ну там обычно 3 пишут - в clean code и у макконала

F01134H
22.06.2018
19:34:45
спасибо :)

Sergey
22.06.2018
19:37:08
но вообще у меня логика простая:
- у метода нет аргументов - маловероятно что они появятся
- у метода один аргумент - тоже скорее всего не будет сильно расширяться
- у метода два аргумента - где два там будет третий
- у метода три аргумента - тоже что выше но уже с большей вероятностью
- ....
соответственно любое изменение в методе - связанность, придется трогать код который вызывает методы. А мы ленивые, работает - не трогай. Потому стараться стоит делать так что бы не надо было много трогать. Типа связанность уменьшать, вводишь зависимость - подумай как можно от нее избавиться и т.д.

Artem
22.06.2018
20:01:09

Sergey
22.06.2018
20:01:27
грег веселый чел, один из лучших спикеров. Еще Уди посмотри.
Udi Dahan

Artem
22.06.2018
20:02:30
тоже знакомое имя

Leonid
22.06.2018
20:11:51
Пытаюсь авторизироваться в фейсбуке из джаваскрипта и мне выдаёт feature not available...
Кто-нибудь с этим сталкивался? В гугле пустовато по этому вопросу.

Гена
22.06.2018
20:22:51

Cat
22.06.2018
20:25:31

Leonid
22.06.2018
20:25:54
Не при чём, тупанул. Просто бекенд пишу, а js клиент для теста нарисовал, вот по привычке в пхп чат и написал

F01134H
22.06.2018
20:33:18
нормально ли делать вместо этого:
'web3_clientVersion' => [
'params' => [...]
]
это:
'web3_clientVersion' => [
self::PARAMS_LABEL => [...]
]
?
или совсем наркомания
по мне, это позволит не допустить ошибку при написании ключа
в моем случае будет очень много таких элементов повторяющихся

Google

Valentin
22.06.2018
20:36:29

Андрей
22.06.2018
20:37:15

F01134H
22.06.2018
20:37:32
чего?

Андрей
22.06.2018
20:40:26
чего?
Ну если ты боишься в ключе ошибиться и хочешь структурную единицу, отвечающую за именование ключа, почему бы не сделать объект со свойством, который сам будет структурной единицей?

F01134H
22.06.2018
20:40:46
А. Разумно

Shmaltorhbooks
22.06.2018
21:28:16

Sergey
22.06.2018
21:28:39

Admin
ERROR: S client not available

Shmaltorhbooks
22.06.2018
21:28:53

Sergey
22.06.2018
21:34:52
ну не тыж

Shmaltorhbooks
22.06.2018
21:56:11
Ну и не ты)
Остаётся только Макконелл

Вячеслав
23.06.2018
13:30:54
Привет всем. Кто подскажет по frontend, куда капать? Есть список модулей их можно друг с другом соединять, выбирая перед этим два модуля и потом указываешь параметры, вот этот список может меняться и некоторые данные иногда запрашивается у сервака. Как это лучше реализовать?

Sergey
23.06.2018
13:32:19
но вообще по хорошему это оффтоп так как тут не та специфика чата

Ihor
23.06.2018
13:56:08

Artem
23.06.2018
15:21:02


Sergey
23.06.2018
15:26:55
не, нарушение инварианта это вполне себе исключительная ситуация
> юзеру надо знать какой именно был нарушен.
а надо ли? и это надо юзеру знать или тебе?
по хорошему пользователь ничего об "исключительных" ситуаций знать не должен, на то они и исключительное. Если надо красивые ошибки пользователю показывать конкретизирующие что пошло не так - это нельзя назвать такой уж исключительной ситуацией, не находишь?

Google

Sergey
23.06.2018
15:28:28
а так его должно устроить что-то типа "Упс, чет пошло не так"

Artem
23.06.2018
15:31:35
просто в реальности обычно бизнес требует, чтобы сообщение было конкретное
аргумент такой, что пользователь должен знать о правилах домена

Sergey
23.06.2018
15:36:07
это вопрос как ты проектируешь UI твоего приложения
есть два подхода - классический CRUD где что делать выясняют из пришедших данных и task based ui
последнее сложнее, дороже но удобнее

Artem
23.06.2018
15:41:39
нет кнопки - не надо объяснять почему на нее нельзя нажимать
тут есть один момент. Обычно сервер не может клиенту сообщить о текущем состоянии модели. Эта проверка будет только при запросе. Например на аккаунте будет 2 пользователя. Один добавит последнее яблоко, а интерфейс второго не обновится.
Хотя может это уже тот самый оверинжениринг =\

Sergey
23.06.2018
15:42:03
сегодня добавить реалтайм обновление данных не оч дорого
но тут надо учитывать вероятность того что с данными будут работать несколько людей одновременно и насколько их будут бесить ошибки типа "сорян низя"

Artem
23.06.2018
15:43:22
вот я об этом и думаю

Sergey
23.06.2018
15:43:38
у меня специфика проекта такая что сидят люди и мониторят список, и как только что-то появилось кто-то должен забрать, и если 2-ое одновременно заберут - ничего страшного но за счет апдейтов такое происходит крайне редко
как пример - представь себе заказ такси например

Artem
23.06.2018
15:47:35
не очень себе представляю, если честно :D

Sergey
23.06.2018
15:48:50
люди часто это путают, скорее всего потому что привыкли валидировать active record модель
ну и опять же загоны выше актуальны когда у тебя task based ui, если у тебя CRUD - там все проще