Welcome to software-engineering.ru

Синхронизация в распределенных системах. Часть 1: Основные задачи

В распределённых системах, как правило, возникает необходимость синхронизации данных между компонентами. Сетевые взаимодействия подвержены сбоям. Если сообщение доставлено и корректно обработано — возникает рассинхронизация. Основные задачи: Доставка сообщений. Для обеспечения доставки в первую очередь необходимо обеспечить канал передачи Подтверждение получения. Важно понимать, действительно ли получатель принял сообщение. Для этого необходимо подтверждение. Компоненты могут расходиться в… read more »

Кэширование. Часть 3 — Отказы кэша

1. Грациозное деградирование 2. Тайм-ауты и повторы 3. Изоляция и разделение кэша 4. Мониторинг и алерты 5. Тестирование отказоустойчивости

Кэширование. Часть 2 — Виды кэшей и системы кэширования

Системы кэширования Внутрипроцессный кэш: Внутрипроцессный кэш — это тип кэша, который находится внутри самого приложения. Он обеспечивает высокую производительность чтения и записи при нулевых сетевых затратах. Однако его объем ограничен объемом памяти, и кэшированные данные теряются при перезапуске процесса. Внутрипроцессный кэш может быть реализован в виде библиотеки, такой как Google Guava Cache. Межпроцессный кэш Межпроцессный… read more »

Кэширование. Часть 1 — Основы кэширования

Кэширование — это комплекс техник, направленных на сокращение времени доступа к данным за счет выбора более эффективного, по сравнению с исходным хранилищем, способа получения копий этих данных. Кэширование применяется с целью повышения производительности, доступности, надежности, оптимизации использования ресурсов системы и удовлетворения других требований, однако, при этом влечет и риски увеличения затрат на всех этапах жизненного… read more »

Требования

Требование к программному обеспечению — это условие или способность, необходимые пользователю для решения проблемы или достижения цели. Однако третьи стороны, такие как регулирующие органы, организация, занимающаяся разработкой программного обеспечения, или сам проект, также могут предъявлять требования. Важно правильно определять требования, невыявленные или неверно выявленные требования могут привести к масштабным исправлениям в будущем. Основные проблемы —… read more »

Программная инженерия

Различные словари (напр., SEVOCAB) и Википедия дают довольно сложное определение программной инженерии[1], поэтому немного упростим его. Программная инженерия — применение научных, инженерных и других подходов и знаний ко всем аспектам создания программного обеспечения. Области знаний программной инженерии С моей точки зрения лучше всего для определения структуры программной инженерии подходит SWEBOK (Software Engineering Body of Knowledge)… read more »

Наука и инженерия в ИТ

Представление о роли инженерии и науки в ИТ помогает инженеру выстроить карту знаний, определить свой уровень и расти осознанно, выбирая направление развития. Приведем некоторые определения: Наука — деятельность, направленная на выработку и систематизацию объективных знаний о действительности[1], т.е. на объективное описание реальности. Науки бывают фундаментальными и прикладными. В современной России науки также классифицируют на 4… read more »

Проектирование систем

Введение Крупные технологические компании все чаще включают интервью по проектированию информационных систем (System Design) как один из этапов собеседований. Обычно не ожидается, что кандидат успеет спроектировать полноценную систему, но важен сам процесс проектирования, он позволяет продемонстрировать вам свои навыки инженера, обосновать выбор архитектурных решений и ответить на вопросы интервьюера. Каково же место system design в… read more »

DRY

Don’t Repeat Youself

Поддерживаемый код

Контекст Ошибки в коде могут привести к финансовым потерям, катастрофам и даже человеческим жертвам. Из-за ошибок в программном обеспечении без связи остались миллионы абонентов компании AT&T, произошла авария ракеты-носителя «Ариан-5», люди получили повышенные дозы облучения, а финансовая организация Knight Capital Group потеряла 440 миллионов долларов за 45 минут. И это лишь несколько прецедентов, по некоторым… read more »

Sidebar