@prophp7

Страница 268 из 1387
Sergey
03.03.2017
08:38:23
> For true MVC we need a central long living controller не контроллер а view. Контроллер stateless и его цикл жизни вообще никого не интересует

Dima
03.03.2017
08:39:06
Почему?

Sergey
03.03.2017
08:39:41
потому что он stateless)

в целом и view может быть stateless а модель просто сообщаент ивентами вьюхе "обновиться"

Google
Dima
03.03.2017
08:40:56
А restful почему не имеет практического смысла?

Sergey
03.03.2017
08:41:26
ну то есть вьюха отображает стэйт приложения для пользователя, пользователь кликает на какой-то контрол и событие приходит в контроллер. Контроллер на это событие просить модель что-то сделать. Модель что-то делает и кидает событие "я обновилсо" и вьюха по этому событию себя перерисовывает. Данные идут строго в одном направлении. На бэкэнде это никому особо не нужно

А restful почему не имеет практического смысла?
потому что подавляющее большинство не знают что это такое

а если большинство не знают, то употреблять этот термин нет смысла

играл же в испорченный телефон

ну мол пример. Я тебе говорю "у меня restful API" а ты себе "так, то есть у него есть CRUD-like HTTP API"

или например "GraphQL круче REST"

большинство думают "круто! нафиг HTTP API!" а я думаю "Воу воу, но... graphql в целом похож на что-то restful"

Jerry
03.03.2017
08:44:23
И что же такое Restful API?)

Dima
03.03.2017
08:45:00
Не знаю что такое REST.

Sergey
03.03.2017
08:45:03
Representational State Transfer. Ключевое слово - state transfer.

Jerry
03.03.2017
08:45:36
не термин его

а основопологающая

Google
Sergey
03.03.2017
08:46:09
ну то есть у тебя есть граф объектов и связи между ними. Это все - ресурсы. У них есть идентификаторы - URI. Ты можешь что-то делать со всем этим (GET/POST/PUT/DELETE) и за счет этого происходит переход системы из одного стэйта в другой

в целом REST это набор ограничений которые дают тебе определенные характеристики архитектуры

Jerry
03.03.2017
08:47:21
Да я то в курсе, что это, думал может что-то новое узнаю)

i
03.03.2017
08:47:35
в википедии всё есть

Sergey
03.03.2017
08:47:40
ну тип по сути правильный REST нельзя сделать без HATEOAS

а HATEOAS делают мало кто

вот когда у тебя ресурс сам тебе говорит какие релейшены у него могут быть

тогда можно делать крутые штуки

Jerry
03.03.2017
08:50:35
это все из разряда over engineering

Sergey
03.03.2017
08:50:56
это все из разряда over engineering
и да и нет. Могу привести простой пример

у тебя есть API

например... что-то типа бложика

простая шляпа да?

есть ресурс - "статья". и ее можно редактировать например

идет время и помимо "автора статьи" и "администратора" (такие проверки на клиенте делать удобно) появляются штуки вроде "а еще статью могут редактировать главный редактор блога и редакторы разделов"

и тут уже сложности начинаются

скорее всего закончится это какими-то флагами в json аля editable: false

а можно добавить линку

{"rel": "article.edit", "href": "https://api.com/articles/123"}

Jerry
03.03.2017
08:53:48
для этих дел

Google
Sergey
03.03.2017
08:53:50
и клиент будет знать что если есть такой релейшен - значит надо показывать кнопку edit

Jerry
03.03.2017
08:53:52
есть State Machine

Sergey
03.03.2017
08:54:05
есть State Machine
HATEOAS и есть способ задания state machine

Jerry
03.03.2017
08:54:14
и ACL

Sergey
03.03.2017
08:54:25
и ACL
не понял

ну то есть с какой стороны у тебя ACL будет?

на клиенте продублируешь?

или на сервере будешь говорить ресурсам в какой стэйт они могут перейти? (ну мол твой автомат)

Jerry
03.03.2017
08:56:42
а в чем проблема стеделать HATEOAS на основе ACL, StateMachine?

Jerry
03.03.2017
08:57:00
и выдавать ресурсы

какие нужны

Jerry
03.03.2017
08:58:59
мы говорим просто об одном и том же, потому что на бэк части всеравно все проверки будут реализованы, выдаваться просто будет то, что нужно для конкретного пользователя например

Sergey
03.03.2017
08:59:41
а в чем проблема стеделать HATEOAS на основе ACL, StateMachine?
я немного не понимаю, я же это и предлагаю

Jerry
03.03.2017
08:59:57
поэтому я и написал, что мы о том же

об одном и том же

Sergey
03.03.2017
09:00:19
ну проблема в том что помимо ACL есть еще масса вещей которые часто дублируются на клиенте

ну и опять же большинство просто не делают HATEOAS

потому дублирование логики на клиент и вылазит

Jerry
03.03.2017
09:01:05
ну без HATEOAS нереально сделать нормальный websocket даже

Google
Jerry
03.03.2017
09:01:12
потому что логика будет дублироваться

на клиенте, на вебсокете

на бэкенде

Sergey
03.03.2017
09:05:48
ну без HATEOAS нереально сделать нормальный websocket даже
я опять же не уверен что правильно тебя понял

тип у тебя когда ты шлешь ивент в нем есть "следующий стэйт"?

ну тип что-то типа тех же релейшенов только вместо URI используется что-то другое?

или ты просто говоришь про сферические конечные автоматы в вакууме

Jerry
03.03.2017
09:07:36
я имею ввиду конктертную реализацию HATEOAS

и как он формирует все связи

и посредством чего

Admin
ERROR: S client not available

Jerry
03.03.2017
09:08:16
ладно не важно, мы об одном и том же, я это понял

долго все расписывать

было бы время

)

Sergey
03.03.2017
09:10:56
конкретную)

Jerry
03.03.2017
09:11:10
я имел ввиду допустим реализацию вебсокетов, которые ограничены прослушкой, только в админке, в самом сокете то нужно каким-то образом понять, может пользователь слушать его и данные принимать или нет.

и что бы не дублировать ничего

можно се сделать посредством вот этих вот действий

Google
Sergey
03.03.2017
09:11:48
так это не про HATEOAS

ну мол HATEOAS это про гипермедиа

а я что-то как-то не видел websockets передающие гипертекст (с релейшенами)

Jerry
03.03.2017
09:12:49
а зачем передевать

Sergey
03.03.2017
09:12:53
так блин

Jerry
03.03.2017
09:12:59
ну допустим если сокеты

Sergey
03.03.2017
09:13:00
мы таки про разные штуки походу говорим

Jerry
03.03.2017
09:13:04
socket.io

Sergey
03.03.2017
09:13:06
ну

Jerry
03.03.2017
09:13:31
не имеющие доступа к сервисам

только API

хотя не

можно но костыль

но не везде нужен HATEOAS

Sergey
03.03.2017
09:18:46
но не везде нужен HATEOAS
что для тебя HATEOAS

ну мол это вполне конкретная штука (в отличии от REST)

Jerry
03.03.2017
09:19:13
https://spring.io/understanding/HATEOAS

Sergey
03.03.2017
09:19:18
Hypermedia как минимум в названии должен намекать

Jerry
03.03.2017
09:19:33
отсюда понимал еще когда Spring учил

Sergey
03.03.2017
09:20:04
ну, а теперь причем тут socketio?

Jerry
03.03.2017
09:20:21
я ж ответил

это костыль

Sergey
03.03.2017
09:20:24
ну то есть да, мы можем сделать ивенты кусочками стэйта с транзишенами описанными в виде релейшенов

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