@symfony_php

Страница 785 из 1418
Konstantin
27.03.2018
15:18:33
у него недоверие к инпуту

Sergey
27.03.2018
15:18:38
....

у тебя аутпут а не инпут

или то что лезет из слоя ниже это у тебя инпут?

Google
Sergey
27.03.2018
15:19:04
ты забавный)

Konstantin
27.03.2018
15:19:18
все так говорят

Sergey
27.03.2018
15:20:26
всеравно дто )
дай пару минут, попробую более конкретный пример что бы предметно можно было говорить

Konstantin
27.03.2018
15:20:38
да не торопись я на обед

Sergey
27.03.2018
15:22:00
ну короч вопрос не в том что делать классы или нет - вопрос для чего мы из делаем если за валидацию у нас всеравно отвечает "слой выше", а данные всеравно надо доставать и как-то компоновать

тем более что в php нет возможности красиво это хэндлить (делать ссылки на поля классов)

зато есть массивчики (которые не массивчики вовсе))

и почему мы не пользуемся плюсами того языка который нам достался а пытаемся как-то усложнить себе жизнь)

p.s. для запросов DTO как объект определенного типа всеравно удобнее, тут спора нет. Хотя ценность не столь высока как в java. А в PHP все эти пляски с DTO для респонсов вынуждают кодогенераторы писать

Konstantin
27.03.2018
15:36:27
ясн )

https://stackoverflow.com/a/6711169 на всякий случай вдруг кому пригодится

кстати вот эта навязчивая мода использовать везде массивы

Google
Sergey
27.03.2018
15:40:25
кстати вот эта навязчивая мода использовать везде массивы
ты не путай меня с каким-нибудь джуном который обмазывается массивчиками направо и налево

Konstantin
27.03.2018
15:40:28
битриксе, не к ночи помянут, там примерно все из этого состоит. хорошо что я с ним уже год не работаю но суть такая - хуй проссышь что приходит в шаблон

т.е. у тебя есть например 3 версии из трех разных годов, и в каждой версии в шаблон тебе приходит разный набор данных, иногда не документированый

Sergey
27.03.2018
15:41:06
ты же понимаешь что я говорю о очень узкой проблеме, не предлагаю юзать массивы вместо объектов и все такое

Konstantin
27.03.2018
15:41:15
выяснение "а нахуй вот это" занимает примерно 80% времени )

Konstantin
27.03.2018
15:41:36
направление разница

)))

Sergey
27.03.2018
15:41:44
не чувствуешь, понял

Konstantin
27.03.2018
15:42:54
"уходит куда то" против "приходит что то в шаблон" - че разница большая есть?

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

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

это не рассматривал как минус? )

Sergey
27.03.2018
15:44:30
"уходит куда то" против "приходит что то в шаблон" - че разница большая есть?
я еще раз повторю - я говорю о конкретной ситуации, когда ты собрал структуру и выплюнул ее куда-то где напрямую с ней работать не будешь

ну то есть сериалайзер тот же

очень узкий кейс, специфичный для апишек и очень даже частый для апишек

Konstantin
27.03.2018
15:44:53
а что за место это "где то"

ну вот что там, кто клиент?

Sergey
27.03.2018
15:45:14
а что за место это "где то"
например SPA на реакте

Google
Sergey
27.03.2018
15:45:31
или iOS приложение на swift

между нами - json

что они там уже будут делать, мэпить на DTO через какой-нибудь мэппер, юзать как есть + проверка типов через flow/typescript - на бэкэнд это вообще никак не влияет

Konstantin
27.03.2018
15:47:44
а документация к апи откуда берется

Sergey
27.03.2018
15:48:02
а документация к апи откуда берется
а у тебя она откуда берется?

Konstantin
27.03.2018
15:48:02
ну т.е. в нормальном апи всегда есть "модели данных" как мне видится

с дто можно нагенерировать

а у тебя? )

Sergey
27.03.2018
15:48:30
с дто можно нагенерировать
а ты пробовал на реальных проектах так делать? как будешь осуществлять связь с конкретными экшенами?)

а у тебя? )
у меня обычно сначала дока и потом имплементация

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

Konstantin
27.03.2018
15:48:58
ну ок дока и имплементация

Konstantin
27.03.2018
15:49:03
а потом когда надо поднять версию

добавить 3-4 поля

а делаешь не ты

Sergey
27.03.2018
15:49:19
Konstantin
27.03.2018
15:49:19
человек сделал и забыл, документация старая и там не отражаются изменения

другую

Sergey
27.03.2018
15:49:30
ты про заведомо мертвую идею версионизации API?)

Konstantin
27.03.2018
15:49:31
версию апи

Google
Konstantin
27.03.2018
15:49:46
чем она мертвая? нормальная такая идея

Sergey
27.03.2018
15:49:50
просто уточню - ты пилил API? приходилось заниматься версионированием оной?

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

Konstantin
27.03.2018
15:50:08
для долгоиграющих необновляющихся клиентов еще не пилил

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

а ты хуякс на том же хосте начинаешь менять модели данных

тут на помощь спешит версионирование

не?

или как то подругому можна?

Sergey
27.03.2018
15:54:19
мне на эту тему нравится как страйп делают

Admin
ERROR: S client not available

Sergey
27.03.2018
15:54:24
обратную совместимость апишек

Konstantin
27.03.2018
15:55:47
но показать не можешь, да?

Sergey
27.03.2018
15:56:00
но показать не можешь, да?
что именно?) мобилки?

исходники?

Konstantin
27.03.2018
15:56:08
ага

Sergey
27.03.2018
15:56:14
NDA, сорян

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

Valentin
27.03.2018
15:56:52
у меня обычно сначала дока и потом имплементация
А на чём пишешь доку? Если говорить о человеке уровня джуна который впервые начинает делать апи - стоит ли изначально писать доку и под неё код или лучше наоборот?

Google
Konstantin
27.03.2018
15:57:02
так многие не могут

о у тебя то я надеялся хотя бы есть 1-2 для паблика

Sergey
27.03.2018
15:57:28
а потом каждый будет со своей стороны пилить реализацию

а так по доке можно заглушек налепить

Sergey
27.03.2018
15:58:21
А на чём пишешь доку? Если говорить о человеке уровня джуна который впервые начинает делать апи - стоит ли изначально писать доку и под неё код или лучше наоборот?
это как тебе удобно. Раньше юзал api blueprint (и до сих пор считаю этот формат крутым), сегодня рекомендую посмотреть в сторону raml (хотя блупринта может и хватить). Мне такой подход (сначала дока) был удобен потому что можно было распаралелить разработку клиента и сервера. Это часто нас спасало.

сейчас больше смотрю в сторону Graphql и подобным способам задавать схему для API но все это пока сыро мутно

Valentin
27.03.2018
16:00:05
если под определенных клиентов пишешь, то имеет смысл сразу составить доку
Ясно, спасибо, ну не уверен что подойдёт так как фронтенд тоже сам собираюсь писать, но наверное надо попробовать, вместо т.з - дока по апи

Sergey
27.03.2018
16:00:20
пусть пишет в каком-нибудь apiary

есть еще клевые штуки типа swagger 2 typescript

и подобные

Valentin
27.03.2018
16:01:43
Он - это я, невнимательно прочитал наверное, я фуллстаком буду на этом проекте

Sergey
27.03.2018
16:02:02
да... надо отдохнуть)

Valentin
27.03.2018
16:02:52
Спасибо, посмотрю на то что предложили, что мне покажется удобным то и возьму если особо нет разницы

Konstantin
27.03.2018
16:04:14
@fes0r ну так и все же что делать с версионированием

Sergey
27.03.2018
16:05:17
@fes0r ну так и все же что делать с версионированием
смотря какое приложение пилишь и как у тебя организована API

Konstantin
27.03.2018
16:05:23
сразу говорю урл я не собирался менять, но есть идея принимать версию через заголовок

Sergey
27.03.2018
16:05:36
но наилучшая стратегия - отсутствие версионирования. Дальше вопрос - почему ты не можешь этого делать.

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

(в респонс, мы пока только про респонс). Хотя даже если про запросы - если ты добавил параметры - логика приложения должна остаться работать потому либо дефолты либо опциональные параметры. По другому никак. В итоге у тебя так или иначен а уровне приложения должна сохраняться обратная совместимость для всех версий твоей API

Konstantin
27.03.2018
16:07:45
работал я с такой апишкой однажды, ну и кореша тоже

много модулей напилили

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