Рубрика «проектирование систем» - 3

В FlightAware ПО должно изящно обрабатывать все виды странных и удивительных ситуаций, которые возникают в мире авиации. Пока мы, программисты, надеемся, что все данные, связанные с этим миром, хорошо структурированы и чисты, в нем властвует хаос.

Во время проектирования типов данных и схем для мира авиации можно сделать много предположений, которые на самом деле оказываются неверными. Точно так же, как когда‑то Патрик Маккензи написал «Заблуждения программистов об именах»Читать полностью »

Историю можно начать с 1994 года, в котором Мартин Уорд (Martin Ward) на основании исследования больших проектов предложил парадигму языково-ориентированного программированияЧитать полностью »

Что такое BraiLex?

BraiLex — это мобильная аппаратная клавиатура, которая позволяет вводить текст с использованием шрифта Брайля, сохраняя его в памяти, или передавать на телефон в любое открытое приложение. 

BraiLex можно использовать для ввода текста без фиксированного основания даже во время ходьбы.

Эта серия статей рассказывает об идее создания такого устройства и этапах ее реализации от первого чертежа до прототипа к которому мы сейчас подошли.

(По состоянию на 11 июня 2025 года).

Историческая справка

Читать полностью »

Предисловие

На Хабре есть много статей, часть из которых, как мне показалось, относится к обзорным, а часть к детальным реализациям. Первый вид чаще характеризуется словосочетанием «на подумать», второй — представляет собой статью‑справку. Данная статья больше относится к первому виду.

Читать полностью »

Предисловие

Цель этой статьи — объединить и кратко изложить все базовые архитектурные подходы: их терминологию, концепции и отличительные черты. Собрать всё воедино, чтобы можно было относительно быстро вникнуть в основы.

Я решил написать серию статей, посвящённых различным аспектам проектирования программных систем, но первоначальной идеей было показать архитектурное решение моего pet-проекта на FastAPI — пример реализации «чистой архитектуры» с использованием современного стека: Python3.13, FastAPI, Uvicorn, Nginx, PostgreSQL, Alembic, Celery, Redis, Pytest, Filebeat, Logstash, Elasticsearch, Kibana, Prometheus, Grafana, Docker и Docker Compose.

Читать полностью »

Эту статью я написала для себя, но, возможно, она будет полезна тем, кто изучает BPMN.

«Не сформулировав то, что вы хотите сказать, не беритесь за карандаш»

Джин Желязны, «Говори на языке диаграмм»

BPMN – нотация, предназначенная для моделирования бизнес-процессов. В ней нет эталонного и единственно правильного способа смоделировать процесс. Вариантов описания много. При этом описываемые процессы будут с разными уровнями оптимальности и глубины.

Нотация Читать полностью »

Несколько лет назад я начал всё больше разбираться в том, как проектируются большие и сложные IT-системы. Ещё и такие, которые выдерживают огромные нагрузки: обрабатывают запросы миллионов пользователей каждый день, гоняют петабайты данных ежемесячно и всё такое. YouTube, TikTok, Google Docs и т.п.

А в последнее время и по работе чаще стало необходимо погружаться в архитектурные обсуждения. Интересно ещё и то, что в крупных IT-компаниях всё чаще наблюдается тренд на проведение так называемых System Design Interview. Это по сути архитектурное собеседование для специалистов с серьёзным уровнем.

Читать полностью »

Сегодня в очередной раз наткнулся на вакансию старшего инженера - схемотехника в Яндекс. Решил, что это знак и настало время разобрать их тестовое задание. Звучит оно следующим образом:

Есть:
Сенсор температуры на основе Pt1000, где Rt = 1000 Ом при 0 °С, Rt = 1385 Ом при 100 °С. АЦП с входным диапазоном 0–3 В и эквивалентным входным сопротивлением не более 10 кОм.
Требуется:
Читать полностью »

Декомпозиция фич и их приоритезация — это обязательные этапы проектирования продукта. USM – инструмент, который нам в этом помогает. С ним получается работать над продуктом, опираясь на реальные  потребности пользователей и цели бизнеса. Как итог – строим разработку так, чтобы каждая функция, которую создает команда, приносила максимальную пользу. Возможно, вся эта работа покажется простой и быстрой, но чтобы создать продукт, нужный бизнесу и клиентам, имеет смысл выстроить систему и подход, универсальные с точки зрения применения и гибкие с точки зрения адаптации под конкретный запрос. 

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js