Проектирование — о разделе
Проектирование программных систем
Каждая система имеет свою архитектуру построения; систему нужно разворачивать под нагрузку; нужно понимать обновления и исправление ошибок; рано или поздно — интеграция, безопасность, расширение и поддержка.
Подходы к проектированию
Подход к проектированию — это стратегия, которая определяет, откуда начинается работа над системой и в каком порядке формируются её компоненты.
Принципы проектирования
Принципы — это критерии оценки. Они позволяют задать вопрос — Если бы мы сделали иначе, что пошло бы не так через год? Хороший код сегодня — это рабочий код и тот, который можно безопасно изменить…
Проектирование сервисов и методов
В современной практике термин сервис используется в нескольких значениях — Микросервис — автономное приложение со своей БД, жизненным циклом и API, Domain-сервис — класс в доменном слое, реализующий…
Проектирование функциональных UI
Любое действие пользователя — это запрос на изменение состояния, а не прямая команда.
Проектирование под нефункциональные требования
Функциональные требования отвечают на вопрос что система делает? (Пользователь может оформить заказ).
Документация как инструмент проектирования
Традиционный подход — Команда проектирует систему, Пишет код, По завершении — создаёт документацию для сдачи заказчику или архивирования
Проектирование баз данных
Проектирование баз данных — это системная инженерная дисциплина, направленная на создание структуры хранения данных, которая обеспечивает корректность, целостность, производительность, расширяемость…
Проектирование API и интеграций
Современные программные системы редко существуют изолированно.
Паттерны микросервисной архитектуры
Переходите к изучению этой статьи только после того, как изучите микросервисы.
Проектирование веб-разработки
Переходите к изучению этой статьи только после того, как изучите микросервисы.
Проектирование распределенных систем
Распределённые системы представляют собой совокупность независимых вычислительных узлов, которые взаимодействуют между собой через сеть для достижения общей цели.
Хранилища DWH и ETL-процессы
Современные организации ежедневно генерируют огромные объёмы информации.
Лестница проектирования систем
Мы рассмотрим проектирование как лестничную концепцию, где каждая ступень этой лестницы представляет собой уровень зрелости, глубины понимания и практического опыта.
Вертикальное масштабирование
Вертикальное масштабирование — это подход к увеличению вычислительной мощности информационной системы за счёт улучшения характеристик одного физического или виртуального узла.
Горизонтальное масштабирование
Горизонтальное масштабирование — это стратегия расширения вычислительных ресурсов системы за счёт добавления дополнительных узлов, таких как физические серверы, виртуальные машины или контейнеры.
Горизонтальное дублирование
Горизонтальное дублирование — это повторение одинаковых или схожих фрагментов кода в пределах одного уровня абстракции, чаще всего внутри одного модуля, класса или набора функций, решающих близкие по…
Competing Consumer Pattern
Competing Consumer Pattern — это архитектурный подход к организации обработки сообщений в распределённых системах.
Read Replicas
Реплика — это точная копия данных из исходной базы данных. Она воспроизводит содержимое основного хранилища на определённый момент времени или с минимальной задержкой относительно текущего состояния.
Shared Nothing Architecture
Shared Nothing Architecture — это подход к построению распределённых вычислительных систем, в котором каждый узел функционирует полностью автономно.
Shared Storage Architecture
Shared Storage Architecture — это подход к организации хранения данных, при котором несколько вычислительных узлов или систем одновременно получают доступ к одному и тому же пулу хранилища.
Single Node architecture
Single Node architecture — это модель построения программных систем, в которой вся логика приложения, все вычислительные задачи, хранение данных и обработка запросов сосредоточены на одном физическом…
Уровни развития API и модель Ричардсона
Интерфейсы программирования приложений (API) служат мостом между различными компонентами программного обеспечения, позволяя им взаимодействовать друг с другом.
Модельная архитектура микросервисов
Микросервисная архитектура представляет собой подход к проектированию программных систем, при котором приложение строится как набор небольших, автономных сервисов.
Стратегии совместного использования кода в микросервисах
Микросервисная архитектура предполагает разбиение монолитного приложения на множество независимых, слабо связанных компонентов, каждый из которых отвечает за конкретную бизнес-функцию.
CQRS
Command Query Responsibility Segregation — это архитектурный паттерн, разделяющий операции чтения данных и операции изменения состояния системы.
Event Sourcing
Event Sourcing — это архитектурный паттерн, в котором состояние системы определяется не текущими значениями данных, а последовательностью событий, которые привели к этому состоянию.
Saga
Современные программные системы всё чаще строятся как набор независимых, слабо связанных сервисов — микросервисов.
Strangler Fig
Название Strangler Fig (инжир-душитель) происходит из биологии. В тропических лесах некоторые виды фикусов начинают свой рост как эпифиты на других деревьях.
Модульный монолит
Модульный монолит представляет собой архитектурный подход к построению программных систем, в котором приложение разрабатывается и развертывается как единое целое, но внутри своей структуры…
Событийно-ориентированная архитектура
Событийно-ориентированная архитектура представляет собой подход к проектированию программных систем, в котором компоненты взаимодействуют между собой посредством обмена событиями.
Сервисно-ориентированная архитектура
Сервисно-ориентированная архитектура — это подход к проектированию программных систем, в котором приложение строится как совокупность слабосвязанных, автономных компонентов, называемых сервисами.
Пространственная архитектура
Пространственная архитектура — это подход к проектированию распределённых систем, в котором основной акцент делается на масштабируемости, отказоустойчивости и высокой производительности за счёт…
Методы и ключ идемпотентности
Идемпотентность — одно из фундаментальных свойств в проектировании программных систем, особенно в распределённых средах, сетевых протоколах и архитектуре приложений.
Архитектура конвейера
Конвейер — это архитектурный паттерн организации вычислений, при котором обработка данных разбивается на последовательные этапы.
Одноранговая архитектура
Одноранговая архитектура, или P2P (peer-to-peer), представляет собой модель организации взаимодействия между участниками компьютерной сети, в которой каждый узел одновременно выступает как клиент и…
Чистая архитектура
Чистая архитектура — это подход к проектированию программного обеспечения, направленный на достижение максимальной независимости от внешних деталей реализации.
Многоуровневая архитектура
Многоуровневая архитектура — это подход к проектированию программных систем, при котором функциональность распределяется по нескольким логическим уровням, каждый из которых отвечает за определённый…
Надежность и доступность
Надежность и доступность — два фундаментальных понятия в проектировании, эксплуатации и оценке технических систем.
Уровни SLA и реальное время простоя
SLA — это соглашение об уровне обслуживания. Это формальный документ, в котором фиксируются обязательства поставщика услуг перед клиентом.
Инженерия устойчивости
Инженерия устойчивости — это дисциплина, направленная на проектирование, построение и сопровождение систем, способных сохранять работоспособность в условиях частичных сбоев, внешних нагрузок и…
Масштабирование чтения и записи в веб-приложении
Масштабирование — это процесс адаптации архитектуры и инфраструктуры веб-приложения к растущей нагрузке.
Стратегии работы с базами данных при разных нагрузках
Работа с базами данных — это центральный элемент большинства современных программных систем.
Проектирование — о разделе
Подборка материалов раздела Проектирование в энциклопедии Вселенная IT