Как стать автором
Обновить

Комментарии 6

Где же railway?

«Railway-oriented programming» — функциональный стиль обработки ошибок через ADT (Either/Result).

Есть готовые библиотеки:

  • raphael-dms/monad,

  • functional-php/functional,

  • sergphp/fp-psrl.

Раз уж вы на PHP

А он частично описан у меня, я его назваю ErrorObject в статте. Я скоро внесу правки в чтобы не было путаницы и лучше распишу о нем. Спасибо

Ваша LLM-ка к концу генерации забыла, о чем она говорила в начале.

Ошибки могут возникать на любом уровне, но очень важно правильно их перехватывать, трансформировать и логировать.

и

Не ловите все исключения подряд; обрабатывайте только ожидаемые.

— противоречат друг другу.

Но самое главное, что исключения прибиты гвоздями к тому потоку, который обрабатывает данный кусок кода, и когда вы надумаете распараллелить его на несколько машин (да хотя бы на несколько потоков) — всё написанное выше, кроме either-монад, станет бессмысленным. А у нас тут 2025 на дворе, странно ориентироваться на один поток выполнения.

 ИИ такой бред не сгенерирует) Если бы тут поработал ИИ, у статьи был бы план, выводы и хоть какая-то структура)))

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

а то что `Не ловите все исключения подряд` - это про тактику обработки этих ошибок - имелось ввиду не использовать слепой catch (Throwable $e) а ловить ошибки только те что ожидаешь. FF - лучше раньше упасть и увидеть эту ошибку.

Согласен. Сттаття больше ориентирована на однопоточную обработку. И советы в ней остаются актуальными для синхронной и асинхронной обработки. Что касаеться PHP то в нем нет настоящей параллельной обработки "из коробки"; Что касается других языков - там нужны другие подходы которые уже выходят за границы этой стати.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации