
Maksim
16.02.2017
09:17:54
и сами не соответствуют тому чего хотят увидеть от тебя

Dmitriy
16.02.2017
09:18:12
ну просто в резюме конкретно писал
- разработка клиент-серверных приложений (REST:Get/post/multipart)
тут думаю понятно, что это касается сервера, а не работы UI c кордатой
хотя с ней у меня зачасту тоже отношения: записал/прочитал

Google

Nik
16.02.2017
09:19:18

Nikita
16.02.2017
09:19:20

Maksim
16.02.2017
09:19:34
я помню собеседовался года 2 назад, мне там тим лид задачку дал, я ему сказал ответ - он говорит не правильно! в общем спорил спорил, попрощался и ушел, домой пришел написал этот код и оказался прав, потом ему на почту скинул и сказал - вы сами нихера не знаете, с тех пор на собеседования не езжу

Dmitriy
16.02.2017
09:19:40
делай то-то то-то, такие-то такие то запросы

Nikita
16.02.2017
09:21:05
При взаимодействии классов внутри iOS приложения в нужно чтобы как можно больше классов придерживались REST. Ну это уже имхо

Nik
16.02.2017
09:23:21
Удалил
ну под "записал" - удаление тоже имеется ввиду как само собой

Nikita
16.02.2017
09:23:53
В нашем контексте это можно сказать антонимы)

Andrew
16.02.2017
09:27:01
REST это получается синоним lose coupling?

Nikita
16.02.2017
09:31:42
Я бы сказал REST включает в себя слабую связь

Andrew
16.02.2017
09:35:13
ну то есть на собеседовании нужно было сказать что РЕСт - это не СОАП,
сервер ничего не знает о клиенте и его состоянии, да и клиент узнает о сервере только в какие-то моменты, в результате клиент получается не толстый, а тонкий и легкий. Зато нусть нужда в синхронизации и стало быть более надежном канале связи, если мы хотим что-то сделать с объектами которые в нашем клиенте являются например отображением записей из БД сервера?
А то пользователь захочет выбрать товар на клиенте, а на сервере он уже тютю, нет его, удален.

Google

Andrew
16.02.2017
09:36:57
можно ьыло бы так сказать?

Nikita
16.02.2017
09:38:18
Как нужно сказать на собеседовании, я не знаю) Каждый хочет услышать свое.
Сервер знает на момент принятия запроса только то, что ему сказал клиент. То есть все, что нужно серверу для построения нужного запроса для клиента, должно лежать в самом запросе. Запрос выполнили, данные отдали, забыли
Но так как я хреново знаком с серверной разработкой, то я не уверен насчет id сессии

Betrayer
16.02.2017
09:39:58
В REST не бывает сессий.
Если нужен ААА стек, его делают через какие-нибудь токены, например.

Dmitriy
16.02.2017
09:40:53
как они могут неактуальными оказаться?

-_-
16.02.2017
09:41:37
В REST не бывает сессий.
То есть в рест каждый раз при запросе надо передавать тот же токен, правильно? А в браузерах сейчас с куками как, тоже везде рест получается?

Betrayer
16.02.2017
09:41:51
И сервер знает про нее.
А токен каждый раз валидируется.

Andrew
16.02.2017
09:42:07
все так. А в случае СОАПа наверное это происходилобы само собой, без твоего участия. На более низком уровне какого-то фреймоворка. Но клиент был бы тяжелее

-_-
16.02.2017
09:42:29

Betrayer
16.02.2017
09:42:50

Dmitriy
16.02.2017
09:42:53

-_-
16.02.2017
09:43:16

Betrayer
16.02.2017
09:43:51
Он потом у себя делает такой же токен и сравнивает.
Клиент не знает соль, у него только токен есть.

-_-
16.02.2017
09:44:16

Google

Betrayer
16.02.2017
09:44:23

-_-
16.02.2017
09:44:53
Ну, не переломится.
Не, я же просто уточняю. Я в свое время делал отправку именно токена каждый раз. Это было не очень правильно?

Betrayer
16.02.2017
09:45:14
Токен клиенту дается при четком запросе токена.

Andrew
16.02.2017
09:45:22
как они могут неактуальными оказаться?
Блять, да так. Ты же не сказал серверу заблокировать записи в БД? Чтобы их никто не могу удалить. Между тем как ты запросил список товаров и тем как отправил информацию о товарах на сервер, какой-то товар вполне может быть удален.
Или ладно, более реалистичная ситуация - не удален, а его остаток на складе уменьшился до 0.
И тебе нужно разрулить ситуацию - либо чтобы сервер сказал клиенту, "чувак, пока ты думал у меня заончился такой-то товар, смогу исполнить заказ без него", либо например чтобы клиенту (физ.лицу) перезвонил оператор, либьо еще как-то

Betrayer
16.02.2017
09:45:25
А в авторизованных зонах его просто в запрос в хедер ставят.
Нет смысла делать какие-то вебсокеты чтобы такое пересылать.
Типа "Не могу заказать, кончилось".

Andrew
16.02.2017
09:46:20
потому и рест.

? Райзя ?
16.02.2017
09:46:33


Dmitriy
16.02.2017
09:46:39
Блять, да так. Ты же не сказал серверу заблокировать записи в БД? Чтобы их никто не могу удалить. Между тем как ты запросил список товаров и тем как отправил информацию о товарах на сервер, какой-то товар вполне может быть удален.
Или ладно, более реалистичная ситуация - не удален, а его остаток на складе уменьшился до 0.
И тебе нужно разрулить ситуацию - либо чтобы сервер сказал клиенту, "чувак, пока ты думал у меня заончился такой-то товар, смогу исполнить заказ без него", либо например чтобы клиенту (физ.лицу) перезвонил оператор, либьо еще как-то
при заказе ему сообщит, что тавар уже отсутствует, либо товар резервируется при нажатии заказать

Betrayer
16.02.2017
09:46:57
>резервируется
No.

Andrew
16.02.2017
09:47:02
то есть между запросами клиент не знает состояние сервера. Может он выключается в этот момент вообще

Betrayer
16.02.2017
09:47:11
Все операции должны быть атомными.
Никаких "резервирований".

Dmitriy
16.02.2017
09:47:29
ну все кинотеатры так делают, как только ты билет выбираешь, тебе дается 15 мин на офррмление, он недоступен больше для покупки, например

? Райзя ?
16.02.2017
09:47:44
И никаких сессий

Betrayer
16.02.2017
09:47:54
Они делают предпокупку. Это уже не REST.

? Райзя ?
16.02.2017
09:47:54

Google

? Райзя ?
16.02.2017
09:48:02
Через рест можно

Betrayer
16.02.2017
09:48:09
Но не нужно.

? Райзя ?
16.02.2017
09:48:16
Нужно
Это удобно

Betrayer
16.02.2017
09:48:20
Нет.
Это мудачество, онлайн оплата должна бесшумно в один клик уходить.

? Райзя ?
16.02.2017
09:48:40
Хранение состояний это сто кейсов, это неудобно

Betrayer
16.02.2017
09:48:45
Какие 15 минут?

Nikita
16.02.2017
09:49:11
Клиент может 15 минут оплачивать

Dmitriy
16.02.2017
09:49:36
а может и не оплачивать, если не оплатил - билет стал активным, и кто-то другой может купить

Admin
ERROR: S client not available

Betrayer
16.02.2017
09:49:38
Нахуй такой клиент не нужен.

Andrew
16.02.2017
09:49:46

? Райзя ?
16.02.2017
09:49:51
Если нужно, можно запросить рефреш токен

Betrayer
16.02.2017
09:49:52
И такой сервер, который оплату по 15 минут ждет.

Dmitriy
16.02.2017
09:49:52
если так произойдте, то первый получит при нажатии кнопки оплатить: сори, билет уже куплен

? Райзя ?
16.02.2017
09:50:10

Betrayer
16.02.2017
09:50:16
15 минут, это же ахуеть вообще.

Nikita
16.02.2017
09:50:30

Andrew
16.02.2017
09:50:30
это плохо просто потому, что например на сервере это время может быть уменьшено до 10 минут, а клиент все еще будет надеятся на 15 минут

Google

Betrayer
16.02.2017
09:50:36
Я вот жаловался когда у нас бизнес процесс 5 минут шел, и добился ускорения до 2-х.

Dmitriy
16.02.2017
09:50:36
ну это стандартная процедура во всех кинотеатрах/жд/ и т.д.

Betrayer
16.02.2017
09:50:38
А тут 15.

Dmitriy
16.02.2017
09:50:55
у клиента отсчет времени идет

Betrayer
16.02.2017
09:51:02

Dmitriy
16.02.2017
09:51:12
через сколько этот билет у него могут украсть

Betrayer
16.02.2017
09:51:22
ЧЕТВЕРТЬ ЧАСА, БЛДЖАД.

? Райзя ?
16.02.2017
09:52:16
Для клиента должно быть столько, сколько ему нужно
[Времени]

Betrayer
16.02.2017
09:52:41
Нет, клиент — тупой примат, нужно чтобы он кнопку нажал и сразу заебись все.

? Райзя ?
16.02.2017
09:53:14
Как это опровергает мой тезис?

Dmitriy
16.02.2017
09:53:22

Betrayer
16.02.2017
09:53:45
В идеале твоим ПО и шимпанзе должно уметь воспользоваться с первого раза.

? Райзя ?
16.02.2017
09:53:49
А, вот оно что

Betrayer
16.02.2017
09:53:54
А шимпанзе не умеет в часы.

Dmitriy
16.02.2017
09:53:54
Твои билеты зарезервированы на 13 мин. 42 сек., Чтобы никто не смог их купить.
Если ты не успеешь провести оплату за это время, билеты вернутся в свободную продажу и тебе придется заново пройти процедуру выбора мест и оплаты.
Перед оплатой билетов, пожалуйста, убедитесь, что ты не ошибся в выборе кинотеатра, фильма, даты и сеанса.

Andrew
16.02.2017
09:53:55

Betrayer
16.02.2017
09:54:19
С карточки.

? Райзя ?
16.02.2017
09:54:29

Dmitriy
16.02.2017
09:54:45
к чуваку могли во время оплаты позвонить

Betrayer
16.02.2017
09:54:47
Such REST, much API.