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
9. Какой метод и эндпоинт лучше всего подходят для изменения данных об умном устройстве?
Anonymous Poll
55%
A) PATCH /device/{deviceId}
11%
B) POST /devices/{deviceId}/update
2%
C) GET /devices/{deviceId}/edit
32%
D) PUT /device/{deviceId}
👍3🔥3
10. Что будет наиболее подходящим методом для включения умного устройства через API?
Anonymous Poll
30%
A) PATCH /devices/{deviceId}/power/on
17%
B) PUT /devices/{deviceId}/switch
41%
C) POST /devices/{deviceId}/activate
12%
D) GET /devices/{deviceId}/activate
🔥6👍1
🌊 КОГДА ВЫГОДНЕЕ ИДТИ В ОТПУСК? 🌊

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

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

Порой разница в этом отношении может быть вполне значительной!

☝️Важно: речь идёт о специалистах, которые работают по стандартному 5-дневному графику и отдыхают на январские, майские и другие официальные праздники.
Для тех людей, которые трудятся по сменному графику или на фрилансе, то хоть на Новый год, хоть 8 Марта – разницы при выборе периода отпуска скорее всего не будет.


Итак, наши рекомендации:

1️⃣ Чтобы получить больше отпускных, выбирайте месяц с наибольшим количеством рабочих дней

23 рабочих дня - июль,октябрь
22 рабочих дня - август
21 рабочий день - апрель, сентябрь, ноябрь, декабрь

Самые невыгодные - январь и июнь☝️


2️⃣ Чтобы сходить в продолжительный отпуск, выбирайте период рядом с праздничными нерабочими и выходными днями

Ориентиры:
1-8 января
23-25 февраля
🌸8-10 марта
🌸28 апреля-1 мая
🌸9-12 мая
29-31 декабря


3️⃣ Советуем дробить отпуск на две части
Например, по две недели весной и осенью. Так вы сможете насладиться разными временами года и не перегореть к следующим каникулам.


4️⃣ Берите отпуск с понедельника
Если возможно, планируйте отпуск так, чтобы он начинался с понедельника. Сможете использовать выходные дни как часть отпуска, не тратя на них дополнительные дни каникул.


👉 Обратите внимание: производственный календарь меняется каждый год. Если отпуск вам нужно планировать с осени, то заранее посмотрите праздничные дни.

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

Желаем с выгодой насладиться предстоящим отпуском! 😉✈️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍255
💫 Структура URL запроса в REST API 💫

1️⃣ Протокол (обяз.): http/https.

2️⃣ Доменное имя (обяз.): адрес API в сети Интернет.

3️⃣ Путь (Path), составная часть URL.

++ Базовое описание API:
+ api - указатель на каталог API, необязательная часть пути, если на этом доменном имени не работает сайт системы.
+ Имя API - папка с группой API, объединенных общей логикой, настоятельно рекомендуется указывать.
+ Версия API - настоятельно рекомендуется указывать.

++ Название endpoint-а, допустима иерархия:
+ Имя ресурса (обяз.) -
имя объекта данных, которым необходимо будет управлять (пользователь user, устройство device, и другие). Может быть как в единственном, так и во множественном числе. Зависит от выстроенных договоренностей внутри компании или проекта.
+ Указатель на объект - уникальный идентификатор ресурса в системе, необязательный, если запрашивается список.
+ Продолжение иерархии -
имя вложенного ресурса + указатель на него, или глагол изменения состояния, возможны разные варианты в зависимости от требований к системе.

4️⃣ Query-параметры запроса (Query-parameters): параметры, которые идут после ? и разделяются &, обычно используемые в списках для их фильтрации, сортировки и постраничного получения (пагинации). Иногда использую для передачи указателя на объект.


Вариантов построения URL много: правильные и неправильные, рекомендуемые и нерекомендуемые. Только структуре URL и принципам его построения в программе дизайна REST API для системных аналитиков отводится почти 3-х часовая практика, чтобы разобраться в деталях!

Пост важный. Поможет отвечать на вопросы собеседований.

#RestApiGa
👍34❤‍🔥102
💫 РАЗБОР ПРИМЕРА: Структура URL запроса в REST API 💫

Получить информацию о конкретном умном устройстве по его уникальному идентификатору в системе:
GET https://smarthomega.com/api/user-api/v1/devices/{deviceId}


1️⃣ Протокол:
В начале любого URL указывается протокол, используемый для доступа к ресурсам.
В примере это https (HyperText Transfer Protocol Secure), который обеспечивает защищенную передачу данных.


2️⃣ Доменное имя:
smarthomega.com.


3️⃣ Путь (Path):
Путь включает в себя один или несколько сегментов, разделённых слешами (/).

+ api - указывает на то, что будет выполнен переход в каталог API сервера.
+ user-api - указывает на конкретный интерфейс API, предназначенный для обычных пользователей системы. Также это могло быть указание на API для администраторов или умных устройств в системе.
+ v1 - означает версию API, что важно для поддержки совместимости с предыдущими версиями.

+ devices - это ресурс, к которому осуществляется доступ, в данном случае “умные устройства”.
+ {deviceId} - это параметр в пути URL (path-параметр), указывающий на конкретное устройство по его id. Фигурные скобки {} обозначают переменную часть URL, значение которой должно быть предоставлено клиентом (например, идентификатор 1234567 конкретного устройства).


4️⃣ Query-параметры запроса (Query-parameters):

В приведенном примере параметры запроса не указаны, но они могут быть добавлены после знака вопроса ?.

Пример с query-параметрами:
GET https://smarthomega.com/api/user-api/v1/devices/{deviceId}?page=2&limit=10

?page=2&limit=10 указывает на запрос второй страницы результатов с 10 результатами на страницу. Это два отдельных query-параметра, которые являются элементами пагинации (постраничного получения данных через API).


🔑 Это основные компоненты URL в REST API, которые помогают точно определить, к какому ресурсу и каким образом должен быть осуществлен доступ.

#SHGA #RestApiGA
🔥251👍1
😱 Вопросы квиза по REST API с неоднозначными ответами про URL 🥲

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

1. Какой из перечисленных компонентов является обязательным в структуре URL для REST API?

A) Протокол
Да. Есть всегда. Обязательная часть URL REST API.

B) Параметры запроса
Здесь нет уточнения какие. Могут быть query, могут быть path. Но в любом случае, как мы разобрали в теоретическом посте и в примере, оба вида параметров не обязательны и зависят от конкретного REST API метода.

C) Фрагмент
В составе URL могут присутствовать фрагменты (Fragments). Это необязательный компонент, который следует после символа # и обычно используется для обращения к конкретной части документа. В API URL фрагменты вообще не используются, но можно, если очень хочется.

D) Только Path-параметры запроса
Не обязательные, только при запросе конкретного ресурса.


3. Как правильно указывать название ресурса в endpoint-е REST API?

A) В единственном числе. GET /device/{deviceId}
Так можно.

B) Во множественном числе. GET /devices/{deviceId}
И так тоже можно.

C) Можно и в единственном числе, и во множественном
Это верный ответ.
Действительно, можно и так, и так. Но нужно ориентироваться на то, как названы остальные эндпоинты в проекте.


Изучили теорию, разобрали практический пример и затем детализировали каждый ответ по квизу 🙌

Поддержите пост ❤️, если было полезно или нравится формат. Всегда рада и благодарна за вашу вдохновляющую поддержку ❤️
72👍10❤‍🔥4
2️⃣0️⃣0️⃣ HTTP-коды ответов в REST API методах 2️⃣0️⃣0️⃣

HTTP-коды ответов являются неотъемлемой частью структуры ответа REST API. Это стандартизированный способ для сервера сообщить клиенту о результате обработки его запроса.

Знание и правильное использование кодов HTTP в ответах REST API методов важно, так как они помогают клиентам понимать, был ли запрос успешен, требует ли действий по исправлению, произошла внутренняя ошибка сервера или пользователю надо показать информацию о совершенной им ошибке. Зависит от ситуации.

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

❗️HTTP-коды ответов, которые нужно знать❗️
Картинка прикреплена к посту.
+ Коды успеха 200-204е
+ Коды перенаправления 300-е (используются крайне редко, об их существовании просто надо знать)
+ Коды ошибок клиента 400-404е
+ Коды ошибок сервера 500-504е

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

Например, при возврате пустого списка может использоваться 204 (No Content), или 200 с пустым body, если такое поведение ожидаемо, или 404 Not Found, если отсутствие данных является неожиданным.

Много деталей, которые системные аналитики должны проработать при проектировании логики работы и дизайна каждого REST API метода.

Понимание и правильное применение HTTP-кодов в REST API — важный навык для любого системного аналитика 🚀

#RestApiGA
👍18🔥73
2️⃣0️⃣1️⃣ Вопросы квиза по REST API связанные с HTTP-кодами ответов 2️⃣0️⃣1️⃣

Вопросы в квизе по кодам HTTP были только на знание теории. Хотя вопрос 4 подразумевал не только знание теории, но и умение применить её разными способами на практике. Информации в предыдущем посте достаточно, чтобы на них ответить. Давайте разбираться!

2. Какой код статуса HTTP используется для указания того, что операция прошла успешно, и в результате был создан новый ресурс?
A) Код 200 (OK) используется для обозначения успешного выполнения запроса. Этот код означает, что запрос был успешно обработан и сервер вернул ожидаемый ответ. Однако, в контексте создания нового ресурса, этот код не является идеальным выбором, так как не указывает на то, что был создан новый ресурс.
B) Код 201 (Created) является правильным ответом на данный вопрос. Этот статус указывает, что запрос был успешно выполнен и в результате был создан новый ресурс. Обычно этот код используется в ответ на POST-запросы, когда результатом является создание нового ресурса на сервере.
C) Код 302 (Found) является кодом перенаправления. Этот статус сообщает, что запрошенный ресурс временно находится по другому URI, на который клиент должен перейти. Этот код не связан с созданием ресурсов.
D) Код 404 (Not Found) используется для указания на то, что запрошенный ресурс не найден на сервере.


4. Какой статус код следует возвращать, если клиентское приложение запрашивает несуществующую страницу пагинации?

#RestApiGA
Продолжение 👇
👍5
4. Какой статус код следует возвращать, если клиентское приложение запрашивает несуществующую страницу пагинации?

A) 200 OK с пустым телом ответа
Код 200 указывает, что запрос был успешно обработан. Это возможное решение в случае, если система допускает возврат пустого списка элементов в ответ на запрос несуществующей страницы пагинации и это общепринятый подход для пагинации в системе.

B) 204 No Content
Код 204 сообщает, что сервер успешно обработал запрос, но не возвращает никакого содержимого: запрос к несуществующей странице пагинации обработан без возврата данных. Можно использовать в случае, если это общепринятый подход к работе с пагинацией в системе.

C) 404 Not Found
Код 404 используется для указания, что запрошенный ресурс не найден. В контексте пагинации, этот код означает, что запрашиваемая страница находится за пределами допустимого диапазона страниц. Он ясно указывает пользователю или клиентскому приложению, что запрашиваемая страница не существует.

D) 416 Requested Range Not Satisfiable
Код 416 обычно используется в контексте HTTP Range Requests, когда клиент запрашивает определённый диапазон байтов из файла, и этот диапазон не может быть обслужен сервером, потому что он не соответствует длине содержимого. Например, если файл имеет размер 500 байтов, и клиент запрашивает байты с 600 по 610.

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


Для этого вопроса я бы предпочла HTTP-200 с пустым телом или HTTP-404. Но! Всё зависит от существующего рядом API, опыта команды и договоренностей в ней.

Изучайте API-документацию внутри и за пределами компании, развивайте насмотренность для проектирования требований к обработке ошибок. Используйте Best Practice в своих проектах! ❤️

#RestApiGA
🔥7👍51
🔔 Предзапись на практическую программу Дизайн REST API на специальных условиях завершается 18 АПРЕЛЯ 23:59 Мск 🔔

С 24 апреля мы начнем предобучение, а на первом практическом вебинаре 6 мая начнем работу над проектом, который будем вести в ходе всего обучения

Прямая ссылка на анкету предзаписи.
Вопросы по программе можно задать @getanalyst.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
😎 Как правильно регистрировать: POST /devices или POST /devices/register? 😎

При проектировании эндпоинтов REST API есть важное правило:
НЕ ДУБЛИРУЙ В НАЗВАНИИ ЭНДПОИНТА ДЕЙСТВИЕ-ГЛАГОЛ ИЗ HTTP-МЕТОДА

Принято использовать существительные для обозначения ресурсов, а не глаголы. Это делает API более ориентированным на ресурсы и упрощает понимание его структуры.

HTTP-методы REST API сами по себе обозначают глаголы по CRUD-модели:
- GET - получить
- POST - создать
- PUT / PATCH - изменить
- DELETE - удалить
Поэтому все действия описываются в них. А в названии эндпоинта - существительное, объект данных, которым управляем.


На примере управления данными об умных устройствах через REST API:

Получить список умных устройств:
GET /devices
GET /getDevices

Получить информацию об умном устройстве по id:
GET /devices/{deviceId}
GET /getDevice/{deviceId}

Создать умное устройство:
POST /devices
POST /createDevice

Изменить умное устройство:
PATCH /devices/{deviceId}
PATCH /changeDevice/{deviceId}

Удалить умное устройство:
DELETE /devices/{deviceId}
DELETE /deleteDevice/{deviceId}

Зачем делать “масло-маслянное”, если у нас уже есть глагол-действие в HTTP-методе?
Думайте об этом при именовании эндроинтов.


Иногда всё же возникает необходимость в использовании глаголов в URL, особенно когда дело касается операций, которые трудно описать стандартными методами HTTP. Например:
PATCH /devices/{deviceId}/activate — активация устройства, специфичное действие, которое не укладывается в стандартные CRUD-операции. Но это отдельные ситуации, которых на самом деле ограниченное количество.

Эти случаи допустимы, но они должны быть обоснованными и чётко отличаться от стандартных операций с ресурсами.

Название эндпоинта - существительное, все действия в HTTP-методах. Следуем этому принципу, и ваш API будет более логичным и понятным 🙌

Итого, как правильно: POST /devices (❤️) или POST /devices/register (👍)? 😉

#RestApiGa #SHGA
43👍5
Какой метод и эндпоинт REST API лучше всего подходит для регистрации нового умного устройства администратором системы? 🧐

Решение:
1. Регистрация устройства = Создание устройства = Метод POST.
2. Устройство = device или любое слово синоним, которое найдём в тесте.
3. Администратором? Будем подписывать запрос авторизацией от имени администратора. Это пойдёт в заголовок Header.

Метод POST /device или аналог нам подойдёт.

По вариантам ответов на вопрос квиза:
A) POST /devices/register - нет, тут “масло маслянное”
B) POST /device - идеально.
C) PUT /admin/device - зачем здесь admin? это эндпоинт, а не полный URL API, про админа все в Header, в информации по авторизации.
D) PUT /devices - можно, но лучше POST, он наиболее подходящий.

Доказательства в публичной API-документации:
POST ​/v1​/user - регистрация нового пользователя в сервисе wavesenterprise
POST https://api.multifactor.ru/users - регистрация пользователя в сервисе multifactor

#RestApiGa #SHGA
👍15
3 страха, которые губят специалистов

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

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

▪️ Чтобы преодолеть тревогу и продолжить развиваться, важно использовать свои страхи, как точки роста.
Участвуйте в проектах, которые вызывают неуверенность, чтобы развить уверенность и выйти за пределы зоны комфорта.

▪️ Принимайте ошибки, как часть процесса обучения.
Именно ошибки мозг воспринимает как слабые места и направляет силы туда, чтобы научиться избегать их в будущем.

▪️ Постоянно изучайте новые технологии и инструменты анализа данных.
Например, сейчас актуально осваивать AI (ChatGPT).

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

▪️ Ищите возможности для профессионального развития: книги, конференции, курсы обучения, семинары, вебинары, работа с наставником.

▪️ Практикуйтесь.
Сколько бы знаний ни получили в теории, без практики они приравниваются к нулю. Всегда ищите возможность сразу опробовать новое!

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

Поверьте, когда посмотрите на себя со стороны, увидите сколько уже вложено, то уверенности в себе станет гораздо больше 💎
👍36❤‍🔥9💯7🔥4
🧡 ТОП-5 инструментов для работы с REST API 💚

Привет! Хочу поделиться с вами набором инструментов, которые регулярно использую в работе с REST API. Они постоянно запущены и работают в моем компьютере!

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

🧡 Postman: Используется для тестирования и проектирования API. С помощью Postman вы можете легко отправлять запросы к вашему или чужому API, проверять ответы, создавать и автоматизировать тесты. Он также обеспечивает возможность создания и обмена коллекциями запросов с командой разработки и за её пределами, что делает его идеальным выбором для системного аналитика.

💚 Swagger (OpenAPI): Представляет собой фреймворк для описания и визуализации RESTful API. Он позволяет вам четко определить структуру вашего API в формате JSON или YAML с использованием стандарта OpenAPI. Это значительно упрощает понимание и использование вашего API как внутри вашей команды, так и для будущих пользователей вашего REST API.

🤍 ChatGPT: Искусственный интеллект, который помогает разработать примеры запросов и ответов REST API, описать маппинги данных, требования к работе логики, документацию. Но его эффективное использование возможно только при знании команд и наличии опыта работы с REST API. Иначе могут быть ошбки и неверные решения.

🖤 JSON Editor Online: Предоставляет удобный способ редактирования и просмотра JSON-сообщений прямо в браузере. Он поможет вам форматировать JSON, выделять синтаксические ошибки.

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

Если вы знаете другие важные инструемнты для работы с API, делитесь с коллегами в комментариях 🙌
23❤‍🔥8👍6🔥3👎2
В новом эпизоде подкаста GetAnalyst системный аналитик Кристина Виноградова делится с нами лайфхаками по работе с незнакомыми задачами без ментора, когда не от кого получить поддержку: от практических подходов по структурированию задач и аналитике, до психологических моментов, с которыми важно работать.

Этот подкаст будет полезен как начинающим, так и опытным аналитикам, которым нужна поддержка и помощь в работе, но кажется, что её невозможно получить. Решения есть. И у вас всё получится 🙌

04:25 - Когда и как обычно приходят новые задачи? Есть ли к этому предпосылки, если это не связано со сменой места работы и ты не уже не джун?
9:52 - Какие ошибки чаще всего допускают, пытаясь решать задачи самостоятельно, без помощи ментора?
20:32 - Как обращаться за помощью в решении незнакомы задач?
32:15 - Пошаговый план в решении незнакомых задач.
38:20 - Оценка влияния задачи на систему - общий чек-лист. Структура системы.
43:09 - В какой момент просить помощи у коллег и можно ли получить негативную реакцию от них?
50:15 - Негативная реакция от коллег при запросе помощи.
56:18 - Как сохранять мотивацию, если начинаешь работу с незнакомой задачей.
1:02:10 - Как влияет отсутствие или наличие ментора на профессиональное развитие аналитиков.

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


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

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

Подписывайтесь на площадках, мы благодарны за вашу поддержку! 😉
18🔥6👍3❤‍🔥2🤩1
🆕 Новый практический вебинар по REST API 🆕

В процессе работы аналитик может получить задачи на описание методов REST API, используемых для интеграций, проектирование логики их работы. Желательно уметь представить результат не только в виде документа Confluence, но и в инструментах, таких как Postman или Swagger.

Фразы "знание REST", "умение читать и писать JSON", "опыт работы с интеграциями" становятся почти обязательными в вакансиях системных аналитиков.

Если вы только начинаете погружение в REST API, то эта онлайн-практика для вас!

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

План:
1. Самая важная теория по REST API.
2. Знакомство с REST API документацией и принципами её разработки.
3. Практика тестирования API в инструменте Postman.
4. Создание и публикация API-документации через Postman.
5. Постановки задач на Backend-разработчиков.

📅 25 АПРЕЛЯ, 19:00 МСК
🔗 ЗАРЕГИСТРИРОВАТЬСЯ

Регистрируйтесь и подключайтесь к прямому эфиру в следующий четверг.
До встречи встречи онлайн! 🧡
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥206🔥3
🇺🇸 АНГЛИЙСКИЙ ДЛЯ АЙТИШНИКА:
когда нужен и как учить?


Английский в 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