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
🇺🇸 АНГЛИЙСКИЙ ДЛЯ АЙТИШНИКА:
когда нужен и как учить?


Английский в IT - это довольно важный навык, который не только открывает новые горизонты, но и помогает в работе.

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

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

Если работаете в компании, которая имеет клиентов не из России или располагается в другой стране, то часто знание языка на свободном уровне владения - это необходимый навык.

Про важность навыка владения английским рассказали, но вот ещё несколько советов о том, как учить английский не до седых волос ⬆️

#hardGetAnalyst
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10🤔1
Привет! Продолжим разбор квиза по REST API 🙂

6. Какой метод и эндпоинт используются для получения списка всех зарегистрированных устройств в системе умного дома?

GET /devices/all
Дополнения /all и /list для получения списков избыточны, так как достаточно того, что в эндпоинте у нас нет указателя на конкретный объект.
GET /devices - мы получаем список.
GET /devices/{deviceId} - мы получаем умное устройство по его id.


POST /devices/list
За получение данных отвечает метод GET, поэтому POST и PUT нам нам не подходят. Можно было бы POST при большом количестве фильтров, но здесь это не нужно.

GET /devices
Идеальный вариант без избыточных /list и /all.


PUT /devices/list
Аналогично методу POST.


7. Какой метод и эндпоинт подходят для массового удаления умных устройств из системы?


DELETE /devices
Отличное решение, за которое было отдано большинство голосов. Надеюсь вы догадываетесь куда отправить список id к удалению 🙂
query-параметры


И последний легкий вопрос:
9. Какой метод и эндпоинт лучше всего подходят для изменения данных об умном устройстве?

PATCH /device/{deviceId}
Идеальный вариант. К изменению в body передаются только те параметры, которые надо поменять.

POST /device/{deviceId}/update
Можно для изменения данных использовать метод POST, и добавить в конец edit или update, чтобы показать, что мы хотим редактировать. Но зачем, если для этого есть специальные методы PATCH и PUT.
Это возможный вариант REST API или HTTP API, но это не RESTful API точно.

GET /device/{deviceId}/edit
Метод GET рекомендуется использовать только для получения данных.

PUT /device/{deviceId}
Можно, но мне PUT не нравится, т.к. надо передавать все-все данные на вход, даже те, которые обновлять не надо. Считаю избыточным и я бы его не выбрала.



Теория к этому разбору:
Структура URL:
⭐️https://t.me/getanalysts/1602
Про выбор методов:
⭐️https://t.me/getanalysts/1608
⭐️https://t.me/getanalysts/1581

#RestApiGa
👍118🔥2
Когда впервые сталкиваешься с задачей проектирования REST API, особенно имея опыт работы с проектированием интеграций, то кажется, что это просто 🙂

Но на деле можно столкнуться со следующими проблемами:

В одном месте эндпоинты /user, а в другом /documents. А как правильно?
В одном месте метод называется POST /createDocument, а в другом POST /user
А почему у нас в API все методы POST
Для метода на изменение данных выбрать PUT или PATCH?
А мы тут удалить документ из списка хотим. На экране его скроем, а в базе оставим. Что брать? PUT, PATCH или DELETE для API?
А в JSON мы делаем "userId" или "user_id" или "user-id"?
А если у нас пустой список, то возвращаем [] или HTTP-404? И вообще в каком формате у нас ошибки?

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

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

Чтобы разработать гайд, я начинаю с того, что изучаю лучшие практики дизайна API и уже существующие API на проекте. Гайд по дизайну REST API включает в себя понятные правила, которые помогают определить структуру запросов и ответов. Например, рекомендации по именованию ресурсов, выбору типов методов и кодов ошибок.

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

Создание гайда по дизайну REST API помогает стандартизировать процесс проектирования.

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

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍2
В жизни все начинается с принятия решения. Без этого никакие перемены в жизни не происходят.

Многие говорят "Я попробую", но этого недостаточно. Внутри то будет “Ну попробую, ну не получится, ну и ладно”. Так мы это на самом деле воспринимаем, наш мозг.

Гораздо важнее сказать "Я сделаю. С любым результатом”. Эта маленькая корректировка в словах может кардинально изменить ваше восприятие задачи.

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

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

Сам процесс принятия решения может занять много времени, порой даже годы, и это нормально. Главное выбрать то, что вы действительно хотите, и превращать желаемое в цель. Каждый раз, когда мы отказываемся от решения, мы фактически выбираем оставаться в своей зоне комфорта, предавая себя и становясь критиком своих несбывшихся мечтаний.

Мы боимся перемен. Я до сих пор боюсь. Но на самом деле, это не мы боимся, а наш мозг, который стремится сохранить все как есть. Я постоянно учусь игнорировать эти страхи, говоря мозгу "Все хорошо, это нормально", и при этом делаю смелые шаги вперед, и не все удачные с первого раза.

Я переезжала из страны в страну, из города в город, начинала карьеру как стажер-аналитик и дошла до должности ведущего аналитика, наемного тех директора и консультанта, запустила GetAnalyst и веду свою ИТ-компанию. Ничего из этого не далось мне легко: всё через упорную работу и беседы с самой собой, чтобы не дать мозгу сдерживать меня.

Рассказы мозгу, что всё возможно - одна из моих главных задач, чтобы всё получалось 😁

Принимайте решения, следуйте за ними и позвольте этим решениям формировать вашу жизнь. Это не всегда легко, но определенно стоит усилий.
39🔥19❤‍🔥10👍2
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