Size: a a a

2020 March 26

NO

Nex Otaku in Yii Framework 3
Alexey Samoylov
Я дал пример про ретраи, но чет не зашло, парни предпочитают кинуть 500ку и забить
Решается без исключений.
источник

AS

Alexey Samoylov in Yii Framework 3
Nex Otaku
Решается без исключений.
С нарушением принципа единой ответственности легко решается, ага
источник

AS

Alexey Samoylov in Yii Framework 3
И копипасты ретраев в каждую мидлварь
источник

AS

Alexey Samoylov in Yii Framework 3
Или циркутбрейкера в каждую мидлварь
источник

А

Алексей R in Yii Framework 3
Nex Otaku
Решается без исключений.
Вот смотри, методы мидлварей возвращают только ResponseInterface.
Тебе надо откатить на N мидлварей назад с пониманием, что произошло такое то недоразумение.
Ты либо бросаешь Exception, либо описываешь свой BadResponse implements ResponseInterface, чтобы потом его через instanceof взять и заменить нормальным.
Первое по твоей фобии - костыль и плохо. Второе само по себе костыль и плохо (без фобий).
Что делать то?
источник

AS

Alexey Samoylov in Yii Framework 3
Или ещё кучи сценариев обработки критичных, но не фатальных сценариев обработки запроса )
источник

NO

Nex Otaku in Yii Framework 3
Нет, как раз принцип единой ответственности нарушается в случае привязки по исключениям.

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

AS

Alexey Samoylov in Yii Framework 3
Примитивный пример: показать иранцу стандартную 404, отрендеренную в приложении
источник

NO

Nex Otaku in Yii Framework 3
Алексей R
Вот смотри, методы мидлварей возвращают только ResponseInterface.
Тебе надо откатить на N мидлварей назад с пониманием, что произошло такое то недоразумение.
Ты либо бросаешь Exception, либо описываешь свой BadResponse implements ResponseInterface, чтобы потом его через instanceof взять и заменить нормальным.
Первое по твоей фобии - костыль и плохо. Второе само по себе костыль и плохо (без фобий).
Что делать то?
Здесь нет бизнес-задачи, а лишь фантазии на тему кода.
источник

AS

Alexey Samoylov in Yii Framework 3
Nex Otaku
Нет, как раз принцип единой ответственности нарушается в случае привязки по исключениям.

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

AS

Alexey Samoylov in Yii Framework 3
Retryable мидлварь ответит за ретраи, бизнесовая мидлварь будет отвечать за свою задачу
источник

NO

Nex Otaku in Yii Framework 3
Alexey Samoylov
Примитивный пример: показать иранцу стандартную 404, отрендеренную в приложении
И в чём здесь проблема?
источник

DS

Dmitriy S in Yii Framework 3
Alexey Samoylov
Примитивный пример: показать иранцу стандартную 404, отрендеренную в приложении
Та легко, ставишь в начале FineHttpErrorRenderer middleware, оно дожидается ответа с ошибочным риспонсом и отрисовывает его в красивом виде.
источник

А

Алексей R in Yii Framework 3
Nex Otaku
Здесь нет бизнес-задачи, а лишь фантазии на тему кода.
При написании фреймворка бизнес задачи и не решаются. Ты пишешь, что исключения джигурда как плохо. В данном случае альтернативный вариант не лучше
источник

AS

Alexey Samoylov in Yii Framework 3
Dmitriy S
Та легко, ставишь в начале FineHttpErrorRenderer middleware, оно дожидается ответа с ошибочным риспонсом и отрисовывает его в красивом виде.
То есть связь через класс респонса это хорошо, а связь через класс эксепшна плохо? В чем прикол? 😁
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Та легко, ставишь в начале FineHttpErrorRenderer middleware, оно дожидается ответа с ошибочным риспонсом и отрисовывает его в красивом виде.
а ошибочный респонс ты как распознаешь? по коду или классу?
источник

DS

Dmitriy S in Yii Framework 3
Alexey Samoylov
То есть связь через класс респонса это хорошо, а связь через класс эксепшна плохо? В чем прикол? 😁
В том, что риспонс с ошибкой пройдет по всему стеку в обратном направлении к выходу.
источник

AS

Alexey Samoylov in Yii Framework 3
Алексей R
а ошибочный респонс ты как распознаешь? по коду или классу?
Http код может быть один для разных респонсов
источник

NO

Nex Otaku in Yii Framework 3
Алексей R
При написании фреймворка бизнес задачи и не решаются. Ты пишешь, что исключения джигурда как плохо. В данном случае альтернативный вариант не лучше
Исключения это очень хорошо, если использовать их по назначению, то есть для обработки ошибок. Всё остальное - антипаттерн.
источник

AS

Alexey Samoylov in Yii Framework 3
Dmitriy S
В том, что риспонс с ошибкой пройдет по всему стеку в обратном направлении к выходу.
Как он пойдет?
источник