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

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

https://habr.com/ru/articles/918574/

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

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

Отказоустойчивость (англ. resilience , fault tolerance ) — это способность системы продолжать работу, несмотря на внутренние ошибки, сбои в зависимостях или непредвиденные...

Хабр

[Перевод] Об (отсутствии) синтаксической поддержки обработки ошибок в 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 воспринимает отзывы сообщества со всей серьёзностью, поэтому мы много лет пытались придумать решение этой проблемы.

https://habr.com/ru/articles/915468/

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

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

Программисты на Go уже давно и долго жалуются на слишком многословную обработку ошибок. Все мы близко (а иногда и болезненно) знакомы со следующим шаблоном кода: x, err := call() if err != nil { //...

Хабр
Why Use Structured Errors in Rust Applications?

Going against the common wisdom of “using anyhow for applications”.

Dmitrii Aleksandrov

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

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

https://habr.com/ru/articles/909414/

#exception #php #error_handling #error_reporting

Обработка ошибок и их стратеги

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

Хабр
How to Resolve "RenderFlex children have non-zero flex but incoming width constraints are unbounded" in Flutter - Yet Another Programmer's Blog

If you are working with Flutter layouts and encounter the error: > RenderFlex children have non-zero flex but incoming width constraints are unbounded. Don’t worry—this is a common […]

Yet Another Programmer's Blog

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

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

https://habr.com/ru/articles/876736/

#monad #optional #result #either #error_handling

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

Мотивация Поводом к написанию этой статьи стал "Pragmatic FP" манифест в котором автор утверждает что прагматичное функциональное программирование (далее FP) требует использования всего двух монад -...

Хабр

#RustLang #programming #error_handling #codingtips
🚀 Rustaceans! Let's Talk About the ? Operator! 🚀

Did you know the `?` operator in Rust can simplify your error handling? It automatically propagates errors, making your code cleaner and more readable!

Have you used the `?` operator in your Rust projects? Share your experiences and tips below! 👇

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

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

https://habr.com/ru/articles/853056/

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

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

Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python —...

Хабр
📣 Understanding the 500 HTTP Status Code in Django
📄 What not to do and, what is available.
🔗 https://softwarecrafts.co.uk/100-words/day-153
#100_words,#django,#error_handling
Understanding the 500 HTTP Status Code in Django - Software Crafts

What not to do and, what is available.

Towards Error Handling in a DSL for Robot Assembly Tasks
(2014) : Laursen, Johan S. et al
DOI: https://doi.org/10.48550/ARXIV.1412.4538
#robotics #error_handling #DSL #my_bibtex
Towards Error Handling in a DSL for Robot Assembly Tasks

This work-in-progress paper presents our work with a domain specific language (DSL) for tackling the issue of programming robots for small-sized batch production. We observe that as the complexity of assembly increases so does the likelihood of errors, and these errors need to be addressed. Nevertheless, it is essential that programming and setting up the assembly remains fast, allows quick changeovers, easy adjustments and reconfigurations. In this paper we present an initial design and implementation of extending an existing DSL for assembly operations with error specification, error handling and advanced move commands incorporating error tolerance. The DSL is used as part of a framework that aims at tackling uncertainties through a probabilistic approach.

arXiv.org