Жизненный цикл программного обеспечения (Software Development Life Cycle, SDLC) — структурированный процесс создания систем
Путь идеи от концепции до рабочего продукта
Фазы жизненного цикла ПО
Определяется цель проекта, его границы и заинтересованные стороны
Оценивается бизнес-ценность, риски и целесообразность разработки
Результат фазы — бизнес-кейс, дорожная карта проекта, первичные требования и оценка ресурсов
Вывляются:
Выходные артефакты: ТЗ или спецификация требований к ПО (SRS), модели процессов, диаграммы прецедентов
Решается как система будет удовлетворять требованиям
Результат — набор архитектурных и дизайнерских документов
Пишется код в соответствии с архитектурой и требованиями
Ревью кода, сборка и автоматизация сборочного процесса через CI/CD
На выходе — рабочие модули и инкременты системы
Проверяется соответствие продукта требованиям
Примеры тестирования:
Продукт разворачивается в целевой среде
Завершается релизом и переходом системы в эксплуатацию
После запуска система требует поддержки:
Фаза продолжается до момента окончательного вывода системы из эксплуатации
Модели жизненного цикла ПО
Подход к организации фаз SDLC определяется моделью: как эти фазы взаимодействуют друг с другом, их последовательность
Фазы выполняются строго последовательно: от анализа до сопровождения
Переход на следующую стадию возможен только после завершения предыдущей
Подходит для проектов с чётко определёнными и стабильными требованиями
Идея каскада с добавлением акцент на тестирование
Каждая стадия разработки имеет свой этап проверки и валидации
Продукт создаётся поэтапно, небольшими инкрементами. Каждый релиз добавляет часть функционала
Каждый инкремент проходит полный цикл SDLC (анализ, проектирование, кодирование, тестирование)
В результате пользователь постепенно получает готовые части системы
Комбинирует идеи каскадной и прототипной моделей
Каждая итерация проходит все фазы SDLC, но с акцентом на анализ рисков
Применяется для крупных и исследовательских проектов
Разработка короткими итерациями — спринтами (1–4 недели). Команда поставляет работающий инкремент продукта к концу каждого спринта.
Ориентирован на непрерывный поток задач и визуализацию процессов
Основной инструмент — канбан-доска, где задачи перемещаются по статусам
1. Этапы жизненного цикла разработки ПО или что такое SDLC?
2. SDLC
3. База про жизненный цикл разработки ПО (SDLC): этапы, виды моделей и их различия
4. Про семь основных методологий разработки
5. Модели жизненного цикла ПО
📚 Книги
Управление проектным бизнесом от Алексея Васильева
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍10🔥4
Event Storming — техника коллективного моделирования бизнес-процессов
Строится вокруг событий (domain events), которые отражают значимые изменения состояния системы (заказ создан», платёж подтверждён, товар доставлен)
Помогает
Примеры приименения
Основные принципы
Типы Event Storming-сессий
Используется для получения общего представления о домене
Позволяет увидеть ключевые процессы и зависимости между ними
Детализирует конкретный бизнес-процесс
Помогает определить события, команды и участников внутри него
Уточняет модель до уровня архитектуры и bounded contexts
Используется при проектировании микросервисов и взаимодействий между ними
Ключевые «строительные блоки»
Факт, который уже произошел в системе.
Часто является реакцией на предыдущее событие
Это "кластер" из связанных сущностей (например, заказ с его позициями), который обрабатывает команды и порождает события
Формулируется как "Когда событие X, тогда команда Y"
Пример как проходит Event Storming
1. Определить границы процесса
2. Зафиксировать доменные события в прошедшем времени
3. Добавить команды, которые инициируют события:
4. Указать акторов
5. Добавить агрегаты и сущности
6. Зафиксировать политики и правила
7. Сгруппировать события по смыслу
8. Проверяются связи, исключения, альтернативные сценарии
9. Результат: карта событий, отражающая процессы и зависимости
1. Event storming
2. Моделирование микросервисов с помощью Event storming
3. Event Storming: как построить модель вокруг событий
4. Введение в Event Modeling
5. 10 аналогов Miro от российских и иностранных разработчиков
📚 Книги
Предметно-ориентированное проектирование: паттерны, принципы и методы - Скотт Миллетт, Ник Тью
#управление_проектами
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤11👍6👏2
Forwarded from Библиотека Системного Аналитика
Грокаем_безопасность_веб_приложений_Макдональд_Малькольм.pdf
12 MB
Грокаем безопасность веб-приложений
✍️ Автор: Макдональд Малькольм
🗓 Год издания: 2025
🔤 Язык: русский
📚 Объём: 336 стр.
Практическое руководство по безопасности для веб-приложений.
◾️ Раскрываются основные принципы защиты
◾️ Подробно разбираются наиболее распространенные уязвимости веб-приложений — от браузера до сервера.
Книгу можно изучать последовательно или выборочно.
Примеры кода приведены на разных языках, что делает материал наглядным и универсальным.
Издание будет полезно как новичкам в вопросах безопасности, так и опытным специалистам для систематизации и обновления знаний.
#безопасность
✍️ Автор: Макдональд Малькольм
🗓 Год издания: 2025
🔤 Язык: русский
📚 Объём: 336 стр.
Практическое руководство по безопасности для веб-приложений.
Книгу можно изучать последовательно или выборочно.
Примеры кода приведены на разных языках, что делает материал наглядным и универсальным.
Издание будет полезно как новичкам в вопросах безопасности, так и опытным специалистам для систематизации и обновления знаний.
#безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍19❤2
1. Использовать множественное число для коллекций
2. Не добавлять лишние сегменты в путь
Не пытаться отразить всю модель данных в URL
Если
listing_id уникален — shop_id не нуженGET /listings/{listing_id}/options/{option_id}3. Не добавлять расширения в URL
GET /users.json Формат передачи должен определяться через HTTP-заголовки (например,
Accept) , не через URLGET /users и HTTP-заголовки настройка заголовков:Accept: application/json
4. Не возвращать массивы верхнего уровня
Объект позволяет легко добавить пагинацию и дополнительные поля без поломки обратной совместимости
[{"id":1}, {"id":2}] { "data": [{"id":1}, {"id":2}] }5. Не возвращать структуры-словари (map)
Словари ломают совместимость и неудобны для типизированных языков.
{ "data": [{ "id":"KEY1" }, { "id":"KEY2" }] }6. Добавлять префиксы к ID
Примеры:
Stripe: in_1MVpWEJVZPfyS2HyRgVDkwiZ
Shopify: gid://shopify/FulfillmentOrder/1469358604360
7. Не использовать 404 для “не найдено”
404 Not Found может означать сетевую ошибку или неверный URL410 Gone — сервер понял запрос, но объекта нет8. Ошибки в структурированном формате
{
"message": "Access denied",
"type": "Unauthorized",
"types": ["Unauthorized", "Security"],
"cause": { ... }
}9. Идемпотентность операций
Идемпотентность = повтор вызова не меняет результат
POST /orders
Idempotency-Key: abc123
Если запрос повторится — сервер вернёт 409 CONFLICT и ID уже созданного ресурса:
{
"message": "Duplicate",
"old_id": "ORD123"
}Клиент уверен, что заказ не задублировался
10. ISO8601 для даты и времени
А также использовать ISO8601 для интервалов и длительностей
"2023-12-21T11:17:12.34Z" "1703157432340"#api
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍21❤16😢1
Forwarded from Библиотека Системного Аналитика
Хононов_В_Изучаем_DDD_предметно_ориентированное_проектирование_2024.pdf
18.2 MB
Изучаем DDD — предметно-ориентированное проектирование
✍️ Автор: Влад Хононов
🗓 Год издания: 2024
🔤 Язык: русский
📚 Объём: 320 стр.
Книга посвящена методологии DDD (предметно-ориентированному проектированию), что особенно актуально в условиях дробления предметных областей и усложнения бизнес-взаимодействий.
Рассказано
🔹 как оценить масштаб и сложность предметной области (с примерами анализа предметной обалсти)
🔹 измерить темпы ее развития, учесть необходимые зависимост
🔹 про архитектурные паттерны и паттерны взаимодействия, EventStorming, SOA, Data Mesh
🔹 применять DDD и структурировать создаваемое ПО эффективно вписывая его в сеть данных (Data Mesh)
🔹 о порядке развития проекта синхронно с изменениями в его бизнес-контексте
Знание принципов и шаблонов предметно-ориентированного проектирования будет полезно инженерам-программистам всех уровней: младшего, старшего, штатного и руководящего.
🔹 Пост про DDD
📺 Интервью с автором Learning Domain-Driven Design • Влад Хононов
#архитектура #проектирование
✍️ Автор: Влад Хононов
🗓 Год издания: 2024
🔤 Язык: русский
📚 Объём: 320 стр.
Книга посвящена методологии DDD (предметно-ориентированному проектированию), что особенно актуально в условиях дробления предметных областей и усложнения бизнес-взаимодействий.
Рассказано
Знание принципов и шаблонов предметно-ориентированного проектирования будет полезно инженерам-программистам всех уровней: младшего, старшего, штатного и руководящего.
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍8🔥4
Workflow-движок — система, которая управляет выполнением последовательности шагов (задач) по описанной логике процесса:
Нужен, когда в системе есть повторяющиеся, формализованные процессы:
состоящие из нескольких этапов
с предсказуемыми переходами и условиями
Как работает
Компоненты:
форматы: BPMN, JSON, YAML, собственные DSL
Принцип:
Типовой цикл:
1. запуск — процесс стартует по событию или API-запросу
2. исполнение — движок выполняет шаги, проверяет условия переходов
3. ожидание — если требуется ввод данных пользователем или внешним сервисом
4. завершение — финальный статус, логирование результатов
Примеры
В архитектуре
Когда использовать
Не стоит использовать:
Workflow vs. BPM
Примеры ПО
1. Workflow Core — движок бизнес-процессов для .Net Core
2. Как мы делали свой движок Workflow
3. Интеграция с «Госуслугами». Применение Workflow Core (часть II)
4. Интеграционная платформа в The Platform: что умеет, как работает и зачем ей Workflow Engine
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍7🔥5👎1🤔1
JSON Patch — формат для описания изменений в JSON-документе
Вместо отправки документа для обновления, отправляется набор операций («патч»), которые нужно применить
Примеры применения
Пример
Исходно:
{ "user": "Иван", "age": 30 }Патч (набор операций):
[
{ "op": "replace", "path": "/age", "value": 31 },
{ "op": "add", "path": "/city", "value": "Москва" }
]
Результат:
{ "user": "Иван", "age": 31, "city": "Москва" }Особенности
RFC 6902 определяет только 6 операций:
- add
- remove
- replace
- move
- copy
- test
Расширять этот набор другими операциями нельзя, если нужно сохранить совместимость с системами, реализующими RFC 6902
Если любая операция в массиве завершается ошибкой (например, путь не найден для
remove, или операция test возвращает false), весь патч должен быть откачен, и документ остается без измененийЭто гарантирует целостность
Последующие могут зависеть от результата предыдущих
move) данные из /a в /b, сначала убедиться, что /b не существует, или удалить его в предыдущей операцииJSON Patch vs JSON Merge Patch
Отправляется фрагмент, который нужно "наложить" на целевой документ:
- значения заменяются
-
null означает "удалить поле"- отправляются только изменяемые поля
Когда использовать
1. Оптимизация трафика при синхронизации состояний через Jsonpatch
2. Убегайте от праздника «пустых» проверок: правильно выполняйте PATCH с помощью JSON Patch
#проектирование #api
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥11👍6💩2👏1
Брейншторм (мозговой штурм) — групповой метод генерации идей для решения задачи или поиска вариантов
Это не обсуждение и не поиск лучшего решения
Проводится в два этапа:
Роли участников
Зачем нужен
Когда не нужен
Пример
- обновление страницы оплаты
- проблемы у платежного провайдера
- изменения в анти-фрод системе
- ошибка в кешировании данных
- сезонный фактор
Cоздается список направлений для дальнейшей проверки
Базовые правила
1. Запрещена критика идей
2. Количество важнее качества. Цель — заполнить доску вариантами
3. Поощряются нестандартные идеи
4. Идеи можно развивать и комбинировать
Техники
Когда использовать: простые открытые задачи
Как проводится: участники устно предлагают идеи, фасилитатор фиксирует
Пример: генерация вариантов пользовательских сценариев
Когда: улучшение текущего решения
Как: генерация идей по наводящим вопросам
Пример: Оптимизация бизнес-процессов
Когда: cложные задачи, конфликт мнений
Как: участники мыслят в заданных ролях
Пример: проработка архитектурных альтернатив
Когда: поиск рисков и уязвимостей
Как: генерация идей как ухудшить ситуацию
Пример: выявление рисков реализации, ошибок в требованиях, потенциальных отказов системы.
1. Топ 8 инструментов для мозгового штурма
2. 15 способов превратить мозговой штурм в результат «огонь»
3. Пять техник мозгового штурма
4. Что такое мозговой штурм и как правильно его проводить в компании
5. Как провести мозговой штурм: основные правила, методы и ошибки
#управление_проектами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍4🔥2
Код написан, всё успешно протестировано, фича на проде, а бизнес в шоке... Знакомо?
Выявить, проанализировать, уточнить, согласовать требования, критически посмотреть на проблему, найти риски
Баги от нас стоят дороже всего
Антипаттерны аналитики
Существуют на словах, "очевидно же"
В итоге на прод попадает функционал, где клиент-иностранец может получить налоговый вычет
После релиза менеджер залетает с ноги и возмущается, почему не учли то-то.
А это нигде не зафиксировано
Не продуман процесс целиком, нет e2e описания, как должно работать
В итоге ни у кого нет понимания общей картины. Даже у аналитика
Один из самых частых и дорогих видов багов
Например, не учесть, что отчество может отсутствовать, или что имя клиента может быть двойным
Никто, кроме аналитика, ничего не поймёт
Вообще, слово "доверять" не про аналитиков :)
Руководствуемся критическим мышлением, слепо доверять мы не можем
Например, при описании интеграции с внешним сервисом нельзя взять и скопипастить в своё ТЗ пример запроса и ответа. Нужно проверять вручную
В той самой статье про Васю всё сказано, добавить нечего
Давайте добавим краудсорсинга в комментариях к этому посту — обменяемся своими факапами (админ первый).
Соберём всё и выложим продолжение
P.S. Если формат зайдёт, будем практивать и дальше.
Примерно так:
мы даём начало
Ну и как всегда — выложим в базу знаний по системному анализу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51👍24❤13👏3
Слоистая архитектура — подход, при котором система разделяется на логические слои
Базовые принципы
Каждый слой решает 1 категорию задач:
Слой не должен брать на себя задачи вне его зоны ответственности
Зависимости направлены сверху вниз:
Снижает связанность и упрощает изменение системы
Контракт слоя — формальное описание:
Изменения в одном слое не должны затрагивать другие, если контракт сохранён
Пример:
Типовая структура
Включает:
Не должно быть:
Включает:
Отвечает на вопрос «что именно нужно сделать», но не содержит бизнес-правил
Включает:
Ключевой слой, ради которого существует система
Не должно быть:
Включает:
Типовой поток запроса
1. Presentation Layer принимает запрос
2. Application Layer запускает сценарий
3. Domain Layer выполняет бизнес-логику
4. Infrastructure Layer читает или сохраняет данные
5. Результат возвращается вверх
Другие слои
Это не обязательные слои
Их выделяют, если появляется отдельная ответственность
Лишние слои усложняют систему
Когда использовать
1. Слоистая архитектура приложений: как обеспечить поддерживаемость доменного слоя
2. Трехслойная и трехзвенная: введение в архитектуру ИС для аналитика
3. Слоистая архитектура
4. Архитектура приложения: что это, какие есть виды и как проектировать
📚 Книги
1. Архитектура ПО. Руководство для обучающихся архитектурному мышлению - Ганди Раджу, Ричардс Марк, Форд Нил
2. Идеальная архитектура. Ведущие специалисты о красоте программных архитектур - Диомидис Спинеллис, Георгиос Гусиос
3. Архитектура программного обеспечения на практике - Л. Басс, П. Клементс, Р. Кацман
4. Александр Швец. Погружение в Паттерны Проектирования
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤8👍3👏1
Постновогодняя распродажа 🎄
Если откладывали покупку Базы знаний по системному анализу — вот он, знак.
🔥 ВЕЧНЫЙ доступ за 3 000 ₽ вместо 5 000 ₽
⏰ Акция всего 3 дня — до 10:00 22 января (МСК)
Если думали, покупать ли, то сейчас самое время
Если откладывали покупку Базы знаний по системному анализу — вот он, знак.
🔥 ВЕЧНЫЙ доступ за 3 000 ₽ вместо 5 000 ₽
⏰ Акция всего 3 дня — до 10:00 22 января (МСК)
Если думали, покупать ли, то сейчас самое время
Telegram
Системный Аналитик
🔹 БАЗА ЗНАНИЙ ПО СИСТЕМНОМУ АНАЛИЗУ 🚀
Все посты из канала за всё время разложены по полочкам в едином месте — базе знаний 🤓
Наша цель — сделать кладезь знаний системного аналитика 🧠
Какие плюшки вас ждут:
🗂 Все знания в едином месте: кратко, ёмко, без…
Все посты из канала за всё время разложены по полочкам в едином месте — базе знаний 🤓
Наша цель — сделать кладезь знаний системного аналитика 🧠
Какие плюшки вас ждут:
🗂 Все знания в едином месте: кратко, ёмко, без…
👍14🔥6💩4⚡3❤1
Как? Добавьте к своим скилам навыки в проектировании архитектуры и интеграций веб-сервисов!
Рассмотрите — авторский курс про архитектуру и интеграции
с практикой.
—————
По результатам курса вы:
▫️научитесь выбирать стиль интеграции под вашу задачу;
▫️сможете проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и др. + брокеры сообщений);
▫️поймете, как правильно собирать требования и моделировать в UML;
▫️подготовитесь к собеседованию, решив более 100 тестов;
▫️разработаете свой API на Python;
—————
🟢Вы получите большую базу фундаментальных знаний, доступ к урокам и обновлениям остается навсегда 💡
• Всю программу и отзывы смотрите в боте курса.
• Бонусный модуль про проектирование баз данных — нормализация, транзакции, основы DWH, индексы.
• Результат после прохождения курса: 15 рабочих проектов в портфолио.
• Доступ к чату учеников (общение, обмен опытом, помощь внутри сообщества)
🔹🔹 С чего начать?🔹🔹
С открытых бесплатных уроков по архитектуре и интеграциям в чат-боте курса. Переходите.
👇
@studyit_help_bot
Скидка на курс от канала —
1 500₽ по промокоду SYS до 30 января
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👎1
Системный Аналитик pinned «Постновогодняя распродажа 🎄 Если откладывали покупку Базы знаний по системному анализу — вот он, знак. 🔥 ВЕЧНЫЙ доступ за 3 000 ₽ вместо 5 000 ₽ ⏰ Акция всего 3 дня — до 10:00 22 января (МСК) Если думали, покупать ли, то сейчас самое время»
📊 Роль бизнес-аналитика в построении архитектуры продукта по C4
На открытом уроке 29 января в 20:00 МСК разберём модель C4, посмотрим примеры её применения и обсудим, какие архитектурные задачи может брать на себя бизнес-аналитик.
На вебинаре разберём:
- Обзор модели C4 и её место в описании архитектуры продукта
- Примеры использования C4 для представления архитектуры системы
- Какие задачи в рамках модели C4 может и должен выполнять бизнес-аналитик
В результате вебинара вы:
- Поймёте, как модель C4 помогает описывать архитектуру продукта на разных уровнях
- Узнаете, какую роль бизнес-аналитик играет в архитектурных решениях
- Научитесь использовать C4 как инструмент коммуникации между бизнесом, аналитикой и разработкой
👉Для участия зарегистрируйтесь: https://otus.pw/9WCZ/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 29 января в 20:00 МСК разберём модель C4, посмотрим примеры её применения и обсудим, какие архитектурные задачи может брать на себя бизнес-аналитик.
На вебинаре разберём:
- Обзор модели C4 и её место в описании архитектуры продукта
- Примеры использования C4 для представления архитектуры системы
- Какие задачи в рамках модели C4 может и должен выполнять бизнес-аналитик
В результате вебинара вы:
- Поймёте, как модель C4 помогает описывать архитектуру продукта на разных уровнях
- Узнаете, какую роль бизнес-аналитик играет в архитектурных решениях
- Научитесь использовать C4 как инструмент коммуникации между бизнесом, аналитикой и разработкой
👉Для участия зарегистрируйтесь: https://otus.pw/9WCZ/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
😁5👍2🤡2❤1