@symfony_php

Страница 78 из 1418
Stepan
03.02.2017
10:42:45
Но про ангуляр я вчера картинку вроде находил

Sergey
03.02.2017
10:42:47
тип angular-forlmly

Но про ангуляр я вчера картинку вроде находил
для приложенек где много форм норм. Админки всякие, бизнес прилажки

Stepan
03.02.2017
10:43:25
Соната хорошо, если ты во фронтенд вообще не можешь. Но там полный ад с формтайпами, и знать надо дофига

Google
Stepan
03.02.2017
10:44:27
Рест фигануть куда проще, хотя вообще тот же мармелабовский реактовый админ-интерфейс капец как схож по структуре с сонатой. Понятно почему, потому что бизнес-задача одна — CRUD

Sergey
03.02.2017
10:44:50
Но про ангуляр я вчера картинку вроде находил
то что ангуляр тормозит, это вина тех кто его готовит) сам фрейм оптимизирован нормально

Sergey
03.02.2017
10:45:04
я сча с angular2 балуюсь

Sergey
03.02.2017
10:45:07
когда люди доктрину юзают в цикле, это ж не доктрина виновата?

Stepan
03.02.2017
10:45:20
Вот для справки https://github.com/marmelab/admin-on-rest

Rodion
03.02.2017
10:45:44
блин, раз есть возможность, то спрошу: если мы выносим логику из контроллеров, то где хранить доменную логику? я прикинул, что доменные менеджеры под каждую сущность - это перебор, + не всегда ясно, какому менеджеру присваивать метод. начал копать глубже, вышел на DDD, CQRS и т.п. Туда копать?

Stepan
03.02.2017
10:45:49
Aleksandr
03.02.2017
10:45:52
то есть накатать рест и потом к нему прикрутить админку?

Sergey
03.02.2017
10:45:59
Sergey
03.02.2017
10:46:50
сущности, объекты-значения, сервисы

Stepan
03.02.2017
10:46:52
то есть накатать рест и потом к нему прикрутить админку?
Если охота запариваться за фронтенд — попробуй. Сонату юзать можно, но часто бывает, что хочешь сделать без костылей, и лезешь в доку на два часа. Можно такое же и на JS-админке словить на самом деле

Ну и рест всё равно делать, это тоже косты

Google
Rodion
03.02.2017
10:47:53
сущности, объекты-значения, сервисы
вот про сервисы подробнее бы. я уже говорил про доменные менеджеры и про их проблемы

Stepan
03.02.2017
10:47:56
Домена, блин. Предметной области же

Доменная печь)

Sergey
03.02.2017
10:48:24
Доменная печь)
домен = предметная область

Sergey
03.02.2017
10:48:39
у всех разное понятие "домена", увы)

Stepan
03.02.2017
10:48:48
Печь предметной области, всё правильно :)

Sergey
03.02.2017
10:49:36
вот про сервисы подробнее бы. я уже говорил про доменные менеджеры и про их проблемы
проблема в том что менеджеров быть не должно. Давай лучше на каком-то более конкретном примере

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

ну мол у тебя есть пачка объектов которые отвечают за маленькие операции/бизнес правила

и тупой менеджер который тупо задает последовательность, флоу

в нем нет if-ов

ну и в сущностях нет геттеров, нет сеттеров

есть только объекты

и операции которые нужно проделать с данными которые хранят объекты

например: public function changePassword(string $oldPassword, string $newPassword, PasswordEncoder $encoder) { if (!$encoder->isValid($this->password, $oldPassword)) { throw new InvalidPasswordException(); } $this->password = $encoder->encode($newPassword); }

один метод вместо какого-то сервиса-менеджера и кучи гетеров сеттеров

Rodion
03.02.2017
10:52:53
проблема в том что менеджеров быть не должно. Давай лучше на каком-то более конкретном примере
ок. есть "группа", в ней "аккаунты" с разными "ролями". задача - создать группу. 1. создается сущность группы с названием. 2. создается сущность аккаунта, в конструкторе у него: текущий "User" (да, речь о Symfony), свежесозданная группа и роль "admin". 3. обе сущности персистятся. затем флаш. итого - два действия, одно зависит от другого.

Sergey
03.02.2017
10:52:55
вся бизнес операция инкапсулирована

Google
Sergey
03.02.2017
10:53:15
> ок. есть "группа", в ней "аккаунты" с разными "ролями". задача - создать группу. почитай про такую штуку как "агрегат сущностей"

попробуй нарисовать граф сущностей в твоей бизнес транзакции и кто кому нужен

что бы сделать дела

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

> 3. обе сущности персистятся. затем флаш. одна сущность добавляется в репозиторий. Флаш в контроллере.

Rodion
03.02.2017
10:54:24
Aggregate is a pattern in Domain-Driven Design. A DDD aggregate is a cluster of domain objects that can be treated as a single unit.

т.е. следует копать про DDD?

Sergey
03.02.2017
10:55:44
т.е. следует копать про DDD?
ну книжку Эванса почитать ты должен

но конкретно в этом случае

начни просто с того что подумай

кто в операции главный

может ли группа сама создать аккаунты? какой информации ей не хватает? как собирается граф объектов

Rodion
03.02.2017
10:57:34
1. быстрой мыслью предполагаю, что не может, т.к. при этом в группу придется инжектить фабрику аккаунтов.

Aleksandr
03.02.2017
10:58:32
Rodion
03.02.2017
10:58:40
DDD, так и называется

я так и не дошел до нее пока)

ну Domain-Driven Development

Aleksandr
03.02.2017
10:59:07
я уже книгами обложился ?

когда только читать успевать

Aleh
03.02.2017
10:59:33
Может быть сложновата, есть смысл до нее про solid, GRASP почитать)

Google
Rodion
03.02.2017
10:59:34
есть сокращенная версия: DDD Quickly

Rodion
03.02.2017
10:59:57
Ларман)

Aleksandr
03.02.2017
10:59:57
солид в целом представляю как и что

только принцип лисков меня напрягает

Aleh
03.02.2017
11:00:11
Да, вот от infoq можно ddd quickly

Aleksandr
03.02.2017
11:00:14
я его не вкурил толком

Aleh
03.02.2017
11:00:53
давай книги )
Дядя боб про solid, ларман про grasp

Admin
ERROR: S client not available

Aleksandr
03.02.2017
11:01:11
что за дядя боб? )

Rodion
03.02.2017
11:01:17
Clean Code

мб имеет смысл FAQ какой-то сделать)

Aleh
03.02.2017
11:01:32
Robert Martin

Aleksandr
03.02.2017
11:02:57
http://www.williamspublishing.com/Books/978-5-8459-1185-8.html

это?

Rodion
03.02.2017
11:03:18
угу

Sergey
03.02.2017
11:21:05
я аж как-то горд за наших симфонистов. вот сижу уже почти 3 мес в jvm и scala чатиках, за это время ни разу не было упоминаний SOLID, DDD и вообще хоть каких-то вещей из мира ООП. всегда идут какие-то набросы "котлин не нужен", "неосилили скалу", "го гавно", шуточки про пхп и прочий флуд. многие люди там даже не знают кто такой дядюшка боб, фаулер...

Big_Shark
03.02.2017
11:22:57
у меня есть гипотиза что толковый скалисты по таким чатикам просто не сидят)
А ты тогда что тут делаешь? Потому что тогда и пхпешники не должны сидеть по чатам

Google
Sergey
03.02.2017
11:23:23
это чатик по php а я дно

Sergey
03.02.2017
11:23:27
у меня есть гипотиза что толковый скалисты по таким чатикам просто не сидят)
да ладно, есть там знаменитые скалисты в чатике. и очень активно сидят

точно так же и в jvm чатике вспомним Баруха, Архипова, Гамова и тд

у меня есть гипотиза что толковый скалисты по таким чатикам просто не сидят)
и где еще тусоваться крутым скалистам? от конфы до конфы передвигаться? на реддите?

в твиттере?

Hell
03.02.2017
12:13:35
https://github.com/silexphp/Pimple/pull/14/files#diff-553037d9adc48bbece4ab185700cf095
а как себя ведет кложура, помещенная в неймспейс?

Sergey
03.02.2017
12:15:24
как кложура

у нее нет имени

потому неймспейс на нее не влияет

а вот если ты создаешь кложуру в контексте какого-то класса - то.... у тебя есть функция в контексте класса (с доступом к приватному состоянию)

Hell
03.02.2017
12:16:07
namespace My\OAuth2\Client\Factory; class OAuth2 { public static function getProvidersFactory($providers, $settings) { } } Catchable fatal error: Argument 1 passed to My\OAuth2\Client\Factory\OAuth2::factory() must be an instance of My\OAuth2\Client\Factory\Closure, instance of Closure given, c

private static function factory(Closure $callable)

Sergey
03.02.2017
12:16:39
ты слэшик забыл

\Closure $callable

а еще можешь просто писать

callable $callable

Hell
03.02.2017
12:17:17
callable is better

?

Sergey
03.02.2017
12:17:42
ну больше рарзрешает

вариантов

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