
Denis denya Voskoboinik
13.12.2016
15:12:54
2 ангулря я еще только хчу попробвать когдато.

Sergey
13.12.2016
15:13:06
ну сейчас вышел angular 1.6
и проблема в том что всякие там angular material уже забили на ветку 1.x
и хз насколько долго продлится суппорт библиотек

Google

Denis denya Voskoboinik
13.12.2016
15:14:56
но тогда получается что много ложится на плечи ангуляра.
Вообщем ясно, нужно пробовать сделать что-то простое типа блога.
а потом переходить к сложному.
сначала сделать апи, потом сделать то что будет с ним общаться отдельно от него

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

Denis denya Voskoboinik
13.12.2016
15:17:42
ну вот самы простой вопрос. отправилась форма, кто должен решать куда перенаправить пользователя, фронт или бек? и такие вопросы возникают часто)

Sergey
13.12.2016
15:18:05
попробуй по другому мыслить
ну мол...
фронтэнд в твоем случае - самодостаточное приложение
а это значит что за своим стэйтом следит исключительно оно
более того
если ты послал запрос на "создать штуку" то бэкэнд должен тебе просто сказать "ок, созал (статус код 201)"

Google

Sergey
13.12.2016
15:19:47
статус код 201 уже говорит об отсутствии редиректа
НО некоторые добавляют в респонс заголовок Location с указанием урла созданного ресурса (что бы фронтэнд мог его получить)
но обычно мы просто выплевываем этот ресурс сразу с ответом
воспринимай сервер в этом случае как просто какой-то внешний сервис, который никак не руководит твоим приложением
как база данных например

Denis denya Voskoboinik
13.12.2016
15:24:34
Но Бизнес Логика все равно должна быть на бекенде. т.е. например, если отсылается запрос post запрос создать комментарий, то все зависящие от этого действия же делает бекенд.
например увелчить при этом карму того кто разместил коммент.
и фронт не должен знать про реализацию всего того что творится на беке, он должен оперировать сущностями, которые предоставляет бек?
вообщем я тебе благодарен, что немного упорядочил мои мысли)


Sergey
13.12.2016
15:25:42
ну это мол разная логика
фронтэнд например как ты сказал понятия не имеет ничего про карму
все что он знает - это какая-то циферка которую ему присылает бэкэнд
пример
у тебя есть бэкэнд
и ты хочешь трекать статус доставки товара
ты запрашиваешь у внешнего сервиса по трекинг номеру статус доставки
и получаешь его. причем как это происходит тебя не колышит.
тут та же идея.
бывают ситуации когда бизнес логика относится только к клиенту
да, у тебя может быть необходимость продублировать эту логику на бэкэнде, но в целом на бэкэнде должна быть логика, которая следит за консистентностью данных


Denis denya Voskoboinik
13.12.2016
15:30:08
мысли становятся все упорядочней и упорядочней.

Google

Sergey
13.12.2016
15:30:35
идеи те же что и для маленьких штук
например у тебя есть класс калькулятора, у которого стоит тайп хинт на аргументы
это по сути проверка прекондишена что ты не прислал чушь
и у тебя скорее всего есть валидация та же на UI
что бы ты не мог ввести не цифры
то есть дублирование проверки есть
но цель они приследуют разные
проверка на уровне тайп хинта предотвращает нарушение прекондишена, а проверки на уровне UI для улучшения UX (что бы не получить просто ошибку а понять что пользователь сделал не так и что бы уменьшить необходимость повторять действия)
рекомендую подумать на тему "а что если не SPA а мобильное приложение"
(я например 6 лет почти бэкэнды для мобилок пишу)
и там нет этих недопониманий, там все проще как-то... просто потому что нет браузера
и он тебя не смущает

Denis denya Voskoboinik
13.12.2016
15:33:57
так и пытаюсь думать, что если моим API захочет пользоваться кто-то кроме меня)

Sergey
13.12.2016
15:34:14
окей, представь что ты пишешь библиотеку, которая популярна
те же принципы
давать понятные ошибки если киент прислал что-то не то
обратная совместимость
и все такое
и главное - интерфейс должен быть максимально простым
надо получить новость

Google

Sergey
13.12.2016
15:35:25
GET /news/{id}
надо получить новости и комменты в ней... либо просто проси делать два запроса либо делай композицию ресурсов
так же - старайся не делать вложенность больше трех уровней в URI
типа DELETE /posts/{id}/comments/{other_id}
у тебя этот other_id и так уникален и все такое.
многие кто начинают писать API по старинке мыслят урлами в браузерной строке
https://gist.github.com/fesor/9200f444742d9fe7ec1205cb1e072fd0 - у меня тут еще какаие-то мысли есть

Denis denya Voskoboinik
13.12.2016
15:39:45
ясненько, с беком все немного ясно, осталось понять как правильно все организовать на ангуляре)

Sergey
13.12.2016
15:40:00
https://github.com/AngularClass/NG6-starter - можешь взять мой стартер)
хотя лучше пни меня на неделе и я выложу какой-нибудь пример на ангуляре
я как раз пишу простенькую апку

Denis denya Voskoboinik
13.12.2016
15:41:21
спасибо тебе! как вот благодарить таких людей))

Sergey
13.12.2016
15:41:35
пиши поддерживаемый код
и учи других
ну или не учи а размышляй с другими)
но по поводу ng6-starter пни меня на днях

Denis denya Voskoboinik
13.12.2016
15:44:46
ок

Sergey
13.12.2016
15:44:50
потому что то что на гитхабе малость устарело
а уменя руки не доходят обновить, а некоторые вещи не хотят принимать

Sergey
14.12.2016
07:48:50
http://symfony.com/blog/symfony-3-2-1-released время обновляться кстати

Google

Mihail
14.12.2016
07:57:00
о норм)
а у нас 2.8 )

Sergey
14.12.2016
07:57:27
так обновись)

Mihail
14.12.2016
07:57:52
чин не позволяет, не я тут заведую)

Mikhail
14.12.2016
07:58:03
мне позволяет, но мне ссыкатно
тоже на 2.8 сидим

Mihail
14.12.2016
07:58:28
у меня чет вообще голос пропал. заблолел пздц
и на работу приперся дурачек блин

Sergey
14.12.2016
07:58:46
2.8 -> 3.0 сложный немного переход

Mikhail
14.12.2016
08:00:09
да, у нас уже сейчас полно всего депрекейтед используется, чего в 3.0 не будет. Особенно у вендорных бандлов
если у себя ещё можно будет как-нибудь выделить время и подтянуть все депрекейтеды, то с вендорами сложнее, не хочется в их код руками лазить

Oleg
14.12.2016
11:33:06
http://image.prntscr.com/image/45a154e5b24c4c809059ebdcba7d2b5b.png
Пиздец ща на почту пришло
Адище

Sergey
14.12.2016
11:33:28
"посчитаете интересной"
годно)
хрюшки такие хрюшки

Oleg
14.12.2016
11:37:13
http://image.prntscr.com/image/4b65365c57504f1e9ed9c7a9163503ae.png
кстати, тот редкий случай, когда я ответил на HR-спам
Кому-нибудь еще подобное приходит?