@prophp7

Страница 225 из 1387
Sergey
02.02.2017
08:32:11
и мне ок с этим

da horsie
02.02.2017
08:32:57
ну логика то от него не зависит
логика - нет, а архитектура да

Sergey
02.02.2017
08:33:29
логика - нет, а архитектура да
вопервых только выбранный способ разделения приложения и UI

во вторых что в этом такое, это ж UI

Google
Sergey
02.02.2017
08:34:01
ну то есть

представь что ты пишешь приложение с GUI

будь то web + react или ангуляры или Qt

у тебя есть UI фреймворк

и хочешь ты или нет но Ui у тебя будет на него завязан

da horsie
02.02.2017
08:34:26
я понимаю

Sergey
02.02.2017
08:34:47
что до "прослойки" - если вдруг станет что-то страшное ты всегда можешь сверху накрутить адаптеров

так что нет, это не влияет на архитектуру приложения ровным счетом никак

к слову

вот тут вчера говорили про soft delete

что мол не нужен он

у меня тут кейс интересный всплыл на днях

soft insert)

Google
Sergey
02.02.2017
08:36:49
ну тип юзер регается, вводит дохера всякой инфы, потом он должен активировать аккаунт и только после этого он считается зарегистрированным в системе

пихать сущность User прям в базу низя потому что тогда придется расставлять условия для выборок (которых не мало)

с другой стороны хрен его знает на каком уровне сохранять результат операций.

da horsie
02.02.2017
08:37:41
значит это не юзер

Sergey
02.02.2017
08:37:44
по сути единственный норм вариант - сериализация и хранение на файловой системе

da horsie
02.02.2017
08:37:56
соседняя таблица?

Sergey
02.02.2017
08:38:10
ну или в соседней таблице, но это надо тогда заводить такую же сущность

da horsie
02.02.2017
08:38:25
ну вот я вчера буквально слушал

про софт делит

дескать дело просто в неправильном именовании

мы не удаляем сотрудников, а увольняем

не удаляем товар со склада, а продаем

Sergey
02.02.2017
08:39:50
мы не удаляем сотрудников, а увольняем
мы не регистрируем чувака, а.....

ну вот я не могу пока придумать адекватного термина

da horsie
02.02.2017
08:40:31
инициализируем процесс регистрации

new SignupProcess

signupProcess->toUser()

signupProcess->complete()

->cancel()

initialize

Google
da horsie
02.02.2017
08:42:13
expire

->getStage()

->advanceTo($nextStage)

Sergey
02.02.2017
08:44:18
ну это понятно)

а что если точек входа в процесс 3?

ну или как.... просто разные наборы данных которые ведут к одному результату

тип 3 роли пользователя

da horsie
02.02.2017
08:45:14
что это меняет?

Sergey
02.02.2017
08:45:19
ну так....

ладно, всеравно рефакторить в "процесс" времени нет

пойду дальше лепить кастыли

da horsie
02.02.2017
08:45:43
для разных ролей разные стратегии

da horsie
02.02.2017
08:46:24
new SignupProcess(new ManagerUserStrategy())

new SignupProcess(new RegularUserStrategy())

Sergey
02.02.2017
08:47:19
я понял)

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

и при вактивации продолжаю с этого места

не так красиво но зато делается за 2 часа

а с учетом того что процесс регистрации будет еще раза 2-3 переделываться ближайший месяц

пока не вижу смысла заморачиваться

Google
0x9d8e
02.02.2017
10:51:55
Люди, посдкажите. Есть долги жирный скрипт, выполняющийся ночами и ночами же падающий (а днём не падает, лол). Хочу его залогировать по самые помидоры. Хочу в логгере автоматом в каждую строку писать вначале что-то типа "03:45:51 \import\prepare_good\line#37: ". Стек вызовов и номер строки где оно вызывается я могу только через исключение получить или можно более адекватно? Можно ли делать new Exception без throw?

Artem
02.02.2017
10:58:02
debug_backtrace() и debug_print_backtrace()

а new Exception без throw делать можно. В т.ч. и для получения стектрейса

0x9d8e
02.02.2017
11:01:51
Спс

F01134H
02.02.2017
11:01:56
вроде жеж исключения создаются без throw какие то, типо дефолтных

Artem
02.02.2017
11:03:30
создание исключения и их отправка - разные операции. Исключение - это обычный объект, с ним можно делать всё что угодно, хоть передавать аргументами, хоть возвращать

Admin
ERROR: S client not available

0x9d8e
02.02.2017
11:03:46
я так понял debug_backtrace почти идентичен Exception::getTrace()?

Artem
02.02.2017
11:03:58
во многих языках throw можно делать вообще на что угодно, включая примитивы

0x9d8e
02.02.2017
11:04:53
Во многих это скорее всего в джаве?

Artem
02.02.2017
11:07:31
js, c++, в руби по-моему тоже, хотя тут могу ошибаться

Viktor
02.02.2017
11:08:29
ну, в плюсцах то не удивительно... там можно различными путями отстрелить себе яйцы...

Artem
02.02.2017
11:08:31
в ерланге вроде тоже

Viktor
02.02.2017
11:08:56
ну а в жсе нет интерфейсов, и проблематично будет обобщить под Throwable

Artem
02.02.2017
11:09:31
есть семейство Error и instanceof, проблемы тут нет, было бы желаение

Viktor
02.02.2017
11:10:19
нууу... на счет жс странно в общем-то... но да, можно выкинуть что угодно...

Artem
02.02.2017
11:10:23
давно ли в php Throwable появился. 100 лет обходились Exception как-то

Viktor
02.02.2017
11:11:59
но в любом случае - все бросаемое должно быть экземпляром Exception. в общем, не смотря на отсутствие Throwable ограничитель все равно был

Artem
02.02.2017
11:12:14
да и какая, в сущности, разница. В пхп сделали так, в JS по-другому. Где-то вообще исключений нет

Viktor
02.02.2017
11:12:39
угу, в голанге например...

Google
Artem
02.02.2017
11:13:13
да, прямо скажем, в JS тоже исключения вырождаются из-за асинхронности

Artem
02.02.2017
11:14:09
да нет, не наоборот. Один интерфейс Promise в ES6 чего стоит. catch() не сделал - не проблема, работаем дальше

Andrii
02.02.2017
11:14:39
Одна из фич async/await паттерна - можно юзать трай кеч

Artem
02.02.2017
11:15:00
async+await ещё нет

Andrii
02.02.2017
11:15:19
В хроме уже есть

Artem
02.02.2017
11:15:26
вот когда будет это в принятои стандарте, тогда и можно будет говорить

Andrii
02.02.2017
11:15:30
Для всего остального есть бабел...

Вот и говорю что это не вырождение, а просто небольшой перекур

Artem
02.02.2017
11:16:26
я на это надеюсь :)

Артур Евгеньевич
02.02.2017
15:24:50
Парни кто нибудь делал сервис для сравнения объектов в php и как вы в этом случае обходились без перегрузки операторов?

0x9d8e
02.02.2017
15:28:31
Сравнение, типа > < === и всё такое?

Как-то пришлось некое подобие арифметики с объектами делать, я там просто нафигачил методов типа add, difference, moreThan, lessThan, eq и т.п.

Возвращали они либо булин либо новый объект того-же класса

типа if($foo->moreThan($bar) { $qwe = $foo->add($bar); } else { $qwe = $foo->difference($bar); } $qwe = $qwe->percentOf($foo);

Думаю можно и отдельный класс запилить, который бы выполнял такие операции (по методу на каждую) над какими-то объектами. Прост принимал бы пару операндов и всё.

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