🌲Подборка наших постов за💚 💚 💚 💚
Управление требованиями
🔘 Методы трассировки требований
🔘 Критерии приемки (Acceptance Criteria): краткий обзор
🔘 Постановка задачи на разработку: этапы, отличие от ТЗ
🔘 Customer Journey Map (CJM)
🔘 User Story vs Job Story
Работа с API
🔵 Версионирование REST API
🔵 Обеспечение идемпотентности API
🔵 Способы асинхронного взаимодействия в API
🔵 Работа со списками данных в REST API: сортировка, фильтрация, пагинация
🔵 Знакомство со Swagger
🔵 Производительность API: краткий обзор способов
Архитектура и проектирование
💩 Обзор популярных нотаций моделирования
💩 Способы обеспечения работы высоконагруженных систем
💩 Паттерны проектирования и архитектурные паттерны
💩 Event Driven Architecture: краткий обзор
💩 Service Mesh
💩 TOGAF. Краткий обзор
💩 Паттерны асинхрона: Request-Reply, Publish-Subscribe, Point-to-Point
💩 Антипаттерны проектирования ПО
💩 Интеграция через файловый обмен
Базы данных и хранилища
💩 Масштабирование БД. Партиционирование, шардирование и репликация
💩 Шпаргалка по SQL
💩 Требования ACID: Краткий обзор
💩 Уровни изоляции транзакций в базах данных
💩 Изолированность транзакций в БД: MVCC, блокировки
💩 Хранимые процедуры и пользовательские функции в БД
💩 Денормализация в БД и не только
💩 Оконные функции
💩 Колоночные БД, Cassandra vs PostreSQL
💩 Data Warehouse (DWH)
💩 OLTP и OLAP
💩 ETL и ELT
Авторизация и безопасность
💩 OAuth 2.0 и OpenID Connect
💩 Инфраструктура открытых ключей (PKI) : краткий обзор
💩 Хэширование и Шифрование
💩 Кибератаки и их виды
Инструменты
🔵 Camunda
🔵 Grafana: Обзор и возможности
🔵 Apache Kafka
Расширение IT-кругозора
◾️ Как работает интернет
◾️ Kanban vs Scrum: сравнение методологий
◾️ Модель TCP/IP: Краткий обзор и сравнение с OSI
◾️ Git. Обзор и подборка материалов
◾️ Основы ООП
◾️ CI/CD
◾️ UX/UI
◾️ SRE (Site Reliability Engineering)
◾️ Веб-приложения: SPA , MPA, PWA
◾️ Паттерны GRASP
◾️ Синхронизация времени по NTP
◾️ Тест-кейсы: как и зачем писать
◾️ SQA: обеспечение качества ПО
◾️ Методы оценки трудоёмкости проектов и задач
Полезные подборки
🔹 Подборка публичных собеседований системных аналитиков
🔹 Матрица компетенций системного аналитика
🔹 Бесплатные выпуски подкаста «Аналитики у микрофона» для и про аналитиков
В ближайшие дни откроем продажи к базе знаний — веб-порталу, где будут собраны все наши посты в едином месте, с удобной навигацией и поиском. Следите за новостями.
Всех с Наступающим 🎉
#подборка
Управление требованиями
Работа с API
Архитектура и проектирование
Базы данных и хранилища
Авторизация и безопасность
Инструменты
Расширение IT-кругозора
Полезные подборки
В ближайшие дни откроем продажи к базе знаний — веб-порталу, где будут собраны все наши посты в едином месте, с удобной навигацией и поиском. Следите за новостями.
Всех с Наступающим 🎉
#подборка
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥57👍16❤13🎉4👏2😁1
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