@prophp7

Страница 1126 из 1387
Sergey
21.06.2018
09:31:13
У меня обычно форма регистрации это 3 поля - емейл, юзернейм и пароль, не знаю кого может запугать такая форма, даже если нет входа через соц сети
ты ж понимаешь что экономить надо время пользователя на регистрации а не на логине. Опять же в силу менеджеров паролей которые уже синкают все с телефоном, и автозаполнения

это напрямую на конверсию влияет

Valentin
21.06.2018
09:34:21
ты ж понимаешь что экономить надо время пользователя на регистрации а не на логине. Опять же в силу менеджеров паролей которые уже синкают все с телефоном, и автозаполнения
Да, но и на логине надо - а то видел умников которые делают регистрацию через соц сети но для входа уже юзаешь либо емейл либо ид из соц сети через которую зарегистрировался в связке с сгенерированным паролем, и тут уже хочешь войти через комп, а через соц сети нельзя, надо юзать только емейл и пароль

Ах да, у меня юзернеймы уникальные потому что ссылки на профили вида site/u/Vasya123

Google
Valentin
21.06.2018
09:39:52
и ты думаешь что для пользователя это важно?
Да, в моём случае суть проекта в том что бы шарить ссылки на свой профиль, а в других проектах - мне кажется это не такая уж и плохая практика, юзеру удобнее запомнить юзернейм нежели создавать закладку на свой профиль к примеру

Valentin
21.06.2018
09:42:38
Посмотрим.. Опрос сделаю через пару месяцев, вернусь ещё, может статистика какая то ещё появится типа сколько зарегистровалось через соц сети а сколько через емейл+пароль

Константин
21.06.2018
10:04:20
Привет всем! Думаю, что в тему будет вопрос. Нужна БД для аналитики. В данный момент mysql и crateDb уже не вывозят 800кк записей, количество колонок достаточно большое Почему сюда пишу, надо чтобы поддержка php была)) может кто работает с такими объемами данных?

Требуются агригации по 20кк и более данных

Константин
21.06.2018
10:05:21
Раньше крэйт вывозил, но раньше и проходиться по 10кк надо было за раз

Sergey
21.06.2018
10:05:30
если там стандартные для аналитики данные, которые всегда требуют агрегации - касандра, инфлуксдб

Константин
21.06.2018
10:05:32
а теперь тупо памяти не хватает((

Bohdan
21.06.2018
10:05:40
time series в influxDB хорошо идут но серьёзную нагрузку не пробовал, хотя должно работать ок

Google
Oleg
21.06.2018
10:05:57
кликхаус?

Константин
21.06.2018
10:05:58
ок, буду читать

кликхаус отпал в связи с отсутствием возможности удаления и изменения

чтобы база не пухла мы дополняем данные по часам

в месяц залетает порядка 15-20кк данных

и это уже по часу собранные

Sergey
21.06.2018
10:07:44
чтобы база не пухла мы дополняем данные по часам
возьмите базу оптимизированную под time series данные - на ту же касандру не влияет объем данных

а диск штука дешевая

короч надо больше знать о том что вы там храните и что делаете с данными

Bohdan
21.06.2018
10:08:48
influxDB, retention policies, continuous queries

Sergey
21.06.2018
10:08:57
Andrew
21.06.2018
10:28:10
чтобы база не пухла мы дополняем данные по часам
в кх немного другой подход, насколько я понял - лучше делать исходную таблицу - лог данных (собственно facts) и потом навешивать materialized views (projections). В таком случае и изменять данные не нужно (посколько обучно аналитические ивенты иммутабельны).

Artem
21.06.2018
10:42:16
а если правило такое: "Нельзя постить > 3 постов в день с аккаунта", тогда как его проверять? Тоже при помощи БД, в смысле проверять в триггерах и кидать эксепшены?

Danil
21.06.2018
10:47:28
это уже бизнес-логика

Sergey
21.06.2018
10:50:27
Artem
21.06.2018
10:56:02
это уже бизнес-логика
Допустим проверка будет на уровне домена, но в промежутке между закончившейся проверкой и записью в БД может записаться ещё пост, тогда постов в БД будет 4

Danil
21.06.2018
10:56:20
транзакции в помощь

Sergey
21.06.2018
11:00:03
в 90% случаев люди даже не будут сильно париться с таким кейсом

Google
Artem
21.06.2018
11:00:52
транзакции в помощь
ну да, вроде логично, спасибо

можно хоть лок через рэдис делать, вариантов реально куча
к сожалению я не знаком с редисом и вообще с кешированием реально почти незнаком. Вообще-то я и с SQL-то не знаком :D

Maksim
21.06.2018
11:03:40
редис на уровне key\value асилит даже ботинок)

Artem
21.06.2018
11:04:14
это радует, т.к. я аж целый сапог!

Вообще ещё интересно как это (правило > 3 постов) проверять в коде. Т.к. это вроде как бизнес правило, то проверка должна быть где-то в домене (и тут кстати возникает вопрос - является ли валидация частью домена?). Если делать проверку где-то в методах агрегатов - тогда им нужен будет репозиторий и будет зависимость от репозитория, что по-моему выглядит довольно плохо

Roman
21.06.2018
11:10:27
я как то не уверен, что "правило > 3 поста" является валидацией

Roman
21.06.2018
11:10:45
проверка этого правила

Sergey
21.06.2018
11:12:07
инвариант

Sergey
21.06.2018
11:12:28
разберись со значением этого умного слова

Artem
21.06.2018
11:14:26
Как я понял - это правило предметной области, правда меня смущает то, что есть ещё прекондишены и посткондишены

Sergey
21.06.2018
11:19:32
они тоже правила) просто инварианты это про стэйт а прекондишены и посткондишены про то что на вход приходит и на выход

Artem
21.06.2018
11:20:30
то есть прекондишены проверяют входные данные, посткондишены - выходные, а инварианты - состояние?

Sergey
21.06.2018
11:22:40
например у тебя есть объект представляющий ящик яблок. У него есть методы положить и забрать. У положить прекондишен будет "на вход нам должны дать яблоко а не что-то другое", у забрать посткондишен будет "на выходе будет яблоко а не что-то другое" а у всего ящика будет инвариант что количество яблок н может быть меньше нуля.

Artem
21.06.2018
11:23:56
тайпхинты значит - один из вариантов прекондишенов и посткондишенов, правда с ограниченной функциональностью и встроенные в язык?

Google
Artem
21.06.2018
11:27:45
например у тебя есть объект представляющий ящик яблок. У него есть методы положить и забрать. У положить прекондишен будет "на вход нам должны дать яблоко а не что-то другое", у забрать посткондишен будет "на выходе будет яблоко а не что-то другое" а у всего ящика будет инвариант что количество яблок н может быть меньше нуля.
Вот тут и возникает проблема, как я могу проверить сколько у меня яблок в ящике, если их у меня в ящике на самом деле нет (на загружены из базы)? Или это решается при помощи загрузки яблок через прокси и тогда проверяется, что их не больше 3х?

Sergey
21.06.2018
11:28:05
почему не может?
потому что у ящика такой инвариант

Admin
ERROR: S client not available

Sergey
21.06.2018
11:29:15
в случае с каким-нибудь active record все похоже но чуть отличается

но это не "валидация входящих данных" это проверка инвариантов, бизнес логика твоя

следует просто разделять эти понятия. И да, у тебя может быть пересечение правил, и да это будет похоже на дублировани

Artem
21.06.2018
11:30:27
но это не "валидация входящих данных" это проверка инвариантов, бизнес логика твоя
с этим я разобрался, да (ну ладно, мне кажется, что разобрался :D )

F01134H
21.06.2018
11:30:30
Sergey
21.06.2018
11:30:30
похоже но это не оно (а может и оно - it depends)

Artem
21.06.2018
11:41:26
но тогда, если будет 1 проверка в валидации и 2 в виде инварианта - данные придётся загружать 2 раза, что выглядит очень плохо с точки зрения производительности

Artem
21.06.2018
11:43:07
тогда при нарушении инварианта кидать эксепшен, обрабатывать его (как и в случае с unique constraint) и показывать пользователю?

Sergey
21.06.2018
11:44:26
ну то есть нарушение инварианта в таком случае не исключительная ситуация а обыденность, раз у тебя для этого красивая сообщенька юзеру есть

Artem
21.06.2018
11:46:38
просто я не понимаю как это всё соединять с валидацией, т.к. для пользователя это всё просто набор ошибок

Sergey
21.06.2018
11:47:05
а это не надо никак соединять, в этом и прикол

это больше к вопросу UX

Google
Sergey
21.06.2018
11:47:42
как сделать так что бы кнопки небыло что бы ошибку не надо было показывать

Roman
21.06.2018
11:47:58
Это вообще никакого отношения к валидации не имеет

Sergey
21.06.2018
11:48:39
Это вообще никакого отношения к валидации не имеет
кнопку не показывать?) тебе не надо ничего валидировать если пользователь ничего не может сделать)

Artem
21.06.2018
11:49:05
но ответ от сервера-то может содержать и данные результата валидации и данные о нарушении инварианта

Sergey
21.06.2018
11:50:32
может, и что? а еще ответ может содержать как ошибку так и какой-то результат

ты ж из этого трагедию не делаешь

Roman
21.06.2018
11:52:21
кнопку не показывать?) тебе не надо ничего валидировать если пользователь ничего не может сделать)
Это я к сообщению Артёма о том как объединить валидацию и инварианты. Да никак не надо, разные кейсы имхо

InvestPerson
21.06.2018
11:53:32
Ребят

Помогите сделать проверку только на цифры

Какой регистр это?

F01134H
21.06.2018
11:54:19
?‍♂️

Maksim
21.06.2018
11:54:37
простите, не сдержался...

is_numeric() ф-я

Shmaltorhbooks
21.06.2018
11:55:28
Какой регистр это?
Зависит от архитектуры процессора

Bohdan
21.06.2018
11:55:40
отправляй с такими вопросами в @phpGeeksJunior, пускай там спрашивает

Страница 1126 из 1387