Forwarded from Библиотека Системного Аналитика
Джин_Ким,_Кевин_Бер_Проект_«Феникс»_Роман_о_том,_как_DevOps_меняет.pdf
1.9 MB
Две книги по DevOps от Джена Кима. Первая написана в формате романа, вторая является технически более детальным продолжением.
1️⃣ Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему
✍️ Автор: Джин Ким, Бер К., Спаффорд Д.
🔤 Язык: русский
📚 Объём: 228 стр.
В этой художественной книге рассматриваются реалистичные сценарии работы в IT-компании. Проект «Феникс» предлагает читателям ряд эффективных инструментов и подходов в рамках практик DevOps.
- Подходит для ознакомления с профессией
- Описано, как происходит становление DevOps-специалиста в компании.
В книге есть конкретные практики вывода IT в компаниях на новый уровень эффективности и взаимодействия с бизнесом.
Легкий и доступный для новичка язык повествования.
Книга не содержит конкретных технических решений.
✍️ Автор: Джин Ким, Бер К., Спаффорд Д.
🔤 Язык: русский
📚 Объём: 228 стр.
В этой художественной книге рассматриваются реалистичные сценарии работы в IT-компании. Проект «Феникс» предлагает читателям ряд эффективных инструментов и подходов в рамках практик DevOps.
- Подходит для ознакомления с профессией
- Описано, как происходит становление DevOps-специалиста в компании.
В книге есть конкретные практики вывода IT в компаниях на новый уровень эффективности и взаимодействия с бизнесом.
Легкий и доступный для новичка язык повествования.
Книга не содержит конкретных технических решений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Джин_Ким,_Д_Хамбл_Руководство_по_DevOps.pdf
5.8 MB
✍️ Автор: Д. Ким, П. Дебус, Д.Уиллис, Д.Хамбл С.Д.
🔤 Язык: русский
📚 Объём: 654 стр.
Авторы рассказывают об основных принципах DevOps в виде трех путей: поток, обратная связь и непрерывное обучение.
В разделе «Поток» рассмотрены непрерывная интеграция и доставка приложения (CI/CD). В «Обратной связи» говорится о телеметрии, тестировании и анализе данных для улучшения качества программных продуктов. Раздел «Непрерывное обучение» посвящен улучшению продукта, инструментариям и документации.
В книге также рассмотрены реальные кейсы известных компаний с примерами и путями решения проблем.
#devops
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤8🔥6
Тест-кейсы: как и зачем писать📝
Тест-кейс — это подробный алгоритм действий, по которому нужно проверять разработанный функционал.
Виды тест-кейсов:
✅ Позитивные (положительные). Проверяют, что система правильно реагирует на корректные данные
Пример: пользователь существует в системе и он может пройти авторизацию
❌ Негативные (отрицательные). Показывают, что система умеет работать с некорректными данными
Пример: пользователь при регистрации ввёл простой пароль 12345, а кнопка “Установить пароль” активной не стала, т.к ждёт более сложный
🚫 Деструктивные. Служат для проверки прочности системы
Пример: метод для получения заказов пользователя нельзя выполнить без авторизации
Особенности:
💩 Идеально подходят для описания сложных проверок в системе и регрессионного тестирования
💩 Помогают автоматизировать ручные проверки, если тестирование занимает много времени
💩 Используются для проверки системы не тестировщиками, для онбординга новых людей на проект
💩 Помогают определить необходимое время на тестирование
💩 Избыточны для небольших задач
💩 Требуют много времени на написание и актуализацию
💩 Может возникнуть "Эффект пестицида" — когда из-за постоянного повторения одинаковых шагов не получается найти ошибки
Содержание тест-кейса
💫 Уникальный номер. Позволит ссылаться на тесты по номеру
💫 Заголовок. Отражает цель - что именно нужно проверить
💫 Предусловия. Что нужно сделать перед началом тест-кейса
💫 Постусловия (редко). Что нужно сделать после проведения проверки. Например, удалить изменения из базы данных
💫 Шаги. Что нужно сделать для проверки
💩 Не описывать шаги слишком подробно. Например, следует писать «Введите email» вместо «Введите email, нажимая клавиши на клавиатуре».
💩 Шаги должны быть конкретными. Написать: “Нажмите на иконку пользователя → Личный кабинет” вместо “Зайдите в личный кабинет”
💩 Скриншоты можно использовать только как дополнение к текстовому описанию
💫 Ожидаемый результат. Что должно получиться после или во время прохождения шагов
💫 Статус. Passed/Failed, то есть Успех/Провал или другой. Отмечается при прохождении кейса тестировщиком
Use Case 🆚 Test Case
🔹 Use Case — детальное описание того, как пользователь взаимодействует с системой, включая различные сценарии, условия и результаты. Используют для описания функциональных требований к системе
🔸 Test Case — детальное описание того, как должно проходить тестирование конкретной функции в системе. Основываются на юскейсах и используются для проверки соответствия реализации требованиям.
👨💻 Аналитик и тест-кейсы
➖ На старте проекта кейсы может написать и согласовать аналитик - именно он лучше всех знает требования к системе. Это упростит сдачу проекта в будущем
➖ Аналитик подсвечивает тестировщику какую часть функционала нужно оформить в виде кейсов для регрессионного тестирования - что было самым важным в релизе
➖ Ревью тест-кейсов — аналитик проверяет, что тестировщик правильно понял задачу и ожидаемый результат соответствует требованиям
Инструменты ведения для тест-кейсов:
➖ Zephyr for Jira
➖ TestRail
➖ Qase
➖ Test IT
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#тестирование
Тест-кейс — это подробный алгоритм действий, по которому нужно проверять разработанный функционал.
Виды тест-кейсов:
✅ Позитивные (положительные). Проверяют, что система правильно реагирует на корректные данные
Пример: пользователь существует в системе и он может пройти авторизацию
❌ Негативные (отрицательные). Показывают, что система умеет работать с некорректными данными
Пример: пользователь при регистрации ввёл простой пароль 12345, а кнопка “Установить пароль” активной не стала, т.к ждёт более сложный
🚫 Деструктивные. Служат для проверки прочности системы
Пример: метод для получения заказов пользователя нельзя выполнить без авторизации
Особенности:
Содержание тест-кейса
Use Case 🆚 Test Case
🔹 Use Case — детальное описание того, как пользователь взаимодействует с системой, включая различные сценарии, условия и результаты. Используют для описания функциональных требований к системе
🔸 Test Case — детальное описание того, как должно проходить тестирование конкретной функции в системе. Основываются на юскейсах и используются для проверки соответствия реализации требованиям.
👨💻 Аналитик и тест-кейсы
Инструменты ведения для тест-кейсов:
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤10🔥4👎1
Forwarded from NextWay - анализ и проектирование в IT
Одна из частых ошибок при проектировании API - это отождествление модели объектов API со схемой БД. Особенно ярко проявляется при работе с REST API, когда аналитик убежден, что каждый HTTP-ресурс - это таблица в БД.
Почему модель данных API может отличаться от модели БД?
1️⃣ Первичная задача при проектировании сущностей и связей в БД - это эффективное хранение данных, обеспечение производительности и стабильности сервис. Такая модель может быть неудобна для потребителей сервиса. Например, БД может иметь ненормализованную форму.
2️⃣ Сервис может использовать нереляционное хранилище. Например, MongoDB для хранения объектов в виде документов.
3️⃣ Сервис может использовать несколько БД для хранения данных. Возможно, из-за легаси. Или мы используем разные хранилища для разных типов данных
4️⃣ Сервис может вообще не иметь своего хранилища, а получать данные из внешних сервисов и систем.
5️⃣ Жесткая связка модели API и схемы БД, потребует большего времени на доработки, если одна из них меняется.
⚠️ Ключевая задача API - это инкапсуляция внутренней логики и модели данных системы.
API должно быть простым и удобным для внешних потребителей, исходя из этого мы должны проектировать объекты и ресурсы, с которыми будут работать сервисы-потребители.
Подписывайтесь на продолжение: @nextway_news
Почему модель данных API может отличаться от модели БД?
1️⃣ Первичная задача при проектировании сущностей и связей в БД - это эффективное хранение данных, обеспечение производительности и стабильности сервис. Такая модель может быть неудобна для потребителей сервиса. Например, БД может иметь ненормализованную форму.
2️⃣ Сервис может использовать нереляционное хранилище. Например, MongoDB для хранения объектов в виде документов.
3️⃣ Сервис может использовать несколько БД для хранения данных. Возможно, из-за легаси. Или мы используем разные хранилища для разных типов данных
4️⃣ Сервис может вообще не иметь своего хранилища, а получать данные из внешних сервисов и систем.
5️⃣ Жесткая связка модели API и схемы БД, потребует большего времени на доработки, если одна из них меняется.
⚠️ Ключевая задача API - это инкапсуляция внутренней логики и модели данных системы.
API должно быть простым и удобным для внешних потребителей, исходя из этого мы должны проектировать объекты и ресурсы, с которыми будут работать сервисы-потребители.
Подписывайтесь на продолжение: @nextway_news
👍30🔥6❤4👏3😢1
📚 Ловите огромную подборку книг по гибким методологиям 🔥
Все книги можно бесплатно скачать в .pdf. Все ссылки ведут на наш второй канал "Библиотека Системного Аналитика"
1. Подборка книг по Agile
2. Подборка книг по Scrum
3. Подборка книг по Kanban
Все книги можно бесплатно скачать в .pdf. Все ссылки ведут на наш второй канал "Библиотека Системного Аналитика"
1. Подборка книг по Agile
2. Подборка книг по Scrum
3. Подборка книг по Kanban
🔥28👍8🎉4👏3⚡2
Kanban vs Scrum: сравнение методологий
Kanban и Scrum — методологии гибкого управления проектами, используемые для реализации принципов Agile и DevOps при разработке.
Kanban — подход к управлению процессом разработки, который включает следующие практики:
💩 Визуализация задач и прогресса с помощью канбан-доски, установление приоритетов задачам
💩 Ограничение количества задач со статусом "В работе", или WIP (work in progress). Если лимит превышен, то команда не может взять новую задачу в работу, пока не будет завершена одна из текущих
💩 Управление потоком: отслеживание метрик, таких как скорость движения задач между статусами, для устранения «бутылочных горлышек», где процесс замедляется
💩 Проведение каденций — встреч членов команды по процессу разработки. Всего выделяют 7 видов встреч. Главная цель — объяснение правил для всех участников команды и сбор обратной связи
💩 Непрерывное улучшение процесса на основе обратной связи и анализа метрик
Что общего между Kanban и Scrum
➖ Обе методологии относятся к Agile
➖ Важна визуализация работы для прозрачности и оценки текущего состояния задач.
➖ Имеют итерационный подход к работе, даже если длительность итераций различается.
➖ Имеют механизмы для определения и управления приоритетами задач.
➖ Акцентируют внимание на командной работе и взаимодействии между участниками
✅ Когда лучше применять
Kanban:
💩 в проектах с типовыми повторяющимися задачами, например, техническая поддержка, где задачи обрабатываются по мере поступления и приоритеты могут меняться в зависимости от срочности
💩 команда не является кросс-функциональной
💩 в проектах с высокой степенью неопределенности, где требования часто меняются или неизвестны заранее. Kanban позволяет вносить изменения в любое время без нарушения цикла работы
Scrum:
💩 важен строгий контроль сроков и структура
💩 требуется четкое определение целей и результатов
💩 команда является кросс-функциональной
Пример: Разработка новой версии продукта с фиксированным релизным циклом, например, каждые 3 месяца.
❌ Когда не подойдет
Kanban
💩 в проектах, где необходимо строго соблюдать сроки
💩 в кросс-функциональных командах
💩 когда требуется постоянная обратная связь от клиентов
Scrum
💩 продукт нужен целиком, итерации невозможны
💩 когда нет сплочённой, самоорганизованной и кросс-функциональной команды
💩 для слишком маленьких групп из 1–2 человек, или, наоборот, больших лучше заменить другими методами — SAFe, LeSS.
☯️ Гибрид ScrumBan
Используется в средах, где необходимо управление проектом в условиях неопределенности и частых изменений. ScrumBan легче внедрить, чем Scrum
💩 от Scrum: сохраняет ключевые элементы Scrum: спринты, роли (Product Owner, Scrum Master, и команда разработки) и основные события (планирование, ревью, ретроспектива).
💩 от Kanban: заимствует концепцию визуализации процесса на доске, ограничения рабочего объема, адаптацию к изменениям в реальном времени и фокус на поток задач.
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#управление_проектами
Kanban и Scrum — методологии гибкого управления проектами, используемые для реализации принципов Agile и DevOps при разработке.
Kanban — подход к управлению процессом разработки, который включает следующие практики:
Что общего между Kanban и Scrum
✅ Когда лучше применять
Kanban:
Scrum:
Пример: Разработка новой версии продукта с фиксированным релизным циклом, например, каждые 3 месяца.
❌ Когда не подойдет
Kanban
Scrum
☯️ Гибрид ScrumBan
Используется в средах, где необходимо управление проектом в условиях неопределенности и частых изменений. ScrumBan легче внедрить, чем Scrum
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#управление_проектами
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍21👏5❤4👎2
Шпаргалка по SQL
А для тех, кто готов изучать базы данных глубже — напоминаем о наших подборках:
▪️Основные понятия баз данных
▪️Подборка полезных материалов по основам баз данных
▪️SQL vs NoSQL: отличие реляционных и нереляционных БД
▪️Типы связей в БД. Нормализация
▪️Виды нереляционных БД. Какие бывают NoSQL базы данных
▪️Шпаргалка по выбору правильной СУБД
▪️Памятка по SQL
А для тех, кто готов изучать базы данных глубже — напоминаем о наших подборках:
▪️Основные понятия баз данных
▪️Подборка полезных материалов по основам баз данных
▪️SQL vs NoSQL: отличие реляционных и нереляционных БД
▪️Типы связей в БД. Нормализация
▪️Виды нереляционных БД. Какие бывают NoSQL базы данных
▪️Шпаргалка по выбору правильной СУБД
▪️Памятка по SQL
👍42🔥16❤7
Больше подборок в закрытом канале
Ещё больше полезных материалов по системному анализу можно получать в закрытом канале, который доступен по подписке.
Что входит в подписку:
➖ 2-3 подборки материалов каждую неделю в закрытом канале
➖ навигация по всем материалам
➖ коммьюнити подписчиков — обмен опытом и общение
➖ доступ к каналу с тестовыми заданиями из собеседований
➖ тесты для самопроверки
➖ (скоро) обновляемая база знаний по ключевым темам системного анализа
➖ (скоро) исчерпывающая интерактивная карта навыков системного аналитика со ссылками на материалы из базы знаний
Тарифы:
💩 350 ₽ — месяц
💩 3400 ₽ — год (283 р/мес, экономия 20%)
Оформить подписку можно через кнопки ниже.
Ещё больше полезных материалов по системному анализу можно получать в закрытом канале, который доступен по подписке.
Что входит в подписку:
Тарифы:
Оформить подписку можно через кнопки ниже.
Please open Telegram to view this post
VIEW IN TELEGRAM
💩72👍36❤8😁4👎3🤡2🤔1
Forwarded from Библиотека Системного Аналитика
Основы_технологий_баз_данных_учебное_пособие_Новиков_2020.pdf
2.8 MB
Основы технологий баз данных: учебное пособие
✍️ Автор: Новиков Б. А. / Б. А. Новиков, Е. А. Горшкова, Н. Г. Графеева; под ред. Е. В. Рогова.
🗓 Год издания: 2020
🔤 Язык: русский
📚 Объём: 583 стр.
Материал первой части учебного пособия составляет основу для базового курса и содержит краткий обзор требований и критериев оценки СУБД и баз данных, теоретическую реляционную модель данных, основные конструкции языка запросов SQL, организацию доступа к базе данных PostgreSQL, вопросы проектирования приложений и основные расширения, доступные в системе PostgreSQL.
Вторая часть, добавленная в настоящем издании, содержит материал, который будет полезен разработчикам баз данных и СУБД. В ней подробно рассматриваются структуры хранения, методы выполнения и оптимизации запросов, дополнительные возможности языка SQL, средства поддержки согласованности и надежности. Рассмотрены средства программирования серверов баз данных, средства расширения функциональности PostgreSQL, вопросы создания систем с репликацией, параллельных и распределенных систем баз данных.
#бд
✍️ Автор: Новиков Б. А. / Б. А. Новиков, Е. А. Горшкова, Н. Г. Графеева; под ред. Е. В. Рогова.
🗓 Год издания: 2020
🔤 Язык: русский
📚 Объём: 583 стр.
Материал первой части учебного пособия составляет основу для базового курса и содержит краткий обзор требований и критериев оценки СУБД и баз данных, теоретическую реляционную модель данных, основные конструкции языка запросов SQL, организацию доступа к базе данных PostgreSQL, вопросы проектирования приложений и основные расширения, доступные в системе PostgreSQL.
Вторая часть, добавленная в настоящем издании, содержит материал, который будет полезен разработчикам баз данных и СУБД. В ней подробно рассматриваются структуры хранения, методы выполнения и оптимизации запросов, дополнительные возможности языка SQL, средства поддержки согласованности и надежности. Рассмотрены средства программирования серверов баз данных, средства расширения функциональности PostgreSQL, вопросы создания систем с репликацией, параллельных и распределенных систем баз данных.
#бд
👍26🔥10❤8
Системный Аналитик pinned «Больше подборок в закрытом канале Ещё больше полезных материалов по системному анализу можно получать в закрытом канале, который доступен по подписке. Что входит в подписку: ➖ 2-3 подборки материалов каждую неделю в закрытом канале ➖ навигация по всем материалам…»
OAuth 2.0 и OpenID Connect
🔐 OAuth 2.0 — протокол авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователей, без необходимости передавать логин и пароль. Вместо этого используются токены доступа.
👤 OpenID Connect — протокол аутентификации, который позволяет безопасно узнать сведения о пользователе, от имени которого совершается вход. OpenID Connect позволяет реализовывать сценарии, когда единственный логин можно использовать во множестве приложений, — этот подход также известен как single sign-on (SSO).
В чём отличие между OAuth 2.0 и OpenID Connect
Вся разница сводится к различию процессов аутентификации и авторизации.
Простыми словами:
💩 Аутентификация — это когда мы проверяем, кто именно запрашивает доступ и является ли он тем, кем он себя представляет.
💩 Авторизация — это когда мы проверяем, имеет ли конкретный клиент доступ к запрашиваемой информации.
OAuth 2.0 используется для авторизации, а OpenID Connect для аутентификации. А ещё OpenID Connect делает возможным использование SSO.
Токены
Оба протокола используют токены. Токен — это строка, которая содержит зашифрованную или подписанную информацию.
💩 id_token — содержит информацию о клиенте, он выдается провайдером идентификации (IdP) в ответ на успешную аутентификацию пользователя. Может содержать, например, id пользователя, фамилию, имя, телефон и т.д.
💩 access_token — это токен доступа, который используется для совершения действий от имени пользователя. Может быть ограничен скоупом — перечислением прав, которые может делать приложение с этим токеном от имени клиента. access_token имеет короткий срок жизни в целях безопасности.
💩 refresh_token — это токен, который используется для получения нового access_token, когда старый истекает или отзывается. Имеет более длительный срок.
Все эти токены можно генерировать по-разному, но самый популярный формат — это JSON Web Token (JWT).
Структура JWT
💫 Заголовок (header) — состоит из типа токена и алгоритма хэширования подписи
💫 Полезная нагрузка (payload) — любые данные, которые вы хотите передать в токене. Payload не шифруется при использовании токена, поэтому не стоит передавать в нем чувствительные данные. Например, паспортные данные.
💫 Подпись (signature) — заголовок и нагрузка формируются отдельно в формате JSON, кодируются в base64, а затем на их основе вычисляется подпись, которая также становится частью токена.
🔀 Процесс на примере использования VK API
1. Приложение генерирует параметры запроса и отправляет пользователя на сервер авторизации oauth.vk.com, добавив к ссылке параметры, включая запрашиваемый scope, например, friends
2. Пользователю открывается окно, где он проходит аутентификацию — вводит логин и пароль
3. После входа открывается окно с запросом прав доступа. Пользователь нажимает на кнопку "Разрешить". Тем самым он авторизует приложение на выполнение действий от его имени с запрашиваемым scope.
4. Сервер авторизации генерирует access_token и refresh_token и возвращает их приложению
5. Теперь приложение может управлять списком друзей пользователя
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#архитектура #проектирование
🔐 OAuth 2.0 — протокол авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователей, без необходимости передавать логин и пароль. Вместо этого используются токены доступа.
👤 OpenID Connect — протокол аутентификации, который позволяет безопасно узнать сведения о пользователе, от имени которого совершается вход. OpenID Connect позволяет реализовывать сценарии, когда единственный логин можно использовать во множестве приложений, — этот подход также известен как single sign-on (SSO).
В чём отличие между OAuth 2.0 и OpenID Connect
Вся разница сводится к различию процессов аутентификации и авторизации.
Простыми словами:
OAuth 2.0 используется для авторизации, а OpenID Connect для аутентификации. А ещё OpenID Connect делает возможным использование SSO.
Токены
Оба протокола используют токены. Токен — это строка, которая содержит зашифрованную или подписанную информацию.
Все эти токены можно генерировать по-разному, но самый популярный формат — это JSON Web Token (JWT).
Структура JWT
🔀 Процесс на примере использования VK API
1. Приложение генерирует параметры запроса и отправляет пользователя на сервер авторизации oauth.vk.com, добавив к ссылке параметры, включая запрашиваемый scope, например, friends
2. Пользователю открывается окно, где он проходит аутентификацию — вводит логин и пароль
3. После входа открывается окно с запросом прав доступа. Пользователь нажимает на кнопку "Разрешить". Тем самым он авторизует приложение на выполнение действий от его имени с запрашиваемым scope.
4. Сервер авторизации генерирует access_token и refresh_token и возвращает их приложению
5. Теперь приложение может управлять списком друзей пользователя
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥16❤11👏3
Forwarded from Библиотека Системного Аналитика
Принцип пирамиды Минто.pdf
4.1 MB
Принцип пирамиды Минто. Золотые правила мышления, делового письма и устных выступлений
✍️ Автор: Барбара Минто
🗓 Год издания: 2004
🔤 Язык: русский
📚 Объём: 189 стр.
Эта книга учит эффективно составлять письменные документы и устные выступления. Согласно теории автора, текст делового документа хорошо воспринимается только в том случае, если его идеи логически взаимосвязаны и выстроены по принципу пирамиды.
Только такая структура делает сообщение максимально доступным для понимания, потому что мысли излагаются в порядке, оптимальном для восприятия. Эта теория прошла проверку временем: автор много лет преподает свой курс в крупнейших бизнес-школах, университетах и компаниях.
"Золотые правила" Барбары Минто необходимы всем, кому приходится иметь дело с составлением отчетов, служебных записок, докладов, выступлений, презентаций, а также всем, кто хочет научиться предельно ясно и правильно излагать свои мысли, вне зависимости от рода деятельности.
#навыки
✍️ Автор: Барбара Минто
🗓 Год издания: 2004
🔤 Язык: русский
📚 Объём: 189 стр.
Эта книга учит эффективно составлять письменные документы и устные выступления. Согласно теории автора, текст делового документа хорошо воспринимается только в том случае, если его идеи логически взаимосвязаны и выстроены по принципу пирамиды.
Только такая структура делает сообщение максимально доступным для понимания, потому что мысли излагаются в порядке, оптимальном для восприятия. Эта теория прошла проверку временем: автор много лет преподает свой курс в крупнейших бизнес-школах, университетах и компаниях.
"Золотые правила" Барбары Минто необходимы всем, кому приходится иметь дело с составлением отчетов, служебных записок, докладов, выступлений, презентаций, а также всем, кто хочет научиться предельно ясно и правильно излагать свои мысли, вне зависимости от рода деятельности.
#навыки
👍27🔥9❤3👎1
Версионирование REST API
Версионирование API — это поддержка в рабочем состоянии нескольких версий одного и того же метода. Версионирование API соблюдать требование обратной совместимости, позволяя вносить изменения без нарушения работы потребителей.
⚙️ Как это работает
1️⃣ Под номером версии фиксируется существующий контракт API, который используется потребителями
2️⃣ Если возникла необходимость внести изменения в существующий контракт, заводится отдельная ветка под дорабатываемый метод
3️⃣ Изменения публикуются в новой версии метода API, при этом старая версия остаётся рабочей до тех пор, пока у неё есть потребители
4️⃣ Потребители сами решают, в какой момент они будут готовы перейти на новую версию того или иного метода
✍️ Пример
Допустим, есть метод который позволяет опубликовать статью в блоге:
Метод принимает на вход в теле запроса следующие параметры, которые являются обязательными:
Если мы добавим новый обязательный параметр
Поэтому создаём новую версию метода
При этом старая версия метода (
Способы версионирования API
💫 Префикс URI
Пример:
✔️ Способ простой в проектировании, реализации и документировании
✖️ Создает большое количество дубликатов URL и может снизить производительность приложения
💫 Параметр запроса
Пример:
✔️ Способ рекомендуется, если важно HTTP-кеширование для повышения пропускной способности
✖️ Приводит к загрязнению URI, так как префиксы и суффиксы добавляются к основным строкам URI
💫 HTTP заголовок запроса
Пример:
✔️ Не приводит к загрязнению URI, легко реализовать
✖️ Приводит к неправильному использованию заголовков, т.к они нужны для метаинформации
💫 Feature-версионирование
У клиента API есть набор фич. При отправке запроса, сервер проверяет его набор фич и на этой основе сам определяет нужную версию для каждого клиента
✔️ Можно использовать в качестве внутреннего API
✖️ Со временем фичи могут вступить в конфликт, если отвечают за одну и ту же часть бизнес-логики
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#api
Версионирование API — это поддержка в рабочем состоянии нескольких версий одного и того же метода. Версионирование API соблюдать требование обратной совместимости, позволяя вносить изменения без нарушения работы потребителей.
⚙️ Как это работает
✍️ Пример
Допустим, есть метод который позволяет опубликовать статью в блоге:
POST /v1/articlesМетод принимает на вход в теле запроса следующие параметры, которые являются обязательными:
{
"text": "string",
"author": "string",
"noscript": "string"
}Если мы добавим новый обязательный параметр
category, не применяя версионирование API и не оповестив потребителей, то получим ситуацию, когда у потребителей будут сыпаться ошибки, а у нас пепел на нашу голову.Поэтому создаём новую версию метода
POST /v2/articles и все изменения реализуем там:{
"text": "string",
"author": "string",
"noscript": "string",
"category": "string"
}При этом старая версия метода (
POST /v1/articles) продолжает работать.Способы версионирования API
Пример:
GET /v1/usersПример:
GET /users?version=v1Пример:
GET /users, а версию передаём в headers: version=v1У клиента API есть набор фич. При отправке запроса, сервер проверяет его набор фич и на этой основе сам определяет нужную версию для каждого клиента
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#api
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍19❤9👏2💩2⚡1
Forwarded from Библиотека Системного Аналитика
Высоконагруженные_приложения_Программирование,_масштабирование,.pdf
14 MB
Высоконагруженные приложения. Программирование, масштабирование, поддержка
✍️ Автор: Мартин Клеппман
🗓 Год издания: 2018
🔤 Язык: русский
📚 Объём: 640 стр.
Книга поможет расширить кругозор по проектированию систем. Рекомендуется системным аналитикам уровня middle и выше.
В этой книге вы найдете ключевые принципы, алгоритмы и компромиссы, без которых не обойтись при разработке высоконагруженных систем для работы с данными. Материал рассматривается на примере внутреннего устройства популярных программных пакетов и фреймворков. В книге три основные части, посвященные, прежде всего, теоретическим аспектам работы с распределенными системами и базами данных. От читателя требуются базовые знания SQL и принципов работы баз данных.
#архитектура #проектирование
✍️ Автор: Мартин Клеппман
🗓 Год издания: 2018
🔤 Язык: русский
📚 Объём: 640 стр.
Книга поможет расширить кругозор по проектированию систем. Рекомендуется системным аналитикам уровня middle и выше.
В этой книге вы найдете ключевые принципы, алгоритмы и компромиссы, без которых не обойтись при разработке высоконагруженных систем для работы с данными. Материал рассматривается на примере внутреннего устройства популярных программных пакетов и фреймворков. В книге три основные части, посвященные, прежде всего, теоретическим аспектам работы с распределенными системами и базами данных. От читателя требуются базовые знания SQL и принципов работы баз данных.
#архитектура #проектирование
🔥27👍9❤6👏2
TOGAF. Краткий обзор
TOGAF (The Open Group Architecture Framework) — архитектурный фреймворк, который используется для проектирования, реализации и управления архитектурой предприятия.
Главное, что нужно знать о TOGAF
➖ самый распространённый фреймворк для корпоративной архитектуры
➖ предлагает метод разработки архитектуры — Architecture Development Method (ADM)
➖ имеет возможность расширения и адаптации исходной метамодели
➖ включает набор рекомендаций, шаблонов и практик для проектирования АП
➖ способствует эффективному управлению изменениями и реализации стратегии корпоративной архитектуры
TOGAF разделяет архитектуру предприятия на 4 домена (слоя):
💫 бизнес-архитектура (Business Architecture): определяет стратегию бизнеса, управление, организацию и ключевые бизнес-процессы.
💫 архитектура данных (Data Architecture): структура информационных ресурсов, включая логическую и физическую организацию данных, а также средства управления информацией
💫 архитектура приложений (Application Architecture): описывает приложения, которые нужны для работы с данными и бизнес-функциями, структуру и свойства приложений, их взаимодействие между собой и с другими элементами архитектуры, соответствие целям и требованиям бизнеса.
💫 технологическая архитектура (Technical Architecture): описывает аппаратную часть (железо), сети, промежуточное ПО
Структура стандарта TOGAF 10
Ссылки на каждую из частей фреймворка:
1. Fundamental Content
2. Series guides
3. TOGAF Library
1️⃣ Фундаментальный контент (Fundamental Content). Включает
*️⃣ Метод разработки архитектуры (Architecture Development Method (ADM) — центральный компонент TOGAF, который описывает последовательность фаз и шагов для разработки архитектуры предприятия. Каждая фаза содержит подробные руководства, входы, выходы, задачи и артефакты. ADM также поддерживает управление требованиями, архитектурными принципами, рисками, проблемами и изменениями, а также обеспечивает итеративный, циклический и непрерывный характер процесса разработки архитектуры.
*️⃣ Рекомендации к ADM (ADM Guidelines and Techniques)
*️⃣ Применения ADM (Applying the ADM)
Например, использование ADM в различных архитектурных стилях (например, Agile), применение итераций в ADM
*️⃣ Содержания архитектуры (Architecture Content)
Фреймворк , предоставляющий структурную модель для объектов-результатов, создаваемых архитекторами.
Позволяет их последовательно определять, структурировать и представлять.
*️⃣ Возможностей и управления АП (Enterprise Architecture Capability and Governance)
Руководство для создания оргструктур, процессов, ролей, обязанностей, навыков и т.д. Может реализовываться с помощью ADM.
2️⃣ Руководства серий (доменов) (Series guides).
Предлагают лучшие практики для применения корпоративной архитектуры
3️⃣ Библиотека (The Open Group Library) — дополнение к TOGAF. Содержит:
— справочные модели
— методические рекомендации
— общую практическую информацию
— руководство по созданию команды архитектуры предприятия
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#архитектура
TOGAF (The Open Group Architecture Framework) — архитектурный фреймворк, который используется для проектирования, реализации и управления архитектурой предприятия.
Главное, что нужно знать о TOGAF
TOGAF разделяет архитектуру предприятия на 4 домена (слоя):
Структура стандарта TOGAF 10
Ссылки на каждую из частей фреймворка:
1. Fundamental Content
2. Series guides
3. TOGAF Library
Например, использование ADM в различных архитектурных стилях (например, Agile), применение итераций в ADM
Фреймворк , предоставляющий структурную модель для объектов-результатов, создаваемых архитекторами.
Позволяет их последовательно определять, структурировать и представлять.
Руководство для создания оргструктур, процессов, ролей, обязанностей, навыков и т.д. Может реализовываться с помощью ADM.
Предлагают лучшие практики для применения корпоративной архитектуры
— справочные модели
— методические рекомендации
— общую практическую информацию
— руководство по созданию команды архитектуры предприятия
⭐️ Подборка материалов доступна в базе знаний по системному анализу
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥8❤5💩3🥱2👏1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
🧑💻 Будущее системного анализа — подкаст «Техно.Логично» от Газпромбанка
Раньше аналитики в основном писали ТЗ для инженеров. Но после agile-трансформации их задачи и зона ответственности в начали быстро меняться. Что будет дальше?
В подкасте:
🔹Почему работать как в 2018 больше не получится
🔹Почему роль системного аналитика в agile-команде вызывает вопросы
🔹Зачем аналитики пытаются отказаться от документации
🔹Связаны ли переработки с профессиональным ростом
🔹Какое будущее у профессии аналитика – и есть ли оно вообще
Посмотреть и послушать:
🔗YouTube
🔗Apple Podcasts
🔗Яндекс Музыка
🔗Google Podcasts
Раньше аналитики в основном писали ТЗ для инженеров. Но после agile-трансформации их задачи и зона ответственности в начали быстро меняться. Что будет дальше?
В подкасте:
🔹Почему работать как в 2018 больше не получится
🔹Почему роль системного аналитика в agile-команде вызывает вопросы
🔹Зачем аналитики пытаются отказаться от документации
🔹Связаны ли переработки с профессиональным ростом
🔹Какое будущее у профессии аналитика – и есть ли оно вообще
Посмотреть и послушать:
🔗YouTube
🔗Apple Podcasts
🔗Яндекс Музыка
🔗Google Podcasts
👍21❤4👎2🔥1
В канал Системный аналитик (в том числе для VIP-канала) ищем автора. Нужно будет писать посты с подборками полезных материалов в стиле канала.
Про условия
Как стать автором
Заполнить анкету и выполнить тестовое задание по ссылке.
Анкеты принимаем до 9 марта (суббота), 23:59 по МСК.
🍩 Плюшки участникам
Все, кто выполнит тестовое задание, получат доступ к VIP-каналу бесплатно и навсегда.
Остались вопросы? Пишите в комментарии 🔽
UPD: дедлайн продлили по многочисленным просьбам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍7💩6⚡2