@oop_ru

Страница 636 из 785
Sergey
08.05.2018
09:42:04
не "спека по rest" - ее не существует

Charles
08.05.2018
09:42:17
что ее нет знаю

ок, пойду читать, спс

Sergey
08.05.2018
09:42:54
ну короч, основной посыл - урлы - плевать какие, главное в этом все идемпонетность GET/PUT/DELETE/OPTIONS запросов, а так же отсутствие гарантированной идемпонетнтности у POST

Google
Sergey
08.05.2018
09:43:38
ну то есть /users/{id}/1 вместо /users/me только из-за идемпотентности при разных клиентах. Что бы http кэш фурычил. Но сегодня все класть хотели на http кэш а значит вообще плевать

Charles
08.05.2018
09:44:59
меня спека больше волнует чем все) пусть это и не рест спека а спека протокола хттп, там все равно достаточно рекомендаций чтобы снизить к минимуму возможные варианты реализаций рестфул апи. но спасибо

Roman
08.05.2018
09:45:46
Отдавать JSON поверх HTTP -- это рестфул?

Charles
08.05.2018
09:46:06
а каким макаром они вобще в одной плоскости?

Sergey
08.05.2018
09:46:31
а каким макаром они вобще в одной плоскости?
ну а что ты рестфулом называешь и читал ли диссертацию Филдинга где он термин REST вводит?

Charles
08.05.2018
09:46:47
сам диссер только в выкладках

в пересказах и т.д. и т.п.

Alan
08.05.2018
09:47:20
он же потом и писал ЧТО не называть рестфулом)

Sergey
08.05.2018
09:47:27
https://www.slideshare.net/royfielding/a-little-rest-and-relaxation

Alan
08.05.2018
09:48:16
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Sergey
08.05.2018
09:49:13
ну короч, все что тебе надо это RPC over http. не стоит юзать то чего не понимаешь. Всеравно получится RPC)

Roman
08.05.2018
09:50:00
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
Думал затеять срач, а ты взял и все испортил ?

Charles
08.05.2018
09:50:04
пойду матчасть доучивать

Google
Charles
08.05.2018
09:50:16
всем спасибо

Sergey
08.05.2018
09:50:20
Думал затеять срач, а ты взял и все испортил ?
ну так ты тезисы основные накидывай

Charles
08.05.2018
09:50:21
i'll be back

Andrew
09.05.2018
09:32:41
Скажите пожалуйста, при работе с ValueObject что принимает VO при изменении

пример

public function change(string $email) : self

или

public function change(UserEmail $email) : self

UserEmail это VO. обычная строка, надо валидировать строку еще. С одной стороны, второй вариант вроде удобнее, однако, мы раскидываем инициализацию new UserEmail по всему проекту

что не оч хорошо.

Dmitry
09.05.2018
09:39:54
Скажите пожалуйста, при работе с ValueObject что принимает VO при изменении
vo это объект значение, как ты изменишь цифру 3? тут тоже самое

Andrew
09.05.2018
09:40:22
@oldy777 не совсем понял

Dmitry
09.05.2018
09:41:07
@oldy777 не совсем понял
VO это неизменяемый объект.

Adel
09.05.2018
09:42:09
UserEmail это VO. обычная строка, надо валидировать строку еще. С одной стороны, второй вариант вроде удобнее, однако, мы раскидываем инициализацию new UserEmail по всему проекту
не надо "строку валидировать еще". ты принимаешь обьект UserEmail и 100% уверен что там нормальный email. ибо обьект не создастся если строка будет неправильная

Andrew
09.05.2018
09:43:15
То есть нчиего страшного что будет где не попадя раскидано ->change(new UserEmail('some@email.com'))

Andrew
09.05.2018
09:43:43
или ->compare(new UserEmail('qwe@email.com'))

сейчас уменя вот так ->compare('qwe@qwe.com')

а уже в VO, делаю new self($newEmail)

Google
Andrew
09.05.2018
09:44:53
то есть внутри самого VO в методе, инициализирую, тем самым валидирую новую, входящую строку

Like
09.05.2018
09:45:05
а уже в VO, делаю new self($newEmail)
Что-то как-то слишком...

Dmitry
09.05.2018
09:45:05
change - это метод VO ?

Andrew
09.05.2018
09:45:10
да

Dmitry
09.05.2018
09:45:34
не должно там такого метода быть

ты хрень какую то делаешь :)

f4rt~
09.05.2018
09:45:48
Andrew
09.05.2018
09:46:04
у меня есть юзер, вызывает родной метод

Dmitry
09.05.2018
09:46:05
new VO('mail')->change('mail2') ?

Andrew
09.05.2018
09:46:11
$user->changeEmail('string')

в методе changeEmail

$this->email->change()

Dmitry
09.05.2018
09:46:35
в самом VO не надо менять, меняй у юзера

$this->email = VO

Like
09.05.2018
09:46:57
Andrew
09.05.2018
09:47:12
@shindakioku ?

Adel
09.05.2018
09:47:31
$this->email->change()
ужасно :)

Andrew
09.05.2018
09:47:57
@oldy777 а входящие данные какого типа, принимать нвоый VO? Ведь если мы создаем из строки, по идее валидация все-равно будет

$user->changeEmail('new@email.com')

public fucbntion newEmail(string ?? UserEmail $email)

Google
Like
09.05.2018
09:48:34
почему это ?
Потому что иммутабельность На кой леший разрешать изменять уже готовый email? Пускай клепает новый объект

Like
09.05.2018
09:49:00
Andrew
09.05.2018
09:49:08
у меня создаеться нвоый обьект, я написал выше

то есть внутри самого VO в методе, инициализирую, тем самым валидирую новую, входящую строку

Dmitry
09.05.2018
09:49:20
я про compare/equals
я про change

Maksim
09.05.2018
09:49:25
если надо изменить значение vo, то надо просто создать новый)

f4rt~
09.05.2018
09:49:26
Andrew
09.05.2018
09:50:31
так, еще раз, compare метод должен принимать параметром UserEmail, VO, а метод changeEmail, принимать обычную строку, да?

Andrew
09.05.2018
09:50:46
@oldy777 immutable

Maksim
09.05.2018
09:51:39
новый во и всё

Adel
09.05.2018
09:51:47
просто представь ради прикола, что email в будущем будет не строка.. а наприме огромное число

Dmitry
09.05.2018
09:51:53
@oldy777 immutable
ты понимаешь что ты вместо new VO перекладываешь отвественность за создание на сам VO? Т.е. если VO это цифра три, ты на цифру 3 кладешь отвественность за создание других цифр

Adel
09.05.2018
09:52:00
и весь код твой придется менять

Dmitry
09.05.2018
09:52:57
почему у тебя changeEmail принимает строку??
потому что он у него внутри VO

Andrew
09.05.2018
09:53:06
@Adelf32 ааа, тогда да, проще принимать уже VO

Google
Andrew
09.05.2018
09:53:27
всем спасибо)

Dmitry
09.05.2018
09:54:28
т.е. вы предлагаете ему new VO('email')->changeEmail(new VO('email2')) ??? ))))

Maksim
09.05.2018
09:54:43
нет)

у во нету методов для смены значения

Like
09.05.2018
09:54:57
changeEmail должен быть у юзера ?

Maksim
09.05.2018
09:55:07
а у юзера есть метод для смены во)

Dmitry
09.05.2018
09:55:15
а вот у него есть :)

ладно, надеюсь он правильно все понял

Andrew
09.05.2018
09:56:02
да

уберу метод change из VO

и принимать надо уже Vo

Adel
09.05.2018
09:56:28
вы чувствуете?

чувствуете, что мир стал немного, но лучше?

Andrew
09.05.2018
09:56:42
да)

надо тесты поправить)

Like
09.05.2018
09:57:42
уберу метод change из VO
Ты ж сам выше написал про иммутабельность ?

Andrew
09.05.2018
09:58:00
он не менет

там cpoy self

Like
09.05.2018
09:58:07
Сильна

Andrew
09.05.2018
09:58:08
был

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