GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
19.6K subscribers
2.09K photos
75 videos
207 files
1.19K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart

РКН №5013005196
Download Telegram
GetAnalyst - REST API - Важное про JSON.pdf
10.2 MB
💾 Важное про JSON за 5 минут + полезные ссылки 💾

JSON - это текстовый формат сообщений для обмена данными в Интернете.

Представляет данные в виде пар ключ-значение.

Пример:
{
"id": "0dfb98dd-32bf-474d-a1a5-222851847801",
"deviceType": "Робот-пылесос",
"createdAt": “2024-04-24”,
"isActive": false,
"colors": ["синий", "белый", "черный"]
}


Слева в "" всегда ключ, а справа, после : всегда значение.
Обратите внимание, что в кавычках "" не все значения справа.


JSON поддерживает всего несколько типов данных:

✔️Number (Целые и дробные числа): 12, -3455 или 24.5
✔️String (Строки): “Строка всегда в кавычках” или “” (пустая строка)
✔️Boolean (да-нет. флажок, логический тип данных): true или false
✔️Array (Массив или список): [“элемент 1”, “элемент 2”, “элемент 3”]
✔️Object (Объект данных, вложенные JSON): { "name": "Иван" }
✔️null (Пустое значение): null

Типа данных для даты и времени нет. Для всего, что нужно дополнительно, используются строки и дополнительные международные стандарты, применяемые к ним.


Простота и легкость чтения человеком сделали JSON основным выбором для многих приложений.

Почему удобство чтения человеком важно?

✔️ Разработчикам удобнее читать структуру сообщений и, соответственно, проще писать код, которые их обрабатывает.
✔️ Аналитики помогают заранее разработать контракты для Клиентов и Сервера, что ускоряет разработку приложений, описывают маппинги JSON-БД-UI, в частности, для интеграций и анализируют работу приложений.
✔️ Тестировщики в современных и сложных проектах тестируют не только пользовательский интерфейс и отображение данных на нем, но и API с его JSON.


JSON используется в REST API, GraphQL, файлах-конфигураций для систем.


Подробнее, с примерами и дополнительными ссылками, рассказала всё в мини-книге по JSON. Прикреплена к посту.

#RestApiGA
🔥206👍5❤‍🔥2
Какой HTTP метод следует использовать для привязки умного устройства к аккаунту пользователя?

POST /device
Меньше всего голосов за хороший вариант.

Коллеги, подписываем запрос авторизацией пользователя в Headers и привязываем новые устройства через POST к нему, т.е. добавляем запись в личный список устройств.

Но! Для лучшей читаемости метода я бы сделала более прозрачное название userDevice. Даже таблица, в которую мы будем добавлять запись в БД будет называться user_device или подобно.


POST /user/{userId}/device
Хорошее решение для панели администратора, когда авторизации конкретного пользователя нет. Но кажется, что привязка умных устройств - зона ответственности обычных пользователей приложения, а не администраторов.

Для пользователя метод избыточнен, т.к. в Headers уже есть авторизация (например, Token пользователя, через который можно получить userId).

PATCH /user/{userId}/device
Лучше POST, если выбрали избыточность, так как мы добавляем новое устройство, а не меняем его. Обсуждаемо.

PUT /user/{userId}/device/bind
Двойное /device/bind перебор, и похоже, что в середине не хватает {deviceNumber}. А метод PUT для изменения, а не для создания. Самый неподходящий вариант.


Что будет наиболее подходящим методом для включения умного устройства через API?

PATCH /devices/{deviceId}/power/on
Перебор с /power/on , лучше /activate , но метод PATCH идеален.

PUT /devices/{deviceId}/switch
Слово /switch мне просто не нравится, а PUT - перебор, т.к. меняет весь объект данных “умное устройство”, а не только его статус.

POST /devices/{deviceId}/activate
Идеально, если записываем данные о каждом включении и выключении устройства в журнал событий, который хранится в БД.

GET /devices/{deviceId}/activate
Не подходит, так как GET используется только для получения данных и не должен по принципам RESTful API менять данные на сервере.


Теория:
Структура URL метода

Ура! 🎉 Квиз разобрали!

🔔 А уже в ЭТОТ ЧЕТВЕРГ будет бесплатная онлайн-практика по REST API, регистрация открыта 🔔

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7
С этого года в теме по БД и SQL я решила взять вектор развития на работу со сложными темами 🤓🤍

На следующей неделе проведу онлайн-практикум, который будет полезен для аналитиков, кто уже работал с проектированием БД, хочет погрузиться в тему глубже, и кому предстоит работа с распределенной архитектурой систем.


Онлайн-практикум:
🔸 Проектирование распределенных БД
🗓 29 Апреля 2024 в 19:00 Мск

👩‍🏫 Екатерина Ананьева

План:
1. Базовые понятия архитектуры: сервис-ориентированная (SOA) и микросервисная (MSA).
2. Знакомство с проектом и выделение сущностей.
3. Определение логической и физической моделей БД с разбором примеров по проекту.
4. Практика. Фокус на проектировании физических моделей БД - PostgreSQL.
5. Обзор шаблона постановки задачи на разработчиков.
+ Алгоритмы синхронизации данных.

Сразу после записи на практику будет доступно последнее актуальное занятие по миграции данных между БД, чтобы сразу было что изучать и не было скучно в ожидании 🙂


Подробнее о продвинутых практикумах по БД и SQL можно узнать по этой ссылке, или задать вопрос в ЛС @getanalyst.
16👍1
🟧 Postman: Практическое руководство с примером тестирования реального API 🟧

Это короткий гайд для создания вашего проекта в инструменте тестирования и документирования API - Postman.

Чтобы было интересно, я взяла простой, но реальный и очень практичный API DaData. У них, конечно, не RESTful, но зато он частично-бесплатный, понятный и рабочий 🙌

Если вам уже сегодня вечером удастся отработать по этой инструкции и создать первую коллекцию запросов Postman, то завтра на онлайн практике по REST API вам будет еще интереснее!

Помним, что коллекции API в Postman и Swagger - это часть вашего портфолио системного аналитика, а также ключевые навыки в соответствующем разделе резюме ⭐️

🟧 ОТКРЫТЬ РУКОВОДСТВО 🟧

#RestApiGA
15🔥11👍5🥰1
📌 На завтра! Подготовка к практике по REST API и Postman 📌

Коллеги, завтра у нас пройдет практический вебинар, на котором мы с вами в прямом эфире получим следующие результаты:

✔️ Освоим структуру запросов и ответов REST API, JSON.
✔️ Изучим готовую REST API документацию и подход к её разработке.
✔️ Освоим инструмент Postman для тестирования и разработки публичной документации REST API.

Работать мы будем вместе. Важно, чтобы вы получили результаты!


🔸 Небольшая инструкция по подготовке:

1. Подключиться с компьютера.
Идеально, если у вас два монитора.
Либо одна половина экрана занята трансляцией, а вторая Postman-ом.

2. Зарегистрировать аккаунт в Postman и перед эфиром войти в приложение.
Можно использовать онлайн версию: https://www.postman.com/
Можно скачать и установить на компьютер: https://www.postman.com/downloads/
Я буду работать в веб-версии, через браузер.

VPN можно отключить. Запрещенки не будет 😀


Подключайтесь ЗАВТРА в прямой эфир, чтобы:
+ освоить REST API, вопросы по которому стали неотъемлемой частью собеседований на системного аналитика, и который регулярно используется в работе над средними и крупными проектами,
+ изучить инструмент Postman,
+ и получить обратную связь по вашим вопросам!


📚 Знакомство с REST API через Postman: с нуля до рабочих методов
📅 25 АПРЕЛЯ, 19:00 МСК
🔗
ЗАРЕГИСТРИРОВАТЬСЯ
🔥173👍1😍1
Сегодня ехала в одно из любимых мест для работы и радовалась.

Во-первых, дорога очень красивая, частично вдоль океана. А во-вторых, я до этого места могу гулять. Всего 12 тысяч шагов пешком до океана, хоть каждый день! ♥️ Но пока это только регулярная прогулка по выходным.

Я особо не рассказываю что происходит у меня в жизни, но как всегда много всего.

Одно из приятных событий: у меня исполнилась мечта прошлого года. Я теперь живу в доме. Год назад задумалась об этом, искала место, но не нашла. Жила с этой мечтой, думала, что-то делала видимо, и в итоге она осуществилась))

Кто был на одном из онлайн-практикумов в январе-феврале могут вспомнить, как у меня посредине эфира в апартаменты вошла пожарная проверка, перед этим раз 5 громко постучав и затем открыв дверь ключом. Я была в шоке. Это в местной квартиной жизни вывело из себя окончательно.

Теперь я наслаждаюсь жизнью в спокойном районе за городом. Нашла 3 любимых кафе для работы, чтобы менять фон. А от дома до океана можно гулять.

Даунтаун калифорнийского Сан-Диего остался в 30-минутах на машине. От квартиры в городе до океана только ехать, гулять было невозможно из-за кучи шоссе, которые преграждают путь.

Начало года хорошее. Получаю много вдохновения от нового места и продолжаю заниматься любимыми творческими задачами с новым приливом сил.

В очередной раз убедилась в том, что все мечты реализуемы. Нужно только время, терпение и решимость, чтобы действовать))

Фото из любимого кафе для работы со слайдом сегодняшней презентации добавила. Положительными эмоциями зарядилась. Ко встрече с вами готова ♥️
61👍14❤‍🔥5🤩4🔥3
🔔 Онлайн-практика сегодня в 19:00 МСК 🔔

Знакомство с REST API через Postman: с нуля до рабочих методов
ЗАРЕГИСТРИРОВАТЬСЯ

Не упустите важную практику, которая может изменить вашу карьеру и дать новые навыки сразу!

🔔 Следите за уведомлениями в Telegram-канале и на почте 🔔

Обязательно подключайтесь к эфиру с компьютера, чтобы получить максимум! 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10
❗️Уже через 3 часа❗️

Практический вебинар с Екатериной Ананьевой!

📹 Знакомство с REST API через Postman: с нуля до рабочих методов
19:00 - 22:00 Мск

Ссылку на прямой эфир пришлем в канал за 15 минут до начала.
15👍4
😂👍👍❤️👌😅😊😊😍😘

❗️До начала 15 минут❗️

📹 Знакомство с REST API через Postman: с нуля до рабочих методов

Переходите по ссылке ➡️ https://pruffme.com/webinar/?id=4fe4fcea4fbdffd28f6c1891cc97d942 и начинаем!
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Я не буду рассказывать что вчера было 😱

Хотела подготовить развернутый пост, чтобы поделиться впечатлениями о практике по Postman+REST API. Но коллеги переслали мне несколько отзывов. И в чате практики их тоже было много. Они рассказывают всё за меня.

Я ценю людей, кто приходит в GetAnalyst на практикумы. Все осознанные и стремящиеся к результатам! И это в обратной связи раскрыла одна из участниц.


Валерия:

Понравилась подача материала, достаточно просто и понятно объяснен.

Отлично проведенное время, после которого хочешь дальше изучать тему и инструменты.

Было интересно услышать не только про опыт спикера, но и про реальные задачи и трудности с которыми сталкивались.

Круто, что есть действительно заинтересованная аудитория, не было сильного хаоса в чате, что бывает иногда когда на вебинар приходят люди совсем далекие от темы либо слабо мотивированные)

Спасибо!


Спасибо вам, что вы создаете эту крутую атмосферу, где мы работаем и развиваемся вместе.

Мои эмоции и впечатления:

💛 Спасибо за ваше участие! Я искренне рада, что вы сделали мой день и это занятие еще лучше, чем я ожидала!
💪 У всех участников, кто работал с нами онлайн, получены результаты! Каждый ушел со своим мини-проектом для портфолио.
👩‍🎓 Я дала понятное домашнее задание, по которому можно продолжить практику самостоятельно, чтобы закрепить навык и далее разбираться в темах API + Postman.

Результаты:
1. Поняли основы REST API.
2. Изучили 2 API-документации.
3. Поняли, когда и зачем нужен REST API.
4. Протестировали реальный API и создали коллекцию запросов Postman.
5. Узнали как оформить коллекцию и создать из неё документацию, чтобы делиться Postman-портфолио с работодателями и с разработчиками.


Это вау-результаты за ОДИН вечер! А продолжение практики с более глубоким погружением в тему ждёт нашу новую команду на программе Дизайн REST API 🙌 Встречаемся 6 мая на первом онлайн занятии 😊


Запись вебинара REST API + Postman будет отправлена только для зарегистрированных участников в СБ. Регистрация будет открыта еще 24 часа🙂
26👍9❤‍🔥1
📄 Шаблон постановки задачи на REST API метод 📄

Структура требований для разработчиков Backend, которую можно использовать в Confluence при описании контрактов REST API методов.

1. Название метода
2. Общее описание
3. Алгоритм работы
4. Пример запроса
5. Пример ответа: успех и ошибки
6. Маппинг данных
7. Дополнительные требования

Аналогичную структуру постановки задачи можно реализовать через инструменты документирования и тестирования API - Postman и Swagger.

Подробнее в статье:
🔗Структура постановки задачи на REST API метод

Также по ней очень удобно делать команды к ChatGPT - это Искусственный Интеллект, который как младший системный аналитик помогает в разработке требований и делает половину работы за вас 🙌

Если соберём 100 ❤️‍🔥 под этим постом, на следующей неделе покажу как это делать на примере нашего проекта с умным домом.
❤‍🔥13215👍9
Я постоянно общаюсь с руководителями ИТ-компаний, с разработчиками. И когда речь заходила о найме, знаете, что чаще всего я слышала и слышу:

Где нормальные аналитики? 🧐

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

Получается, когда одни кричат, что рынок IT переполнен и скоро лопнет от переизбытка, другие заявляют, что не могут найти толкового специалиста в команду, т.к. надо искать иголку в стоге сена 🤔И за эту «иголку» компания всегда готова хорошо платить!

За правильную комбинацию навыков работодатели готовы отдать любые деньги. При необходимости, даже помочь с переездом и дать возможность работать из любой точки мира.

Развитие IT-специалиста можно сравнить с игрой в шахматы.
Изучение и понимание, как ходят фигуры, а в случае аналитика это БД, Интеграции, API, архитектура, Kafka, много всего, и даже нейросети... это все продвигает быстрее по игровому полю к победе.

Все эти навыки — ваше войско ♟️И если, например, величественный ферзь — это понимание REST API, то король — это предводитель — знания об архитектуре. И дорога к ней лежит через ферзя.

В итоге то, как вы ловко управляете «фигурами», ценят и работодатели, и разработчики.

Если заканчиваешь учиться, цель развиваться — Game over. То же самое происходит и с доходом — он перестаёт расти.

А вот когда переходишь из позиции "я борюсь за работу", в позицию, где работодатель борется за тебя и ты диктуешь условия, то где-то здесь начинается волшебство 🙌

Наращивайте ваше войско и учитесь управлять им 😉 Желаю отличных выходных!
🔥56💯109👍4🥱4🤔2
Напоминание для тех, кому актуально разбираться с проектированием БД на продвинутом уровне:

📚 Проектирование распределенных БД
🗓 29 Апреля 2024 в 19:00 Мск

👩‍🏫 Екатерина Ананьева

План:
1. Базовые понятия архитектуры: сервис-ориентированная (SOA) и микросервисная (MSA).
2. Знакомство с проектом и выделение сущностей.
3. Определение логической и физической моделей БД с разбором примеров по проекту.
4. Практика. Фокус на проектировании физических моделей БД - PostgreSQL.
5. Обзор шаблона постановки задачи на разработчиков.
+ Алгоритмы синхронизации данных.

Сразу после записи на практику доступно последнее актуальное занятие по миграции данных между БД, чтобы сразу было что изучать 🙂


Подробнее о продвинутых практикумах по БД и SQL можно узнать
по этой ссылке, или задать вопрос в ЛС @getanalyst.
👏7🔥4👍32
GetAnalyst - ChatGPT + REST API.pdf
12.6 MB
🤖 ChatGPT, сделай дизайн REST API, пожалуйста 🙏

Технологии захватывают мир и надо быть в тренде.
Как только я узнала про общедоступный Искусственный Интеллект (ИИ) ChatGPT зимой 2022, то сразу же начала внедрять его в свою работу. Достаточно много задач я сейчас решаю с его помощью.
Но. Есть нюансы. Важно обучаться работе с ним, учиться строить запросы, искать рабочие связки инструментов, чтобы он действительно помогал, а не тратил время.

На прошлой неделе я опубликовала пост со статьей, где представлена структура постановки задачи на метод REST API. В нем пообещала разобрать, как сделать постановку задачи на разработчика с помощью этой статьи + ChatGPT.

📄 К статье добавила гайд “ChatGPT: Постановка задачи на REST API”. В нем я показала, как создается наполнение задачи с помощью ИИ.

Посмотреть команды онлайн можно по этой ссылке (возможно вам потребуется VPN, доступно без авторизации в ChatGPT) 🙂

#RestApiGA #SHGA
30👍3🔥3
📚 Что почитать и посмотреть по REST API: подборка материалов от GetAnalyst 📚

У нас много новых участников в сообществе 🙌 И…! Вместо того, чтобы рассказывать о себе, я решила сделать для вас подборку из полезных материалов по проектированию REST API. Так вы лучше узнаете меня - Екатерину Ананьеву - не на словах, а на деле 🙂

Материалы расположены по порядку - от простого к сложному. Они помогут вам сделать крутой прорыв в освоении темы и разобраться в сложных вопросах.

(В) Связь базы данных и дизайна REST API

(C) Простыми словами про API

(В) Postman: навык тестирования REST API за вечер

(Т) Проект “Система для автосервиса”: полный разбор от проектирования базы данных до дизайна REST API методов.
Ч 1. Проектирование БД
Ч 2. REST API

(В) Проект “Система для автосервиса” - видео-обучение.
1. Системный анализ проекта с нуля: Сбор бизнес-требований, погружение в контекст
2. Системный анализ для проекта: определение сущностей и проектирование логической модели БД
3. REST API с нуля: дизайн методов для работы менеджера с заявками автосервиса

(C) Postman: Практическое руководство с примером тестирования открытого API

(П) Вопросы и ответы по REST API: собеседование на СА

(С) Мини-книга с подробным разбором формата сообщений JSON

(Т) Разбор проекта “Мобильное приложение G-Food для подсчета калорий”

(В) Собеседование на СА: разбор задачи на асинхронные запросы в REST API

(C) Структура постановки задачи на REST API метод

(Т) Разбор проекта по REST API для системы умного дома Smart Home GA

(П) gRPС vs REST - что выбрать для проекта

(C) Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)

(C) Программирование на Python для системных аналитиков: как сделать REST API с нуля

Также вы можете найти у нас мини-обучения по REST API и практическую программу "Дизайн REST API" для опытных аналитиков.

(В) Видео
(П) Подкасты
(С) Статьи
(Т) Серия Telegram-постов с разбором проекта


Делитесь с коллегами, особенно с джунами и мидлами СА!
Сохранили? ❤️

#RestApiGA
👍4217🔥12💯4❤‍🔥3🤔1
🎙 Угадай подкаст 🎙

С этого года появился подкаст GetAnalyst. Пока я выбираю темы к разбору из тех, что меня раньше спрашивали в чатах, важное и актуальное для системных аналитиков.

Недавно были эпизоды по gRPC и REST API с разбором вопросов с собеседований, а следующий эпизод совсем вау! Я большой фанат именно технических тем! 💛

В новом эпизоде будет тема, связанная с нестандартным использованием API. На собеседованиях она может ввести в ступор. А если у вас не было опыта работы с этим механизмом, то скорее всего на вопрос вы не ответите, не решите задачу или уйдёте не в ту степь, как это обычно бывает, если пытаешься ловко выкрутиться из ситуации за счет логики.

Готовилась к записи в обстановке любимого кафе. И подумала, что будет круто, если вы попробуете угадать тему по расплывчатым очертаниям букв на фоне пальм, или интуитивно 😉

Давайте включать креативность!

Пишите комментарии под этот пост:
1 + тему предстоящего эпизода,
2 + тему, которую вы хотели бы увидеть в подкасте как можно скорее.


Выбирать буду двух победителей:
1. кто первый наиболее близко угадает тему нового эпизода до релиза,
2. кто предложит ТОП-тему для нового подкаста. За новые темы в комментариях можно голосовать))

В понедельник подведу итоги. Победителям дам доступы к мини-обучениям в записи под индивидуальный запрос, чтобы было актуально именно для вас (БД, REST API, GraphQL, Интеграции, Архитектура или ChatGPT).

P.S. Из-за ботов чат держим закрытым. Поэтому возможно придется немного подождать аппрув, чтобы сделать комментарий.

Всем креативности и идей, жду ваши комментарии 😊
👍175🔥1
В новом эпизоде разобрана работа механизма вебхуков на примере интеграции между медицинской и страховой системой.

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

Актуально для опытных системных и бизнес-аналитиков, кто только знакомится с интеграциями систем или уже давно работает с ними, но еще ни разу не работал с вебхуками.

1:50 - Обсуждение возможных вариантов решения задачи, если вы не знакомы с механизмом вебхуков (Webhooks). Polling и Long Polling и почему.
08:53 - Что такое вебхуки - разбор на примере интеграции медицинской и страховой систем.
10:42 - Как технически реализуется вебхук в рамках интеграции систем, когда в нашу систему-подписчика надо получать уведомления из внешней.
14:54 - Почему механизм Webhooks лучше механизма Polling и других подобных способов опроса внешней системы по таймерам, по расписанию.
20:30 - Как обеспечить работу вебхуков: реализация на стороне системы, которая оповещает о событиях.
26:23 - Почему рекомендуется использовать очереди сообщений (RabbitMQ / Kafka) для рассылки уведомлений о произошедших событиях при реализации вебхуков. Алгоритм реализации обработки сообщений из очереди.
28:47 - Механизм подписки на вебхуки для потребителей уведомлений.
31:05 - Прием вебхуков на стороне системы-подписчика в очередь и последующая их обработка.
32:27 - Про реализацию метода POST для вебхука на стороне системы-подписчика.
36:08 - Больше примеров задач и бизнес-процессов, где нужны вебхуки.
39:49 - Подведение итогов и рекомендации.

🔗 Дополнительные материалы к подкасту

Эпизод доступен в:

Apple Podcast
Яндекс.Музыка
YouTube
Telegram
Castbox
Spotify

Подписывайтесь, чтобы не пропускать новые эпизоды! 🎙
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥8👍3🥰1💯1
Какая цель? 🎯

Это мой обязательный вопрос перед тем, как коллеги попадают к нам на практические программы в GetAnalyst. Обучение ради галочки не нужно ни мне, ни вам. А мы еще заставляем думать, практиковаться и совершать ошибки.

Вот список ваших целей, которые реально мотивируют на результаты:
◾️Хочется сменить проект, но на текущем месте работы нет возможности получить нужный опыт
◾️Хочу освоить навык, чтобы меня повысили в ЗП
◾️Структурировать знания
◾️Обновить резюме и пополнить его новыми навыками
◾️Освоить новые инструменты

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

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

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

А если вам нужна поддержка, структура, важен срок и вы сейчас думаете о получении опыта в REST API, то до первого онлайн-занятия 6 мая, вы еще можете успеть присоединиться на практическую программу Дизайн REST API.

В течение 2-х месяцев мы будем работать над проектом с нуля до результата: переноса разработанных методов из документации Confluence в интерактивную документацию Postman и Swagger 🤩

Профессиональный рост и интересные проекты начинаются с обучения. Я верю в вас и всегда готова поддержать ❤️

Делайте смелые шаги в своем развитии. Любыми способами! Всё получится! 🚀
👍104🔥3
📌 Новый проект TelMed: от монолита к микросервисам 📌

Проект "TelMed" - платформа для оказания услуг телемедицины (онлайн приемы к врачу), которая позволит обеспечить удобный и безопасный доступ к медицинским услугам для пациентов вне зависимости от их местоположения.

Для пациентов необходимо будет разработать мобильные и веб-приложение. Для врачей аналогично. Также необходимо будет создать приложения для менеджеров по работе с клиентами, тех-поддержки и администратора системы.

Основная функциональность:

🔸1. ЛК Пациента
Регистрация пациентов. Хранение персональных данных и медицинской истории, включая болезни, диагнозы, лечение, результаты анализов.

🔸2. Запись на прием

Поиск врачей, планирование и отслеживание консультаций, с уведомлением пациентов по всем доступным каналам связи: телефон, почта, push.

🔸3. Учет оборудования для сбора и анализа медицинских показателей
Управление заказом и доставкой дополнительного оборудования. Заказ и доставка на период проведение консультации, в зависимости от вида услуги.

🔸4. Проведение онлайн-консультаций
Защищенная видеосвязь в реальном времени. Чат и возможность обмена документами во время консультации. Интеграция с диагностическими инструментами для сбора и анализа медицинских показателей в реальном времени

🔸5. Аптечные услуги
Создание электронных рецептов. Мониторинг наличия лекарств в партнерской сети аптек, их резервирование или заказ. Управление доставкой лекарств.

🔸6. Анализы
Выдача направлений на анализы. Автоматическое получение результатов.

🔸7. Платежи
Подключение платежной системы.

🔸8. ЛК Врача
Профили врачей и настройка доступного времени для консультаций.

Важно обеспечить защиту данных согласно медицинским стандартам и законодательству.

Это новый проект. С чего начать?
Если по бизнесу уже разобрались, ФТ и НФТ сделали, то теперь надо определиться с архитектурой. Монолит или микросервисы? Будем разбираться в этих темах и исследовать варианты.

Welcome to the new GetAnalyst project!

#АрхитектураGA #TelMed
30👍14🔥4❤‍🔥1
🪨 Монолитная архитектура и ее особенности 🪨

Монолитная архитектура – это подход к разработке программного обеспечения, при котором все компоненты приложения объединены в единый и неделимый блок, называемый монолитом.


В такой архитектуре вся функциональность приложения, включая:

+ интерфейс пользователя (UI),
+ базу данных (БД),
+ бизнес-логику (алгоритмы обработки данных),

обычно реализуется внутри одного приложения и работает как единое целое. Весь код в одном месте.


Проще говоря, когда вы ставите задачу на программиста, то вы не задумываетесь о понятиях Backend-Frontend,
клиент-сервер, с мобильными приложениями не работаете. Системный аналитик в таких проектах занимается описанием экранов и алгоритмов обработки данных, ставит ОДНУ ЗАДАЧУ НА ОДНОГО ПРОГРАММИСТА (full-stack), который делает всё. Идеально начинать карьеру в таких проектах и из них расти дальше.

Но UI+БД+Логика - это прям жесткий монолит 😢 Есть другой вариант монолитной архитектуры, когда это касается только сервера.

Из-за наличия мобильных приложений, которым проблематично напрямую делать SQL-запросы в БД, UI начали активно выносить из этого жесткого монолита. И сейчас аналитики как правило делают задачи отдельно на UI (Frontend / Mobile), и отдельно на API+БД (Backend). При этом проект может всё еще оставться монолитным в части сервера, так как вся-вся логика обработки данных лежит в одном месте, а все данные в одной БД.

Монолиты хороши для небольших проектов и стартапов 🙌
Но когда мы говорим о высоконагруженных многопользовательских системах, таких как системы бронирования билетов на самолеты. маркетплейсы, социальные сети, платформы для обучения и другие, которыми ежедневно пользуются сотни тысяч или даже миллионы человек, то развивать проект в монолитной архитектуре становится болью для всей команды.

Почему монолиты приносят страдания для больших проектов? Расскажу в следующем посте 👇

#АрхитектураGA
👍174🥱1
✖️ Проблемы монолита с примерами по проекту ✖️

🔺1. Масштабируемость
Добавление новых функций и рост пользователей требуют больше затрат на серверные мощности: память, ядра процессора и другие.

> Добавляем интеграцию с лабораторией анализов - из-за новых функций может возрастать количество ресурсов, используемых на сервере.

> Планируется повышение нагрузки на приложение в 2 раза из-за новой рекламной акции: надо запустить еще несколько копий ВСЕГО такого же огромного монолита, к уже работающим параллельно копиям приложения. В архитектуре с сервисами добавить копии можно было бы только на основной сервис поиска врачей, который будут “атаковать” в процессе рекламы.



🔺2. Сложность поддержки и развертывания
Бывает, что приходится полностью останавливать работу системы в процессе обновлений. Это почти недопустимо в современных системах. Важно работать 24/7, чтобы обеспечивать высокий уровень сервиса.

> В существующем методе оплаты нужно поменять алгоритм - в результате оплаты сохранять код оплаты. Маленькая задача. В условиях монолита, что выпустить обновление на прод. придётся весь сервер обновить. В условиях сервисов - только маленький сервис платежей, который бы не блокировал поиск докторов и другие важные функции системы.


🔺3. Сложность масштабирования команды
Приходя в проект, аналитики, разработчики и тестировщики должны узнать очень много обо всех частях системы, чтобы не вредить ей при развитии и знать, как очередная маленькая функция, может задеть 100 существующих.

Для аналитиков полноценное погружение в проект может занимать от 3-х месяцев до года. И к концу испытательного срока вы все еще можете допускать ошибки проектирования и продолжать исследования дальше. Это считается нормой в монолитах.
В условиях архитектуры с сервисами аналитику часто достаточно знать только про свои сервисы и его БД, а также про API связанных сервисов внутри проекта и API внешних систем.


🔺4. Единая точка отказа
Монолит ломается целиком.
Из-за отказа в работе основной и единственной БД, возникает остановка работы всей системы. Напротив, в сервисной архитектуре, остановят работу только те сервисы, которые работают с этой БД.


🔺5. Гибкость и инновации
Затрудняется внедрение новых технологий и подходов в разработке, что делает больно разработчикам.

Высококвалифицированные специалисты редко идут в такие проекты, так как им не хочется деградировать и поддерживать легаси код (написанный на старой версии языка, с использованием устаревшего фреймворка, без документации).

Я тоже всегда избегала таких проектов, т.к. знала, что уровень команды, с которой предстоит работать, будет низкий, и я не смогу развиваться - не будет возможности пробовать новое, спрашивать коллег и расти.


Это основные проблемы монолитной архитектуры 😔

Но в ней есть и очень много плюсов:
+ легкость в разработке
+ не нужна супер-опытная команда
+ нет проблем в синхронизации данных, которые распределены по разным БД
+ легче устанавливать проект на сервере
Она идеальна для стартапов! 🚀

Монолит - это не плохо. Его можно сделать архитектурно красивым, и с ним будет интересно и приятно работать 🙌 Но всё зависит от опыта программистов, архитекторов и аналитиков, которые участвуют в разработке.

Вопрос про недостатки монолитов важно знать, если предстоит сотрудничество с архитекторами. А также он есть среди подборок теоретических вопросов для собеседований на СА.
Сохраняем этот пост с примерами в своей памяти, чтобы быть готовыми к развернутым ответам 🙂

#АрхитектураGA #TelMedGA
21👍8🔥5