home.social

#error_handling — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #error_handling, aggregated by home.social.

  1. [Перевод] Тихий Promise, который убьёт ваш сервер Node.js

    У вас есть продакшен-сервер. Он спокойно работает часами. А потом внезапно падает. Без предупреждения, без graceful-деградации. Просто мёртв. Виновник? Одна строчка кода, которая выглядит совершенно безобидно...

    habr.com/ru/articles/988132/

    #nodejs #промисы #асинхронность #promise #await #async #javascript #typescript #error_handling #обработка_ошибок

  2. [Перевод] Тихий Promise, который убьёт ваш сервер Node.js

    У вас есть продакшен-сервер. Он спокойно работает часами. А потом внезапно падает. Без предупреждения, без graceful-деградации. Просто мёртв. Виновник? Одна строчка кода, которая выглядит совершенно безобидно...

    habr.com/ru/articles/988132/

    #nodejs #промисы #асинхронность #promise #await #async #javascript #typescript #error_handling #обработка_ошибок

  3. [Перевод] Тихий Promise, который убьёт ваш сервер Node.js

    У вас есть продакшен-сервер. Он спокойно работает часами. А потом внезапно падает. Без предупреждения, без graceful-деградации. Просто мёртв. Виновник? Одна строчка кода, которая выглядит совершенно безобидно...

    habr.com/ru/articles/988132/

    #nodejs #промисы #асинхронность #promise #await #async #javascript #typescript #error_handling #обработка_ошибок

  4. [Перевод] Тихий Promise, который убьёт ваш сервер Node.js

    У вас есть продакшен-сервер. Он спокойно работает часами. А потом внезапно падает. Без предупреждения, без graceful-деградации. Просто мёртв. Виновник? Одна строчка кода, которая выглядит совершенно безобидно...

    habr.com/ru/articles/988132/

    #nodejs #промисы #асинхронность #promise #await #async #javascript #typescript #error_handling #обработка_ошибок

  5. Хватит писать try-catch в контроллерах: как я причесал ошибки в Express и перестал бояться деплоя

    Знаете это чувство, когда открываешь контроллер в Express проекте, чтобы поправить одну строчку логики, и видишь ЭТО ? Бесконечная вложенность, проверки на существование полей, ручной парсинг ошибок от базы данных и, конечно же, его величество try-catch , который занимает 80% файла. Я тоже через это проходил. В каждом новом микросервисе я копипастил одни и те же функции обработки ошибок. В одном проекте я ловил ошибки Mongoose через err.name === 'ValidationError' , в другом — через instanceof . Где-то мы отдавали { error: "message" } , где-то { status: "fail", msg: "..." } . В какой-то момент мне это надоело. Мне захотелось инструмент, который я могу просто подключить одной строкой, и он сам поймет, что "E11000" от Mongo — это 409 Conflict, а ошибка Zod — это 400 Bad Request. При этом я не хотел тянуть в проект тяжелые зависимости. Так родилась библиотека ds-express-errors . Сегодня я расскажу, зачем я ее написал и почему она может сэкономить вам кучу нервов.

    habr.com/ru/articles/981456/

    #error_handling #express #graceful_shutdown #javascript #nodejs #opensourse #middleware #custom_config_parameters

  6. Хватит писать try-catch в контроллерах: как я причесал ошибки в Express и перестал бояться деплоя

    Знаете это чувство, когда открываешь контроллер в Express проекте, чтобы поправить одну строчку логики, и видишь ЭТО ? Бесконечная вложенность, проверки на существование полей, ручной парсинг ошибок от базы данных и, конечно же, его величество try-catch , который занимает 80% файла. Я тоже через это проходил. В каждом новом микросервисе я копипастил одни и те же функции обработки ошибок. В одном проекте я ловил ошибки Mongoose через err.name === 'ValidationError' , в другом — через instanceof . Где-то мы отдавали { error: "message" } , где-то { status: "fail", msg: "..." } . В какой-то момент мне это надоело. Мне захотелось инструмент, который я могу просто подключить одной строкой, и он сам поймет, что "E11000" от Mongo — это 409 Conflict, а ошибка Zod — это 400 Bad Request. При этом я не хотел тянуть в проект тяжелые зависимости. Так родилась библиотека ds-express-errors . Сегодня я расскажу, зачем я ее написал и почему она может сэкономить вам кучу нервов.

    habr.com/ru/articles/981456/

    #error_handling #express #graceful_shutdown #javascript #nodejs #opensourse #middleware #custom_config_parameters

  7. Хватит писать try-catch в контроллерах: как я причесал ошибки в Express и перестал бояться деплоя

    Знаете это чувство, когда открываешь контроллер в Express проекте, чтобы поправить одну строчку логики, и видишь ЭТО ? Бесконечная вложенность, проверки на существование полей, ручной парсинг ошибок от базы данных и, конечно же, его величество try-catch , который занимает 80% файла. Я тоже через это проходил. В каждом новом микросервисе я копипастил одни и те же функции обработки ошибок. В одном проекте я ловил ошибки Mongoose через err.name === 'ValidationError' , в другом — через instanceof . Где-то мы отдавали { error: "message" } , где-то { status: "fail", msg: "..." } . В какой-то момент мне это надоело. Мне захотелось инструмент, который я могу просто подключить одной строкой, и он сам поймет, что "E11000" от Mongo — это 409 Conflict, а ошибка Zod — это 400 Bad Request. При этом я не хотел тянуть в проект тяжелые зависимости. Так родилась библиотека ds-express-errors . Сегодня я расскажу, зачем я ее написал и почему она может сэкономить вам кучу нервов.

    habr.com/ru/articles/981456/

    #error_handling #express #graceful_shutdown #javascript #nodejs #opensourse #middleware #custom_config_parameters

  8. Хватит писать try-catch в контроллерах: как я причесал ошибки в Express и перестал бояться деплоя

    Знаете это чувство, когда открываешь контроллер в Express проекте, чтобы поправить одну строчку логики, и видишь ЭТО ? Бесконечная вложенность, проверки на существование полей, ручной парсинг ошибок от базы данных и, конечно же, его величество try-catch , который занимает 80% файла. Я тоже через это проходил. В каждом новом микросервисе я копипастил одни и те же функции обработки ошибок. В одном проекте я ловил ошибки Mongoose через err.name === 'ValidationError' , в другом — через instanceof . Где-то мы отдавали { error: "message" } , где-то { status: "fail", msg: "..." } . В какой-то момент мне это надоело. Мне захотелось инструмент, который я могу просто подключить одной строкой, и он сам поймет, что "E11000" от Mongo — это 409 Conflict, а ошибка Zod — это 400 Bad Request. При этом я не хотел тянуть в проект тяжелые зависимости. Так родилась библиотека ds-express-errors . Сегодня я расскажу, зачем я ее написал и почему она может сэкономить вам кучу нервов.

    habr.com/ru/articles/981456/

    #error_handling #express #graceful_shutdown #javascript #nodejs #opensourse #middleware #custom_config_parameters

  9. 10 Принципов отказоустойчивости (с примерами на Javascript)

    С хорошей отказоустойчивостью интерфейс остаётся стабильным и понятным, пользователь получает предсказуемый и комфортный опыт, а сбои отдельных компонентов не приводят к сбоям всей системы. В этой статье речь не будет идти о конкретных примерах реализации повышения отказоустойчивости. Понять то, что нужно подключать сервисы мониторинга ошибок вы можете и без меня. Хорошая отказоустойчивость начинается с мышления. Я хочу, чтобы эта фраза въелась вам в самую подкорку. Важно не просто латать ошибки по мере их появления, а комплексно подходить к решению — формировать правильное понимание, разрабатывать устойчивые подходы и строить систему, способную адекватно реагировать на возможные сбои. Принципы описанные далее универсальные и подойдут к большому количеству сфер, даже вне области информационных технологий. Перейти к 10 принципам

    habr.com/ru/articles/918574/

    #отказоустойчивость #UX #архитектура #ошибки #стабильность #fallback #устойчивость #frontend #error_handling #надежность

  10. [Перевод] Об (отсутствии) синтаксической поддержки обработки ошибок в Go

    Программисты на Go уже давно и долго жалуются на слишком многословную обработку ошибок. Все мы близко (а иногда и болезненно) знакомы со следующим шаблоном кода: x, err := call() if err != nil { // обработка err} Проверка if err != nil встречается настолько часто, что может становиться объёмнее остального кода. Обычно это происходит в программах, выполняющих много вызовов API, в которых обработка ошибок рудиментарна и они просто возвращаются. Некоторые программы в итоге выглядят примерно так: func printSum(a, b string) error { x, err := strconv.Atoi(a) if err != nil { return err } y, err := strconv.Atoi(b) if err != nil { return err } fmt.Println("result:", x + y) return nil } Из десятка строк кода тела этой функции реальную работу выполняют только четыре (вызовы и последние две строки). Остальные шесть строк — это шум. Код слишком многословен, поэтому неудивительно, что жалобы на обработку ошибок уже годами находятся на вершине списков в опросах разработчиков. (Какое-то время жалобы на обработку ошибок обгоняла только досада из-за отсутствия дженериков, но теперь, когда Go поддерживает дженерики, обработка ошибок снова вернулась на первое место.) Команда разработчиков Go воспринимает отзывы сообщества со всей серьёзностью, поэтому мы много лет пытались придумать решение этой проблемы.

    habr.com/ru/articles/915468/

    #обработка_ошибок #синтаксис #error_handling #ошибки

  11. [Перевод] Обработка ошибок и их стратеги

    В мире разработки бизнес-приложений, особенно построенных по принципам Domain-Driven Design (DDD) , важным элементом архитектуры является обработка ошибок. Неправильно реализованная стратегия может привести к логическому хаосу и плохому пользовательскому опыту. Представьте, если ошибка базы данных попадёт напрямую в UI — это не только некрасиво, но и опасно. Слоистая архитектура предполагает чёткое разделение ответственности:

    habr.com/ru/articles/909414/

    #exception #php #error_handling #error_reporting

  12. [Перевод] Обработка ошибок и их стратеги

    В мире разработки бизнес-приложений, особенно построенных по принципам Domain-Driven Design (DDD) , важным элементом архитектуры является обработка ошибок. Неправильно реализованная стратегия может привести к логическому хаосу и плохому пользовательскому опыту. Представьте, если ошибка базы данных попадёт напрямую в UI — это не только некрасиво, но и опасно. Слоистая архитектура предполагает чёткое разделение ответственности:

    habr.com/ru/articles/909414/

    #exception #php #error_handling #error_reporting

  13. [Перевод] Обработка ошибок и их стратеги

    В мире разработки бизнес-приложений, особенно построенных по принципам Domain-Driven Design (DDD) , важным элементом архитектуры является обработка ошибок. Неправильно реализованная стратегия может привести к логическому хаосу и плохому пользовательскому опыту. Представьте, если ошибка базы данных попадёт напрямую в UI — это не только некрасиво, но и опасно. Слоистая архитектура предполагает чёткое разделение ответственности:

    habr.com/ru/articles/909414/

    #exception #php #error_handling #error_reporting

  14. [Перевод] Обработка ошибок и их стратеги

    В мире разработки бизнес-приложений, особенно построенных по принципам Domain-Driven Design (DDD) , важным элементом архитектуры является обработка ошибок. Неправильно реализованная стратегия может привести к логическому хаосу и плохому пользовательскому опыту. Представьте, если ошибка базы данных попадёт напрямую в UI — это не только некрасиво, но и опасно. Слоистая архитектура предполагает чёткое разделение ответственности:

    habr.com/ru/articles/909414/

    #exception #php #error_handling #error_reporting

  15. Прагматичное функциональное программирование в Java

    Прагматичное функциональное программирование в Java при помощи монады XResult<T> , которая сочетает в себе свойства Optional<T> , Result<T> и Either<L,R> Читать далее ...

    habr.com/ru/articles/876736/

    #monad #optional #result #either #error_handling

  16. Прагматичное функциональное программирование в Java

    Прагматичное функциональное программирование в Java при помощи монады XResult<T> , которая сочетает в себе свойства Optional<T> , Result<T> и Either<L,R> Читать далее ...

    habr.com/ru/articles/876736/

    #monad #optional #result #either #error_handling

  17. Прагматичное функциональное программирование в Java

    Прагматичное функциональное программирование в Java при помощи монады XResult<T> , которая сочетает в себе свойства Optional<T> , Result<T> и Either<L,R> Читать далее ...

    habr.com/ru/articles/876736/

    #monad #optional #result #either #error_handling

  18. Прагматичное функциональное программирование в Java

    Прагматичное функциональное программирование в Java при помощи монады XResult<T> , которая сочетает в себе свойства Optional<T> , Result<T> и Either<L,R> Читать далее ...

    habr.com/ru/articles/876736/

    #monad #optional #result #either #error_handling

  19. [Перевод] Полное руководство по обработке ошибок в Python

    Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python — это одна из тех областей, поверхностный уровень которого знает большинство, но многие разработчики даже не догадываются о существовании более глубокого, почти тайного уровня. Если вы хотите протестировать себя по этой теме, то проверьте, сможете ли вы ответить на следующие вопросы: Когда следует перехватывать исключения, генерируемые вызываемыми вами функциями, а когда этого делать не нужно? Как узнать, какие классы исключений нужно перехватывать? Что нужно делать при перехвате исключений для их «обработки»? Почему перехватывание всех исключений считается порочной практикой, и когда делать это приемлемо? Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!

    habr.com/ru/articles/853056/

    #обработка_ошибок #исключения #перехват_ошибок #exceptions #error_handling

  20. [Перевод] Полное руководство по обработке ошибок в Python

    Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python — это одна из тех областей, поверхностный уровень которого знает большинство, но многие разработчики даже не догадываются о существовании более глубокого, почти тайного уровня. Если вы хотите протестировать себя по этой теме, то проверьте, сможете ли вы ответить на следующие вопросы: Когда следует перехватывать исключения, генерируемые вызываемыми вами функциями, а когда этого делать не нужно? Как узнать, какие классы исключений нужно перехватывать? Что нужно делать при перехвате исключений для их «обработки»? Почему перехватывание всех исключений считается порочной практикой, и когда делать это приемлемо? Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!

    habr.com/ru/articles/853056/

    #обработка_ошибок #исключения #перехват_ошибок #exceptions #error_handling

  21. [Перевод] Полное руководство по обработке ошибок в Python

    Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python — это одна из тех областей, поверхностный уровень которого знает большинство, но многие разработчики даже не догадываются о существовании более глубокого, почти тайного уровня. Если вы хотите протестировать себя по этой теме, то проверьте, сможете ли вы ответить на следующие вопросы: Когда следует перехватывать исключения, генерируемые вызываемыми вами функциями, а когда этого делать не нужно? Как узнать, какие классы исключений нужно перехватывать? Что нужно делать при перехвате исключений для их «обработки»? Почему перехватывание всех исключений считается порочной практикой, и когда делать это приемлемо? Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!

    habr.com/ru/articles/853056/

    #обработка_ошибок #исключения #перехват_ошибок #exceptions #error_handling

  22. [Перевод] Полное руководство по обработке ошибок в Python

    Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python — это одна из тех областей, поверхностный уровень которого знает большинство, но многие разработчики даже не догадываются о существовании более глубокого, почти тайного уровня. Если вы хотите протестировать себя по этой теме, то проверьте, сможете ли вы ответить на следующие вопросы: Когда следует перехватывать исключения, генерируемые вызываемыми вами функциями, а когда этого делать не нужно? Как узнать, какие классы исключений нужно перехватывать? Что нужно делать при перехвате исключений для их «обработки»? Почему перехватывание всех исключений считается порочной практикой, и когда делать это приемлемо? Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!

    habr.com/ru/articles/853056/

    #обработка_ошибок #исключения #перехват_ошибок #exceptions #error_handling

  23. 📣 Understanding the 500 HTTP Status Code in Django
    📄 What not to do and, what is available.
    🔗 softwarecrafts.co.uk/100-words
    #100_words,#django,#error_handling