This media is not supported in your browser
VIEW IN TELEGRAM
БАЗА ЗНАНИЙ по системному анализу 🧠
Все посты из канала за всё время разложены по полочкам в едином месте — базе знаний 🤓
Наша цель — сделать кладезь знаний системного аналитика 🧠
Какие плюшки вас ждут:
🗂 Все знания в едином месте: кратко, ёмко, без воды и с подборками полезных материалов 🔥
🔎 Удобный поиск и навигация: все наши конспекты структурированы по группам навыков СА и есть поиск по тексту — вы не утоните в тоннах воды и часах гуглинга
🆕 Всегда актуально: мы регулярно добавляем новые материалы и улучшаем базу, при этом стараемся обновлять уже опубликованный контент
📝 Контент на заказ бесплатно: хотите материал на конкретную тему? Любой покупатель может оставить запрос, и мы сделаем обзор с исчерпывающей подборкой материалов абсолютно бесплатно!
➡️ Приобрести вечный доступ к постоянно обновляемой Базе знаний по цене айтишниой книги можно тут: analitik.me — всего 4900 ₽
❗️ После успешной оплаты нажмите кнопку Вернуться в магазин, чтобы получить ссылку на закрытый канал (он нужен для авторизации). Если случайно закрыли, ссылка придёт вам на почту.
Если нет карты РФ и по любым другим вопросам можно писать сюда: @radale
P.S. каналы @sys_sa и @lib_analyst продолжают работу в прежнем формате
Все посты из канала за всё время разложены по полочкам в едином месте — базе знаний 🤓
Наша цель — сделать кладезь знаний системного аналитика 🧠
Какие плюшки вас ждут:
🗂 Все знания в едином месте: кратко, ёмко, без воды и с подборками полезных материалов 🔥
📝 Контент на заказ бесплатно: хотите материал на конкретную тему? Любой покупатель может оставить запрос, и мы сделаем обзор с исчерпывающей подборкой материалов абсолютно бесплатно!
Если нет карты РФ и по любым другим вопросам можно писать сюда: @radale
P.S. каналы @sys_sa и @lib_analyst продолжают работу в прежнем формате
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥42❤23👍19⚡3
В распределённой системем различные компоненты работают вместе, при этом физически разнесены
Характеристики
Виды
Примеры архитектурных стилей распределённых систем
Напомним, архитектурный стиль — общий принцип, а паттерн — конкретная реализация этого принципа
Примеры архитектурных паттернов
Недостатки распределенных систем
Связь с CAP-теоремой
CAP-теорема относится только к распределённым системам.
Утверждает, что система может одновременно гарантировать только две из трёх характеристик:
1. Лекция 1: Введение в распределенные системы
2. Централизованные vs децентрализованные vs распределенные системы
3. Основы Распределенных Систем
4. Консистентность и ACID-гарантии в распределенных системах хранения данных
5. Топ-5 архитектурных паттернов для распределённых систем
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
❤37👍16🔥6⚡2
Напомним, нормализация — организация данных в таблицах БД так, чтобы:
Процесс нормализации
Таблицы делятся на мелкие, связанные по смыслу, а между ними создаются связи.
Происходит шаг за шагом. В результате БД приводится к нормальным формам (NF)
Нормальные формы (NF) – требование к структуре таблиц реляционных БД
NF выше третьей нужны для устранения более сложных зависимостей
Требования:
Пример:
частичные зависимости разделяются на новые таблицы.
(т.е. устранение транзитивных зависимостей: когда второй атрибут зависит от первого, а третий - от второго)
"почтовый индекс" зависит от "города", а не от товара.
Предотвращает аномалии при соединении данных из множества таблиц.
редко используется, дальнейший шаг нормализации для поддержки временных данных и их зависимостей
1. Нормализация отношений. Шесть нормальных форм
2. Как привести данные в форму: что такое нормализация и зачем она нужна
3. Нормализация и нормальные формы (описание 1-6 NF)
4. Нормализация СУБД: пример базы данных 1NF, 2NF, 3NF
5. Первая НФ (1NF) базы данных
6. Вторая НФ (2NF) базы данных
7. Нормальные формы: третья и Бойса-Кодда
8. Четвертая НФ (4NF) базы данных
9. Пятая НФ (5NF)
10. Шестая НФ (6NF) базы данных
📚Книги
1. Технологии проектирования баз данных -- Дмитрий Осипов (Глава 6-7)
2. Основы технологий баз данных — Новиков Б. А. / Б. А. Новиков, Е. А. Горшкова, Н. Г. Графеева; под ред. Е. В. Рогова
3. Основы баз данных — Кузнецов (Лекции 7-9)
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55❤22🔥22🤔1
Рассмотрим еще один способ интеграции, менее популярый: интеграция через общую БД
Этот подход имеет свои преимущества, но не всегда является лучшим выбором из-за сложностей с согласованностью данных и производительностью
При интеграции через общую БД несколько систем используют одну и ту же БД для обмена данными
Принцип работы
Особенности
Чтобы избежать используются механизмы синхронизации транзакций
Способы интеграции
Например, ODBC/JDBC-драйверы.
Работают как посредники между приложением и БД.
Принимают запросы от приложения, преобразуют их в SQL-команды для БД, выполняют запросы и возвращают результат
Приложения взаимодействуют с БД через REST или SOAP API
Отправляют HTTP-запросы, которые преобразуются в SQL-запросы внутри базы
Прямое подключение через SQL-запросы: приложение отправляет SQL-команды напрямую в базу данных по сети (например, через TCP/IP), без использования посредников.
Используются драйверы для установления связи с БД по сети (например, TCP/IP), затем приложение отправляет SQL-запросы напрямую
В обоих случаях идет работа с БД напрямую.
Но сетевые драйверы (например, для PostgreSQL или MySQL) обеспечивают управление сетевым соединением
Создаются виртуальные таблицы (представления), которые объединяют данные из нескольких таблиц.
Когда использовать общую БД
Пример работы
В компании несколько систем: интернет-магазин, система управления складом и бухгалтерия
Все системы работают с одной БД, не нужно синхронизировать данных между ними, данные актуальны во всех системах
Недостатки
1. Основы интеграции информационных систем
2. Архитектура приложений и интеграций: гайд по основным понятиям простыми словами
3. Современные стандарты информационного взаимодействия систем
4. Простой пример JDBC для начинающих
5. Две альтернативы JDBC
6. PostgreSQL и JDBC выжимаем все соки
7. Доктор, у меня легаси: лечим устаревшие ИТ-системы
8. Legacy-системы
9. Общая информация о ODBC и Connector/ODBC
10. Почему интеграционная бд это отстой
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33❤18👍16
ER-диаграмма (Entity-Relationship Diagram, ERD) — диаграмма "сущность-связь", которая применяется для:
Состоит из элементов
Типы связей между сущностями
Пример ERD для интернет-магазина
— пользователь: ID, имя, email
— заказ: ID заказа, дата, сумма
— товар: ID товара, название, цена
— пользователь делает заказ (один пользователь может сделать много заказов — связь "один ко многим")
— заказ содержит товары (один заказ может включать много товаров — связь "многие ко многим")
Уровни ER-диаграмм
ER-диаграммы делятся на 3 уровня в зависимости от уровня детализации
Показывает, какие сущности и связи существуют
Детализирует модель, но не привязан к конкретной СУБД
Нотации ERD
ER-диаграмма — визуальная модель или схема,
а нотации — методы, с помощью которых она строится
Отличия от других инструментов
Нужны для моделирования объектов и их поведения в объектно-ориентированном программировании, а не для реляционных БД
Моделируют бизнес-процессы и последовательность действий, а не данные
1. Сущности и связи: как и для чего системные аналитики создают ER‑диаграммы
2. Что такое ER-диаграмма и как ее создать?
3. Проектирование ER-диаграммы
4. Что выбрать для проектирования БД: сравнение UML-диаграммы классов и ER-диаграммы
5. Модель диаграммы Entity Relations (ER) с примером СУБД
#проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57👍24❤9😁1
Ранее описывали процесс кэширования
Рассмотрим подходы к работе с кэшем
Стратегии чтения данных
Обновление кэша: обновляется только после запроса данных из БД
Пользователь запрашивает карточку товара: приложение сначала проверяет кэш.
Если информации нет, данные запрашиваются из базы и сохраняются в кэш
Обновление кэша: автоматически при отсутствии данных в нём, во время запроса из БД
Если статьи нет, кэш автоматически получает её из БД, обновляет кэш и передаёт статью пользователю
Стратегии записи данных
Обновление кэша: приложение запрашивает данные из БД. Получает и записывает их в кэш
Кэш обновляется только при последующем чтении. Изменения редки и не требуют моментальной синхронизации с кэшем
Обновление кэша: кэш и БД всегда синхронизированы, так как данные записываются одновременно в в БД и в кэш
При запросах транзакции всегда можно получить актуальные данные как из кэша, так и из базы
Обновление кэша: данные в кэше актуальные, но БД обновляется позже, асинхронно
Кэш откладывает запись в БД на попозже для асинхрона.
Помогает быстро сохранить изменения пользователя без задержек, хотя БД обновляется с задержкой
Хранение кэша
Кэш в архитектуре приложения обычно хранится в памяти, либо на выделенных серверах для кэширования. Их располагают ближе к приложению для быстрой обработки запросов.
Например,
1. [По полочкам] Кэширование
2. SE: Проектирование эффективной системы кэширования
3. Стратегия кеширования в приложении
4. Все о кэшировании: стратегии, проблемы и оптимизация
5. Все о кэшировании и кэшах
6. Основные принципы кэширования веб-приложений
7. Проектирование эффективной системы кэширования для высоконагруженной системы
8. Cache-aside паттерн
9. Введение в кэширование со сквозным чтением с помощью NCache
10. Продуманные запросы: стратегии кэширования в век PWA
#проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍11🔥6😁1
Server-Sent Events (SSE) — технология, при которой сервер отправляет клиенту обновления по мере их появления.
Клиенту не нужно отправлять повторяющиеся запросы
Соединение одностороннее: от сервера к клиенту
Как работает
Где применяется
Когда сервер должен регулярно обновлять информацию на веб-странице.
Например:
Пример работы SSE для мониторинга системы
Плюсы и минусы
1. Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling
2. Подписки на GraphQL: Почему мы используем SSE/Fetch вместо Websockets
3. Вам посылка, или Как мы доставляем сообщения с сервера на клиент в реальном времени
4. Server-Sent Events: пример использования
5. Потоковое обновление с событиями, отправленными сервером
6. Server Sent Events
7. WebSockets vs SSE: особенности и сценарии использования
📚Книги
1. Сергей Константинов. API
2. Джей Гивакс. Паттерны проектирования API
3. Арно Лоре. Проектирование веб-API
#api #интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤11👍11
SOLID — набор принципов проектирования объектно-ориентированных систем.
Помогает создавать гибкую, поддерживаемую и масштабируемую архитектуру.
Нужны для улучшения структуры и качества кода.
SOLID и ООП: в чём разница?
ООП даёт инструменты, а SOLID помогает применять их эффективно.
Принципы SOLID
Каждый класс должен решать одну задачу
делай модули меньшеКласс должен быть открыт для расширений, но закрыт для изменений
делай модули расширяемыми и полиморфизм - способность объектов разных типов использовать общий интерфейс для выполнения различных действий
Подклассы должны заменять родительские классы без ошибок
наследуйся правильноУзкие специализированные интерфейсы лучше, чем один общий
дроби интерфейсыМодули должны зависеть от абстракций, а не от конкретных реализаций
используй интерфейсыи полиморфизма для уменьшения зависимости между модулями
Зачем аналитику SOLID?
1. Принципы SOLID в программировании — что это такое
2. SOLID
3. Простое объяснение принципов SOLID
4. SOLID принципы: что это такое и зачем они нужны?
5. SOLID — это несложно. С примерами на Python
6. SOLID == ООП?
📚Книги
1. Чистая архитектура — Роберт Мартин
2. Объектно-ориентированный анализ и проектирование с примерами приложений - Грэди Буч
3. Объектно-ориентированное мышление - Мэтт Вайсфельд
4. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Хелм Ричард, Влиссидес Джон
#проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍11❤9
Сравнение способов асинхронного взаимодействия API
🧑🎓 Описание каждого метода и материалы можно найти в базе знаний по системному анализу
#интеграции #async
#интеграции #async
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48👍16❤11
MOM/MQ — не шины данных, но могут быть частью решения, основанного на шине
ESB (Enterprise Service Bus)
Как работает
1. приложение отправляет данные на ESB через адаптер (например, для БД или веб-сервиса)
2. ESB преобразует формат данных, если требуется
3. шина маршрутизирует сообщение в нужное приложение
4. получатель получает сообщение и обрабатывает его
Шина данных считается устаревшим видом интеграции:
Пример: Apache Camel, MuleSoft
MOM (Message-Oriented Middleware)
Как работает
1. приложение отправляет сообщение посреднику (MOM)
2. посредник сохраняет сообщение в буфере до тех пор, пока приложение-получатель не будет готово его принять
3. получатель обрабатывает сообщение, когда готов
4. MOM удаляет сообщение из буфера только после его успешной доставки
Пример: ActiveMQ, RabbitMQ - поддерживают и очереди, и другие модели, такие как Pub/Sub
MQ (Message Queue)
Пример: IBM MQ
1. От хаоса к порядку: как легко интегрировать сервисы с помощью Enterprise Service Bus
2. Шины данных (ESB): зачем компаниям использовать этот инструмент
3. Почему технари против шин данных: middleware, ESB, брокеров сообщений?
4. Как я 10 лет строю интеграцию в банке: от ESB-монолита к целой линейке систем
5. Уже поменяли шину? Наш опыт «переобувания» и разработки интеграционной платформы
6. ESB интеграция: объяснение и цель
7. Что такое MQ? Основные понятия
8. Интеграция на основе сообщений. Преимущества и отличия от других подходов
9. Кафка это шина? API, MQ, шины/ESB. Неочевидные минусы подходов и их плюсы
#проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤11🔥6🤣3
Media is too big
VIEW IN TELEGRAM
Все посты из канала за всё время разложены по полочкам в едином месте — базе знаний 🤓
Наша цель — сделать кладезь знаний системного аналитика 🧠
Какие плюшки вас ждут:
🗂 Все знания в едином месте: кратко, ёмко, без воды и с подборками полезных материалов 🔥
📝 Контент на заказ бесплатно: хотите материал на конкретную тему? Любой покупатель может оставить запрос, и мы сделаем обзор с исчерпывающей подборкой материалов абсолютно бесплатно!
На analitik.me можно узнать про Базу знаний больше.
P.S. Если нет карты РФ и по любым другим вопросам можно писать сюда: @radale
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤12⚡5😁5👍4
Архитектурные паттерны — шаблоны для высокоуровневой организации системы.
Определяют основные компоненты системы, их взаимосвязи и взаимодействия
Паттерны MV(X) используются в
MV(X) — семейство паттернов со схожей структурой
Разделяют приложения на основные компоненты:
тем проще управлять проектом, добавлять и тестировать компоненты
Рассмотрим некоторые из них:
MVC (Model-View-Controller)
Controller: логика, которая связывает model и view
Подходит для небольших / средних приложений
Чем проще Controller, тем лучше
Пример
В веб-приложении для управления библиотекой:
Недостатки
MVP (Model-View-Presenter)
Presenter: полностью управляет логикой view
Отличие от MVC: связь view и model идет через presenter, а не напрямую
Эффективен в приложениях с высокой нагрузкой на UI,
и где необходимы модульные тесты, т.к. Presenter можно тестировать
Пример
В Android-приложении для управления задачами:
Недостатки
MVVM (Model-View-ViewModel)
View взаимодействует с ViewModel через привязку данных
ViewModel
Эффективен для приложений со сложными структурой данных и интерфейсом
Пример
В WPF-приложении для управления контактами:
Недостатки
1. MVC
2. Достоинства использования MVC архитектуры в разработке клиент-серверного интернет-магазина
3. Что такое MVP архитектура
4. Реализация MVC паттерна на примере создания сайта-визитки на PHP
4. MVC против MVVM — разница между ними
5. Понимание различий: MVC и MVVM
6. Шпаргалка по MV-паттернам для проектирования веб-приложений
7. Архитектурные шаблоны: объяснение MVC, MVP и MVVM
8. Паттерны для новичков: MVC vs MVP vs MVVM
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤8👍6⚡1
Kafka поддерживает транзакции, чтобы гарантировать выполнение операций по принципу «всё или ничего»
Такая гарантия доставки называется exactly-once
Подробнее о других типах гарантии доставки тут
Когда применяется
Как работают транзакции в Kafka
transactional.id. Это идентификатор, который отличает записи транзакцийКоммит фиксирует сообщения, и они становятся видимы потребителям, в противном случае -- откатываются
ACID в Kafka
read_committed (на стороне консьюмера) потребители могут видеть только зафиксированные данные, пока транзакция не завершенаПлюсы и минусы
Пример транзакции в Kafka
Система обработки заказов. Нужно записать информацию сразу в несколько топиков для сгласованности данных
Есть два топика в Kafka:
— orders: хранит общую информацию о заказе
— inventory: содержит информацию об изменении запасов после заказа
Шаги для транзакции:
Результат: транзакция гарантирует, что потребители прочтут согласованные данные
1. Изоляция транзакций в Apache Kafka при потреблении сообщений
2. Семантика exactly-once в Apache Kafka
3. Транзакции в Apache Kafka: атомарность публикации сообщений
4. Что такое гарантия доставки сообщений или как избавиться от дублей и потерь в Apache Kafka и других Big Data брокерах
📚 Книги
1. Kafka в действии -- Дилан Скотт, Виктор Гамов и Дейв Клейн
2. Apache Kafka. Потоковая обработка и анализ данных -- Гвен Шапира, Тодд Палино, Раджини Сиварам, Крит Петти
3. Effective Kafka: A Hands-On Guide to Building Robust and Scalable Event-Driven Applications with Code Examples in Java -- Emil Koutanov (англ)
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍14❤10⚡3😁2