В общем, после новинок от OpenAPI Initiative, набор стандартов, языков и спецификаций в области интеграций выглядит совсем уж запредельно 🤯
Итак, что вам нужно знать, чтобы разбираться в интеграциях в 2024:
🔲 JSON — язык разметки, чтобы читать и писать тела запросов и ответов в вызовах API
🔲 JSON Schema — чтобы описывать структуру JSON и валидировать документы
🔲 RegEx (ECMA-262) — чтобы задавать ограничения на формат для строковых полей
🔲 HTTP/1.1 — базовый протокол, нужно хотя бы понимать структуру запроса (метод, домен, путь, параметры, заголовок, тело, ошибки)
🔲 YAML — язык разметки для чтения и составления спецификаций OpenAPI
🔲 OpenAPI — собственно, стандарт для описания REST-подобных API.
🔲 XML, XSD — если вы работаете с государственными сервисами
🔲 WSDL — если у вас есть интеграции через SOAP
🔲 AsyncAPI — если у вас есть асинхронные интеграции, брокеры сообщений, очереди. Между прочим, уже версия 3.0.0 вышла, зрелый продукт!
🔲 AVRO — формат данных, часто использующийся в Kafka. Схема AVRO может быть включена в спецификацию AsyncAPI
🔲 OAuth 2.0 — протоколаутентификации авторизации
Про что нужно знать, что они есть, и рассматривать при необходимости:
🔲 Protobuf — формат данных gRPC, также может использоваться в Kafka, схему можно включить в AsyncAPI
🔲 JSON-RPC — легковесный формат вызова удаленных процедур через HTTP
🔲 GraphQL — формат описания схемы данных и язык запросов
🔲 TypeSpec — легковесный формат описания API, из которого генерируется спецификация OpenAPI (вот это я бы рекомендовал посмотреть — объем документа там в разы меньше, чем у OpenAPI)
🔲 XSLT — если вам приходится преобразовывать документы XML
🔲 JSLT или JSONata — как XSLT, но для JSON: языки запросов и преобразований
🔲 JSONPath — язык запросов к документу JSON
Для продвинутых и тех, кто занимается управлением API:
🔲 Модель OSI или TCP/IP — что происходит в сети на уровнях ниже HTTP
🔲 HAL — формат сообщений JSON, если вы хотите больше следовать принципам HATEOAS из REST
🔲 JSON:API — стандарт на формат сообщений (тоже в русле идей HATEOAS) и некоторые принципы формирования запросов
🔲 API Design Systems — язык спецификации правил для построения API (можно валидировать любое API в компании)
🔲 RFC 9457 — спецификация детального описания ошибок в ответах HTTP
🔲 JSON-Patch, JSON-Merge — форматы описания изменений документа JSON, то, что должно отправляться в команде PATCH
🔲 Overlay — спецификация изменений в документ OpenAPI
🔲 Arazzo — спецификация последовательности (воркфлоу) вызовов нескольких API
Вот, приятного чтения на каникулах🙂 Специально поставил иконку пустого чек-бокса — можете мысленно отметить, что из этого вы уже знаете и с чем работали. 🧘♀️
Итак, что вам нужно знать, чтобы разбираться в интеграциях в 2024:
🔲 JSON — язык разметки, чтобы читать и писать тела запросов и ответов в вызовах API
🔲 JSON Schema — чтобы описывать структуру JSON и валидировать документы
🔲 RegEx (ECMA-262) — чтобы задавать ограничения на формат для строковых полей
🔲 HTTP/1.1 — базовый протокол, нужно хотя бы понимать структуру запроса (метод, домен, путь, параметры, заголовок, тело, ошибки)
🔲 YAML — язык разметки для чтения и составления спецификаций OpenAPI
🔲 OpenAPI — собственно, стандарт для описания REST-подобных API.
🔲 XML, XSD — если вы работаете с государственными сервисами
🔲 WSDL — если у вас есть интеграции через SOAP
🔲 AsyncAPI — если у вас есть асинхронные интеграции, брокеры сообщений, очереди. Между прочим, уже версия 3.0.0 вышла, зрелый продукт!
🔲 AVRO — формат данных, часто использующийся в Kafka. Схема AVRO может быть включена в спецификацию AsyncAPI
🔲 OAuth 2.0 — протокол
Про что нужно знать, что они есть, и рассматривать при необходимости:
🔲 Protobuf — формат данных gRPC, также может использоваться в Kafka, схему можно включить в AsyncAPI
🔲 JSON-RPC — легковесный формат вызова удаленных процедур через HTTP
🔲 GraphQL — формат описания схемы данных и язык запросов
🔲 TypeSpec — легковесный формат описания API, из которого генерируется спецификация OpenAPI (вот это я бы рекомендовал посмотреть — объем документа там в разы меньше, чем у OpenAPI)
🔲 XSLT — если вам приходится преобразовывать документы XML
🔲 JSLT или JSONata — как XSLT, но для JSON: языки запросов и преобразований
🔲 JSONPath — язык запросов к документу JSON
Для продвинутых и тех, кто занимается управлением API:
🔲 Модель OSI или TCP/IP — что происходит в сети на уровнях ниже HTTP
🔲 HAL — формат сообщений JSON, если вы хотите больше следовать принципам HATEOAS из REST
🔲 JSON:API — стандарт на формат сообщений (тоже в русле идей HATEOAS) и некоторые принципы формирования запросов
🔲 API Design Systems — язык спецификации правил для построения API (можно валидировать любое API в компании)
🔲 RFC 9457 — спецификация детального описания ошибок в ответах HTTP
🔲 JSON-Patch, JSON-Merge — форматы описания изменений документа JSON, то, что должно отправляться в команде PATCH
🔲 Overlay — спецификация изменений в документ OpenAPI
🔲 Arazzo — спецификация последовательности (воркфлоу) вызовов нескольких API
Вот, приятного чтения на каникулах
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43❤12👍6💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжая тему образования. Я тут посмотрел подкаст Виктора Кантора MLinside про вход и развитие в сфере Machine Learning и Data Science. Гость — Алексей Толстиков, руководитель Школы анализа данных Яндекса (ШАД).
Вообще, если сейчас думать именно про программирование, то я бы выбирал ML-разработку — это, конечно, пик и фронтир. И всё интересное там происходит — даже не в высоконагруженном вебе и не в игровых движках, как было раньше. ML — та часть отрасли, где действительно всё меняется каждые полгода-год, и актуальные знания берутся не из книг, а из статей в журналах.
Кстати, в посте с подборкой книг спрашивали — а где же Кнут, где "Искусство программирования". Очень фундаментальная книга, настолько, что её почти никто из разработчиков и не читал :)). Мне всегда Вирт больше нравился, "Алгоритмы и структуры данных" — он как-то человечнее. Правда, Паскаль, на котором там все примеры, безнадежно устарел, вот бы кто выпустил ту же книгу, но с примерами на Пайтоне... Но это я отвлекся.
Понятно, что вход в ML непростой, в первую очередь из-за математики. Алексей в видео рассказал о некоторых особенностях обучения в ШАДе — и про суровый отбор, и про тяжесть обучения. Ну и 30 часов нагрузки в неделю — это не для всех.
Хотя вот в видео приведен пример профессионального музыканта, перешедшего в эту область, а я знаю нескольких журналистов, которые тоже переквалифицировались в специалистов по ИИ, причем в зрелом возрасте. В общем, с одной стороны — интересно посмотреть, как у коллег из смежной области устроено обучение, а, с другой — будет полезно послушать, если хотите развиваться в этом направлении.
Вообще, если сейчас думать именно про программирование, то я бы выбирал ML-разработку — это, конечно, пик и фронтир. И всё интересное там происходит — даже не в высоконагруженном вебе и не в игровых движках, как было раньше. ML — та часть отрасли, где действительно всё меняется каждые полгода-год, и актуальные знания берутся не из книг, а из статей в журналах.
Кстати, в посте с подборкой книг спрашивали — а где же Кнут, где "Искусство программирования". Очень фундаментальная книга, настолько, что её почти никто из разработчиков и не читал :)). Мне всегда Вирт больше нравился, "Алгоритмы и структуры данных" — он как-то человечнее. Правда, Паскаль, на котором там все примеры, безнадежно устарел, вот бы кто выпустил ту же книгу, но с примерами на Пайтоне... Но это я отвлекся.
Понятно, что вход в ML непростой, в первую очередь из-за математики. Алексей в видео рассказал о некоторых особенностях обучения в ШАДе — и про суровый отбор, и про тяжесть обучения. Ну и 30 часов нагрузки в неделю — это не для всех.
Хотя вот в видео приведен пример профессионального музыканта, перешедшего в эту область, а я знаю нескольких журналистов, которые тоже переквалифицировались в специалистов по ИИ, причем в зрелом возрасте. В общем, с одной стороны — интересно посмотреть, как у коллег из смежной области устроено обучение, а, с другой — будет полезно послушать, если хотите развиваться в этом направлении.
1👍20❤3🤣1
Integrations v1.0.jpg
1.4 MB
В канун Нового года держите подарочек от меня: всё, что вы хотели знать про разные способы интеграций, в одной (большой) картинке.
Тут в основном только перечисления названий протоколов и технологий, но зато даёт общую картину. Это ещё круче, чем в предыдущем посте, тут есть и про выбор, и про синхронные-асинхронные способы, и про разные интеграционные стили. Что на картинке:
4 интеграционных стиля:
- файловый обмен
- общая БД
- вызов удаленной процедуры
- асинхронный обмен сообщениями
Или по другой классификации:
- Ресурсный стиль (REST)
- RPC-стиль
- Query-стиль
- Стиль Publisher/Subscriber
Технологии:
- REST
- SOAP
- GraphQL
- gRPC
- Webhooks
- WebSockets
- Long Polling
- AMQP (RabbitMQ и др.)
- MQTT
- Kafka
- Redis
...и связанные с ними вещи: форматы сообщений/сериализации, языки спецификации интерфейсов и схем данных, средства документирования и тестирования.
Это первый вариант, пишите, если есть предложения и замечания, буду в следующем году его развивать. Хочу, чтобы такой плакат висел в каждом офисе :)
Тут в основном только перечисления названий протоколов и технологий, но зато даёт общую картину. Это ещё круче, чем в предыдущем посте, тут есть и про выбор, и про синхронные-асинхронные способы, и про разные интеграционные стили. Что на картинке:
4 интеграционных стиля:
- файловый обмен
- общая БД
- вызов удаленной процедуры
- асинхронный обмен сообщениями
Или по другой классификации:
- Ресурсный стиль (REST)
- RPC-стиль
- Query-стиль
- Стиль Publisher/Subscriber
Технологии:
- REST
- SOAP
- GraphQL
- gRPC
- Webhooks
- WebSockets
- Long Polling
- AMQP (RabbitMQ и др.)
- MQTT
- Kafka
- Redis
...и связанные с ними вещи: форматы сообщений/сериализации, языки спецификации интерфейсов и схем данных, средства документирования и тестирования.
Это первый вариант, пишите, если есть предложения и замечания, буду в следующем году его развивать. Хочу, чтобы такой плакат висел в каждом офисе :)
51🔥128👍27❤12👏5
Интересный флешмоб: лучшие доклады 2024 года (из тех, что в открытом доступе).
Целый канал под это! Если у вас найдется время на новогодних каникулах.
Мой вариант — доклад Романа Цирульникова "Модель архитектуры предприятия на графе" с весенней конференции Flow.
https://www.youtube.com/watch?v=cMQE_pXA260
(альтернативная ссылка в VK: https://vkvideo.ru/video-214741188_456239295)
Мне кажется, это наметки на будущее системного анализа и архитектуры, где-то здесь может быть прорыв в технологическом плане. Раз у нас всё, как код, и архитектура как код, почему бы и требованиям не быть, как код? ;) Или как база данных, к которой можно делать запросы.
Рекомендую посмотреть всем аналитикам для расширения понимания о том, что возможно.
#лучшийдоклад2024_arch #лучшийдоклад2024_analyst
#flowconf
Присоединяйтесь, публикуйте самые заметные выступления в своих каналах с хэштегами! Правила флешмоба тут.
Целый канал под это! Если у вас найдется время на новогодних каникулах.
Мой вариант — доклад Романа Цирульникова "Модель архитектуры предприятия на графе" с весенней конференции Flow.
https://www.youtube.com/watch?v=cMQE_pXA260
(альтернативная ссылка в VK: https://vkvideo.ru/video-214741188_456239295)
Мне кажется, это наметки на будущее системного анализа и архитектуры, где-то здесь может быть прорыв в технологическом плане. Раз у нас всё, как код, и архитектура как код, почему бы и требованиям не быть, как код? ;) Или как база данных, к которой можно делать запросы.
Рекомендую посмотреть всем аналитикам для расширения понимания о том, что возможно.
#лучшийдоклад2024_arch #лучшийдоклад2024_analyst
#flowconf
Присоединяйтесь, публикуйте самые заметные выступления в своих каналах с хэштегами! Правила флешмоба тут.
VK Видео
Роман Цирульников — Модель архитектуры предприятия на графе
Ближайшая конференция Flow: https://vk.cc/cu1M7o #flowconf #системный анализ #бизнесанализ #IT #conference Рассмотрим построение модели архитектуры предприятия на основе TOGAF/ArchiMate, которая содержит слои Technology, Applications, Business, Strategy.…
🔥19👍2❤1
Йу-ху! Вот это круто год начинается! Пока канал был на новогодних каникулах, к нему присоединились почти 400 человек!
Спасибо вам, и добро пожаловать!
Давайте я представлюсь: меня зовут Юрий Куприянов,и я аналитик, нет, на самом деле я никогда не был аналитиком. Ну, то есть, моя должность так никогда не называлась. Я был экспертом, разработчиком, советником (это было самое лучшее время!), начальником управления технологической документации и проектирования архитектуры, а потом директором по тому и по сему (по продуктам, по технологиям и развитию, техническим директором и т.п.)
Но всегда — так получалось — я либо выполнял роль аналитика (даже когда не знал, что есть такая профессия), либо руководил аналитиками. Когда нужно написать ТЗ или ещё какой-нибудь документ, снять требования с заказчика или описать бизнес-процессы — как-то так получалось, что делал это я. Так что можно сказать, что я занимаюсь системным анализом и проектированием систем столько же, сколько вообще работаю в разработке ПО, а это уже больше 26 лет!
Я за это время успел поработать в веб-разработке, медицине, промышленности (в компании, которая проектировала и строила нефтеперерабатывающие заводы), в недвижимости, в туризме, в банках и финансах (ещё до того, как это стало модно), в медиа, в социологии и, наконец, в образовании (edTech).
Преподавать в институте я начал ещё в 2006 — очень хотелось хотя бы 50-60 людям рассказать, как на самом деле устроена разработка и что нужно знать и уметь кроме, собственно, знания языков программирования и алгоритмов. А к 2012 уже хотелось всем рассказать, как должно быть устроено преподавание и обучение 😝 Тогда же я начал вести курс в Школе системного анализа, известной теперь как Systems.Education. И знаете, что? Когда пытаешься объяснить другим, как правильно делать какую-то работу — гораздо лучше сам понимаешь, как её делать 🙃 Ну и когда через тебя проходят десятки и сотни людей, понимаешь, что ошибки у всех примерно одни и те же.
Если говорить про конкретные проекты:
➡️ я спроектировал и лично запрогал систему автоматизации казначейства Газпромбанка (интересно, она доработает до своего 20-летия, или её уже всё-таки перепишут?..);
➡️ я сопровождал проект замены технологической платформы Национального расчетного депозитария (когда это ещё не было модно, а слово "импортозамещение" вообще не было популярно);
➡️ я делал стартап по онлайн-трансляциям и пилил что-то типа Зума, но не сложилось;
➡️ спроектировал для Сбера платорму "СберИдея" (впрочем, кажется, они её уже переписали);
➡️ спроектировал и запустил платформу "Открытое образование" (openedu.ru);
➡️ спроектировал сервис coreapp.ai;
➡️ спроектировал первую версию системы для обучения цифровым профессиям за счет государства (ну и к другим проектам "Университета 2035" руку приложил);
➡️ пытался сделать что-то удобное и полезное из "Московской электронной школы", но это оказалось выше моих возможностей, к сожалению.
Я тусил с Левенчуком, когда все системные инженеры в России как раз помещались в одной переговорке в офисе "Техинвестлаба". Потом даже немного побыл членом INCOSE и поучаствовал в переводе "Руководства по написанию требований".
Я участвовал в первых форсайтах про образование, и написал несколько глав в методичку по технике Rapid Foresight.
Я выступал почти на всех крупнейших ИТ-конфах, на ЛАФе и AnalystDays делал лучшие доклады. Сейчас я состою в ПК аналитических конференций ЛАФ, Flow и WAW, и уже сам отбираю лучшие доклады для вас.
Участвовал в написании ГОСТ Р 59897-2021 "ДАННЫЕ ДЛЯ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В ОБРАЗОВАНИИ" и профстандарта "Системный аналитик" (второй редакции), был трекером в заочке ФРИИ (недолго), написал часть книги "Цифровое качество: свод знаний по цифровой трансформации" (или "Управление качеством цифровых продуктов и проектами цифровой трансформации" — она же в виде учебника).
Первым, кажется, попробовал применять LLM для генерации и анализа требований, и всем про это рассказывал, где только мог.
Спасибо вам, и добро пожаловать!
Давайте я представлюсь: меня зовут Юрий Куприянов,
Но всегда — так получалось — я либо выполнял роль аналитика (даже когда не знал, что есть такая профессия), либо руководил аналитиками. Когда нужно написать ТЗ или ещё какой-нибудь документ, снять требования с заказчика или описать бизнес-процессы — как-то так получалось, что делал это я. Так что можно сказать, что я занимаюсь системным анализом и проектированием систем столько же, сколько вообще работаю в разработке ПО, а это уже больше 26 лет!
Я за это время успел поработать в веб-разработке, медицине, промышленности (в компании, которая проектировала и строила нефтеперерабатывающие заводы), в недвижимости, в туризме, в банках и финансах (ещё до того, как это стало модно), в медиа, в социологии и, наконец, в образовании (edTech).
Преподавать в институте я начал ещё в 2006 — очень хотелось хотя бы 50-60 людям рассказать, как на самом деле устроена разработка и что нужно знать и уметь кроме, собственно, знания языков программирования и алгоритмов. А к 2012 уже хотелось всем рассказать, как должно быть устроено преподавание и обучение 😝 Тогда же я начал вести курс в Школе системного анализа, известной теперь как Systems.Education. И знаете, что? Когда пытаешься объяснить другим, как правильно делать какую-то работу — гораздо лучше сам понимаешь, как её делать 🙃 Ну и когда через тебя проходят десятки и сотни людей, понимаешь, что ошибки у всех примерно одни и те же.
Если говорить про конкретные проекты:
Я тусил с Левенчуком, когда все системные инженеры в России как раз помещались в одной переговорке в офисе "Техинвестлаба". Потом даже немного побыл членом INCOSE и поучаствовал в переводе "Руководства по написанию требований".
Я участвовал в первых форсайтах про образование, и написал несколько глав в методичку по технике Rapid Foresight.
Я выступал почти на всех крупнейших ИТ-конфах, на ЛАФе и AnalystDays делал лучшие доклады. Сейчас я состою в ПК аналитических конференций ЛАФ, Flow и WAW, и уже сам отбираю лучшие доклады для вас.
Участвовал в написании ГОСТ Р 59897-2021 "ДАННЫЕ ДЛЯ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В ОБРАЗОВАНИИ" и профстандарта "Системный аналитик" (второй редакции), был трекером в заочке ФРИИ (недолго), написал часть книги "Цифровое качество: свод знаний по цифровой трансформации" (или "Управление качеством цифровых продуктов и проектами цифровой трансформации" — она же в виде учебника).
Первым, кажется, попробовал применять LLM для генерации и анализа требований, и всем про это рассказывал, где только мог.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥22❤7
Сейчас я консультирую компании по внедрению практик системного анализа и управления продуктами, менторю аналитиков/продактов, веду курсы в школе Systems.Education и пишу в канал/на Хабр. За прошлый год, кажется, самым полезным результатом стала инфографика про технологии интеграций, в этом году думаю её докрутить до чего-то ещё более ценного.
Короче, приветствую вас на канале, и буду стараться генерировать для вас интересный контент!
Канал в основном посвящен различным вопросам системного анализа и проектирования ИТ-систем, но не на уровне введения в тему (хотя и это тоже бывает), а обычно на уровне более глубоких и неочевидных тем и идей. Так что здесь вряд ли будут посты про то, как пройти интервью (но если хотите — могу и про это написать, я иногда помогаю эти интервью проводить), зато будет много мыслей про то, как аналитику/проектировщику/архитектору принести реальную пользу уже на работе, как делать своё дело классно и как работать лучше.
В общем, рад вас всех приветствовать на канале, enjoy yourself!
Короче, приветствую вас на канале, и буду стараться генерировать для вас интересный контент!
Канал в основном посвящен различным вопросам системного анализа и проектирования ИТ-систем, но не на уровне введения в тему (хотя и это тоже бывает), а обычно на уровне более глубоких и неочевидных тем и идей. Так что здесь вряд ли будут посты про то, как пройти интервью (но если хотите — могу и про это написать, я иногда помогаю эти интервью проводить), зато будет много мыслей про то, как аналитику/проектировщику/архитектору принести реальную пользу уже на работе, как делать своё дело классно и как работать лучше.
В общем, рад вас всех приветствовать на канале, enjoy yourself!
👍57❤🔥11❤9☃1
Integrations_tech.pdf
528 KB
В комментах к посту про технологии интеграций просили картинку в виде pdf. Вот, держите: https://github.com/yksi12/integrations/blob/main/Integrations_tech.pdf
Изменения по комментариям пока не вносил, думаю, в ближайшее время займусь переосмыслением и расширением картинки.
Кстати, если есть идеи, в каком инструменте было бы удобно эту картинку перерисовать — пишите в комментариях. А то в miro рисовать удобно, а вот экспортировать уже не очень.
Изменения по комментариям пока не вносил, думаю, в ближайшее время займусь переосмыслением и расширением картинки.
Кстати, если есть идеи, в каком инструменте было бы удобно эту картинку перерисовать — пишите в комментариях. А то в miro рисовать удобно, а вот экспортировать уже не очень.
👍33🔥22❤4
Про рекламу. Реклама в канале есть. Не очень много — примерно 4 поста в месяц.
Других способов монетизации канала у меня нет — я не продаю вам свои курсы, не навязываю консультации и не беру денег за подписку. Хотя, возможно, стоит что-то попробовать :)
Реклама очень хорошо стимулирует меня писать посты, даже когда не очень хочется, и поддерживать регулярность. Обычно я пишу примерно по посту в один-два дня, когда выхожу на полную мощность. Удивительно, но почти всегда находится, о чем написать.
А с рекламой посты писать приходится — я считаю приличным, когда до рекламы обязательно есть пост, и после рекламы он есть. Две рекламы встык я не ставлю, я всё-таки не рекламная площадка. Некоторые рекламодатели почему-то любят размещение на час-два в топе — приходится закрывать постом. Не знаю, зачем они так делают, видимо, привыкли размещаться в каналах, где посты идут сплошной лентой в течение дня.
В любом случае, это бывает позитивно — начинаешь думать о какой-то теме, и появляются идеи и необычные ракурсы. Некоторые мои знакомые практикуют morning pages — утренние страницы, куда выгружают мысли и идеи, ну вот для меня канал — некоторая замена таким страницам, но с обязательной пользой для читателя!
Так же я подхожу и к выбору рекламы. Я размещаю только то, что, как мне кажется, может быть полезно моей аудитории. В основном это анонсы каких-то мероприятий: курсов, конференций, вебинаров, вакансий и one-day-offer'ов. Иногда — реклама софта. Я довольно часто отказываю рекламодателям, если сомневаюсь, что реклама будет совсем мимо.
Рекламу я размещаю, как есть. У меня не бывает постов, которые маскируются под обычный пост в канале, и только в самом конце вы начинаете что-то подозревать, и, наконец, видите маркировку. Я считаю это небольшим обманом подписчиков, манипуляцией, а читателей своих я очень уважаю. Поэтому вся реклама имеет маркировку, и размещается в том виде, в каком её предоставил автор.
Также, я не отключаю эмоджи — если будут негативные, пусть будут негативные. Негатив можно обсудить, это тоже бывает полезно.
Но иногда могу от себя дописать что-то — например, про курс, который я сам проходил, и который считаю достойным (впрочем, недостойные курсы я и не буду рекламировать). Так же я не рекламирую курсы, которые составляют прямую конкуренцию нашим курсам в Systems.Education — по интеграциям и по разработке требований. Это может быть достойно отдельного поста со сравнительным анализом, но это не может быть рекламным постом. Пока нет курса по архитектуре, приходится рекламировать чужие :)
Я не рекламирую каналы, за очень редкими исключениями. Если вы видите упоминание какого-то канала — я его точно сам читаю и поэтому рекомендую. Иногда это может быть взаимопиар, для обмена аудиторией, но и тогда я этот канал читаю, а не просто технически меняюсь ссылками.
С маленькими каналами я не меняюсь, а просто регулярно даю возможность написать о себе — вот скоро как раз будет очередная такая акция :)) Кстати, я кажется задолжал общий пост про каналы подписчиков с прошлого раза — обязательно исправлюсь!
А вот к чему этот пост, вы уже наверное догадались: сегодня будет первая реклама, стартуем коммерческий год!
Других способов монетизации канала у меня нет — я не продаю вам свои курсы, не навязываю консультации и не беру денег за подписку. Хотя, возможно, стоит что-то попробовать :)
Реклама очень хорошо стимулирует меня писать посты, даже когда не очень хочется, и поддерживать регулярность. Обычно я пишу примерно по посту в один-два дня, когда выхожу на полную мощность. Удивительно, но почти всегда находится, о чем написать.
А с рекламой посты писать приходится — я считаю приличным, когда до рекламы обязательно есть пост, и после рекламы он есть. Две рекламы встык я не ставлю, я всё-таки не рекламная площадка. Некоторые рекламодатели почему-то любят размещение на час-два в топе — приходится закрывать постом. Не знаю, зачем они так делают, видимо, привыкли размещаться в каналах, где посты идут сплошной лентой в течение дня.
В любом случае, это бывает позитивно — начинаешь думать о какой-то теме, и появляются идеи и необычные ракурсы. Некоторые мои знакомые практикуют morning pages — утренние страницы, куда выгружают мысли и идеи, ну вот для меня канал — некоторая замена таким страницам, но с обязательной пользой для читателя!
Так же я подхожу и к выбору рекламы. Я размещаю только то, что, как мне кажется, может быть полезно моей аудитории. В основном это анонсы каких-то мероприятий: курсов, конференций, вебинаров, вакансий и one-day-offer'ов. Иногда — реклама софта. Я довольно часто отказываю рекламодателям, если сомневаюсь, что реклама будет совсем мимо.
Рекламу я размещаю, как есть. У меня не бывает постов, которые маскируются под обычный пост в канале, и только в самом конце вы начинаете что-то подозревать, и, наконец, видите маркировку. Я считаю это небольшим обманом подписчиков, манипуляцией, а читателей своих я очень уважаю. Поэтому вся реклама имеет маркировку, и размещается в том виде, в каком её предоставил автор.
Также, я не отключаю эмоджи — если будут негативные, пусть будут негативные. Негатив можно обсудить, это тоже бывает полезно.
Но иногда могу от себя дописать что-то — например, про курс, который я сам проходил, и который считаю достойным (впрочем, недостойные курсы я и не буду рекламировать). Так же я не рекламирую курсы, которые составляют прямую конкуренцию нашим курсам в Systems.Education — по интеграциям и по разработке требований. Это может быть достойно отдельного поста со сравнительным анализом, но это не может быть рекламным постом. Пока нет курса по архитектуре, приходится рекламировать чужие :)
Я не рекламирую каналы, за очень редкими исключениями. Если вы видите упоминание какого-то канала — я его точно сам читаю и поэтому рекомендую. Иногда это может быть взаимопиар, для обмена аудиторией, но и тогда я этот канал читаю, а не просто технически меняюсь ссылками.
С маленькими каналами я не меняюсь, а просто регулярно даю возможность написать о себе — вот скоро как раз будет очередная такая акция :)) Кстати, я кажется задолжал общий пост про каналы подписчиков с прошлого раза — обязательно исправлюсь!
А вот к чему этот пост, вы уже наверное догадались: сегодня будет первая реклама, стартуем коммерческий год!
3👍29❤10
В схеме из поста приведена двойная классификация: с одной стороны, по книге "Паттерны интеграций корпоративных приложений" (Enterprise Integration Patterns, EIP) Грегора Хопа и Бобби Вульфа, там перечислены такие стили интеграции ("известные на момент написания этой книги", т.е. на 2003 год):
- Передача файла
- Общая база данных
- Удаленный вызов процедуры
- Обмен сообщениями
Собственно, авторы довольно быстро подводят к выводу, что стиль "обмен [асинхронными] сообщениями" самый лучший, и дальше всё разбирается в основном в отношении него. Хотя, конечно, многие паттерны довольно универсальны, т.к. представляют собой решения проблем, возникающих в любом проекте интеграций, безотносительно технологии, по которой он сделан.
Основанием для классификации в данном случае выступает природа канала, через который производится обмен, куда пишется сообщение: в файл на диске; в базу данных; никуда не пишется, а пакуется в TCP-пакет и летит по сети; или в промежуточную очередь/шину (в широком смысле — MOM: Message Oriented Middleware). Это всё логические абстракции, обусловленные программной обвязкой: строго говоря, база данных — это тоже набор файлов, как и журналы Кафки, например. Да что там, сокет TCP для операционной системы тоже файл, никакой разницы. В основе своей всё — файловый обмен :))
Книга EIP немного касается содержания сообщений, выделяя такие:
- Сообщение с командой
- Сообщение с документом
- Сообщение о событии
- Запрос
- Ответ (подтверждение, результат, исключение)
При этом Хоп и Вульф не связывают типы сообщений и стили интеграции, хотя, конечно, есть определенное родство: напрмиер, передавать команды через файловый обмен можно, но это скорее редкость; а события чаще передают через асинхронный обмен сообщениями.
Вторая классификация взята из книги Майка Амундсена и др. "Непрерывное развитие API" (Continuous API Management), написанной в 2018. В ней речь идёт не вообще об интеграции, а именно про API (сравните смещение ракурса за 15 лет!), и классификация стилей построена как раз на типах сообщений: что мы передаем и что ожидаем в ответ. В первой редакции отдельно про стили API не говорилось, они просто упоминались, как что-то известное. Во 2-й редакции — в 2021 году — появилась отдельная глава, там перечислены такие стили:
- Туннельный (это RPC — выполнение команды на удаленном сервере)
- Ресурсный (это "простой" REST, в первой редакции книги он называется "CRUD-over-HTTP")
- Гипермедиа (это HATEOAS из REST'а: не просто содержание ресурса, а также и необходимые ссылки для работы с этим ресурсом, связанные с ним ресурсы и даже, возможно, какой-то воркфлоу/код для обработки)
- Стиль запросов (это когда API предоставляет единую точку для выполнения произвольных запросов: GraphQL, SparQL, поисковые запросы через HTTP и т.п.)
- Событийно-ориентированный стиль (это и паттерн "издатель/подписчик", и вообще любая реализация асинхронного обмена).
Как можно видеть, обе классификации пересекаются, но не совсем. То, что у Хопа упомянуто вскользь (RPC), у Амундсена раскрыто в деталях (разные стили синхронного взаимодействия), и наоборот (асинхронный обмен сообщениями).
Хуже того — мало кто знает, но у Хопа есть вторая книга: Enterprise Integration Patterns, Vol. 2: Conversation Patterns, вышедшая в 2019, не переведенная на русский, и содержащая как раз в качестве одного из паттернов тот же HATEOAS, например (в первой книге никаких упоминаний REST вообще нет, там сплошной SOAP).
Идея второй книги примерно в русле Амундсена — да и написаны они, видимо, примерно в одно время: кроме технических моментов, связанных с синхронностью/асинхронностью, гарантией доставки, преобразования данных, маршрутизации и т.п. в интеграционных взаимодействиях ещё имеет значение их последовательность, "разговор", "conversation".
У Хопа в второй части EIP появляются паттерны, обеспечивающие как раз этот разговор: оркестрация, хореография, гипермедиа, и новые паттерны, характеризующие стиль общения (например, поллинг и ретраи). В эту же сторону движется и OpenAPI Initiative со своим новым стандартом Arazzo Specification.
- Передача файла
- Общая база данных
- Удаленный вызов процедуры
- Обмен сообщениями
Собственно, авторы довольно быстро подводят к выводу, что стиль "обмен [асинхронными] сообщениями" самый лучший, и дальше всё разбирается в основном в отношении него. Хотя, конечно, многие паттерны довольно универсальны, т.к. представляют собой решения проблем, возникающих в любом проекте интеграций, безотносительно технологии, по которой он сделан.
Основанием для классификации в данном случае выступает природа канала, через который производится обмен, куда пишется сообщение: в файл на диске; в базу данных; никуда не пишется, а пакуется в TCP-пакет и летит по сети; или в промежуточную очередь/шину (в широком смысле — MOM: Message Oriented Middleware). Это всё логические абстракции, обусловленные программной обвязкой: строго говоря, база данных — это тоже набор файлов, как и журналы Кафки, например. Да что там, сокет TCP для операционной системы тоже файл, никакой разницы. В основе своей всё — файловый обмен :))
Книга EIP немного касается содержания сообщений, выделяя такие:
- Сообщение с командой
- Сообщение с документом
- Сообщение о событии
- Запрос
- Ответ (подтверждение, результат, исключение)
При этом Хоп и Вульф не связывают типы сообщений и стили интеграции, хотя, конечно, есть определенное родство: напрмиер, передавать команды через файловый обмен можно, но это скорее редкость; а события чаще передают через асинхронный обмен сообщениями.
Вторая классификация взята из книги Майка Амундсена и др. "Непрерывное развитие API" (Continuous API Management), написанной в 2018. В ней речь идёт не вообще об интеграции, а именно про API (сравните смещение ракурса за 15 лет!), и классификация стилей построена как раз на типах сообщений: что мы передаем и что ожидаем в ответ. В первой редакции отдельно про стили API не говорилось, они просто упоминались, как что-то известное. Во 2-й редакции — в 2021 году — появилась отдельная глава, там перечислены такие стили:
- Туннельный (это RPC — выполнение команды на удаленном сервере)
- Ресурсный (это "простой" REST, в первой редакции книги он называется "CRUD-over-HTTP")
- Гипермедиа (это HATEOAS из REST'а: не просто содержание ресурса, а также и необходимые ссылки для работы с этим ресурсом, связанные с ним ресурсы и даже, возможно, какой-то воркфлоу/код для обработки)
- Стиль запросов (это когда API предоставляет единую точку для выполнения произвольных запросов: GraphQL, SparQL, поисковые запросы через HTTP и т.п.)
- Событийно-ориентированный стиль (это и паттерн "издатель/подписчик", и вообще любая реализация асинхронного обмена).
Как можно видеть, обе классификации пересекаются, но не совсем. То, что у Хопа упомянуто вскользь (RPC), у Амундсена раскрыто в деталях (разные стили синхронного взаимодействия), и наоборот (асинхронный обмен сообщениями).
Хуже того — мало кто знает, но у Хопа есть вторая книга: Enterprise Integration Patterns, Vol. 2: Conversation Patterns, вышедшая в 2019, не переведенная на русский, и содержащая как раз в качестве одного из паттернов тот же HATEOAS, например (в первой книге никаких упоминаний REST вообще нет, там сплошной SOAP).
Идея второй книги примерно в русле Амундсена — да и написаны они, видимо, примерно в одно время: кроме технических моментов, связанных с синхронностью/асинхронностью, гарантией доставки, преобразования данных, маршрутизации и т.п. в интеграционных взаимодействиях ещё имеет значение их последовательность, "разговор", "conversation".
У Хопа в второй части EIP появляются паттерны, обеспечивающие как раз этот разговор: оркестрация, хореография, гипермедиа, и новые паттерны, характеризующие стиль общения (например, поллинг и ретраи). В эту же сторону движется и OpenAPI Initiative со своим новым стандартом Arazzo Specification.
Telegram
Системный сдвиг
В канун Нового года держите подарочек от меня: всё, что вы хотели знать про разные способы интеграций, в одной (большой) картинке.
Тут в основном только перечисления названий протоколов и технологий, но зато даёт общую картину. Это ещё круче, чем в предыдущем…
Тут в основном только перечисления названий протоколов и технологий, но зато даёт общую картину. Это ещё круче, чем в предыдущем…
🔥18❤8👍4
В общем, вопрос классификации стилей API получается довольно запутанным, а почти все статьи (не книги, и не научные работы) вообще приводят какую-то смешанную классификацию, где мягкое сравнивают с тёплым и оранжевым. Но объяснить это как-то нужно, особенно новичкам в теме интеграций.
❤10👍5💯1
Вау! Вас уже больше 8 тысяч, дорогие читатели, и это круто! 🎆
Большое вам спасибо за доверие и интерес!🤝
А вот вам по случаю круглого числа немного статистики. Мне давно уже было интересно — а сколько нас всего — в смысле, сколько системных аналитиков в РФ, ну или тех, кто так или иначе причисляет себя к ним? По оценкам, которые мы делали разными способами, получалось, что примерно 30-40 тысяч.
И вот, наконец, я нашел источник, на который можно сослаться! НИУ ВШЭ публикует ежегодный статистический сборник "Индикаторы цифровой экономики", и там есть данные по занятости в ИТ, а среди них есть системные аналитики! Сейчас опубликованы данные за 2022 год, их и будем смотреть.
Так, всего в ИКТ на 2022 год занято почти 1,9 млн. человек, из них разработчиков и аналитиков программного обеспечения и приложений — 761 тыс. (в 2021 было 800 тыс., между прочим). Такие дела, нас считают вместе с разработчиками.
Так сколько же именно аналитиков? Из этих 761 тысячи — 4.6%, то есть 35 тысяч!
Вот так, всего-то. То есть, если считать, что тут у меня только системные аналитики, то это было бы 22,8% всех системных аналитиков в РФ! Но тут, конечно, не только системные аналитики, я-то знаю :) Кстати, надо будет сделать опрос, очень интересно.
Что ещё можно вытащить из этих данных? Ну, например, теперь мы знаем среднее соотношение: на одного аналитика приходится примерно 21,5 разработчиков. Ну, это лукавая цифра, конечно — скорее, это говорит о том, что во многих компаниях разработчики работают без аналитиков вообще. Экспертно мы всегда оцениваем примерно как 1/10.
А вот, например, про дистанционную работу: 27.5% людей в ИТ работают дистанционно по состоянию на 2022 год. Теперь мы знаем точно, что не все и даже не половина.
Генерирует вся эта шняга около 3% ВВП в год, или 4,2 трлн. руб. в абсолютных числах. Из них, правда, чисто софт — всего 1,9 трлн. Зато рост цен на разработку и приобретение ПО в 2022 году — 35%! (в предыдущие годы был 3 и 7). И средняя зарплата теперь 151 тыс. (сравните со своей, на всякий случай).
Вот такая интересная статистика.
Ещё интересные данные про пользователей, чтобы вы не очень на их навыки рассчитывали.
Вот как вы думаете — какой процент людей в возрасте от 15 лет может отправить электронное письмо с вложением? А сколько процентов владеют искусством копирования и вставки в электронных документах? И какой процент людей может изменить настройки доступа к какой-нибудь информации? (в тексте почему-то "настройки доступа к учетной записи", я не понимаю, что они имеют в виду). Пишите в комменты!
В общем, поздравляю себя с очередным круглым числом подписчиков, а вам желаю, чтобы вы по любой статистике были всегда в топе! (особенно в топе зарплат, желательно📈 )
Большое вам спасибо за доверие и интерес!
А вот вам по случаю круглого числа немного статистики. Мне давно уже было интересно — а сколько нас всего — в смысле, сколько системных аналитиков в РФ, ну или тех, кто так или иначе причисляет себя к ним? По оценкам, которые мы делали разными способами, получалось, что примерно 30-40 тысяч.
И вот, наконец, я нашел источник, на который можно сослаться! НИУ ВШЭ публикует ежегодный статистический сборник "Индикаторы цифровой экономики", и там есть данные по занятости в ИТ, а среди них есть системные аналитики! Сейчас опубликованы данные за 2022 год, их и будем смотреть.
Так, всего в ИКТ на 2022 год занято почти 1,9 млн. человек, из них разработчиков и аналитиков программного обеспечения и приложений — 761 тыс. (в 2021 было 800 тыс., между прочим). Такие дела, нас считают вместе с разработчиками.
Так сколько же именно аналитиков? Из этих 761 тысячи — 4.6%, то есть 35 тысяч!
Вот так, всего-то. То есть, если считать, что тут у меня только системные аналитики, то это было бы 22,8% всех системных аналитиков в РФ! Но тут, конечно, не только системные аналитики, я-то знаю :) Кстати, надо будет сделать опрос, очень интересно.
Что ещё можно вытащить из этих данных? Ну, например, теперь мы знаем среднее соотношение: на одного аналитика приходится примерно 21,5 разработчиков. Ну, это лукавая цифра, конечно — скорее, это говорит о том, что во многих компаниях разработчики работают без аналитиков вообще. Экспертно мы всегда оцениваем примерно как 1/10.
А вот, например, про дистанционную работу: 27.5% людей в ИТ работают дистанционно по состоянию на 2022 год. Теперь мы знаем точно, что не все и даже не половина.
Генерирует вся эта шняга около 3% ВВП в год, или 4,2 трлн. руб. в абсолютных числах. Из них, правда, чисто софт — всего 1,9 трлн. Зато рост цен на разработку и приобретение ПО в 2022 году — 35%! (в предыдущие годы был 3 и 7). И средняя зарплата теперь 151 тыс. (сравните со своей, на всякий случай).
Вот такая интересная статистика.
Ещё интересные данные про пользователей, чтобы вы не очень на их навыки рассчитывали.
Вот как вы думаете — какой процент людей в возрасте от 15 лет может отправить электронное письмо с вложением? А сколько процентов владеют искусством копирования и вставки в электронных документах? И какой процент людей может изменить настройки доступа к какой-нибудь информации? (в тексте почему-то "настройки доступа к учетной записи", я не понимаю, что они имеют в виду). Пишите в комменты!
В общем, поздравляю себя с очередным круглым числом подписчиков, а вам желаю, чтобы вы по любой статистике были всегда в топе! (особенно в топе зарплат, желательно
Please open Telegram to view this post
VIEW IN TELEGRAM
❤34🔥19👍4
Хороший вопрос
Какие жанры докладов бывают?
1. 🥱"Унылые позавчерашние новости". Самый распространенный жанр. Жанр по умолчанию. Жанр, в который скатывается 90% всех инициатив "что-то рассказать нашему комьюнити от таких же, как мы". Именно из-за этого жанра большинство конференций, курсов и т.п. слушать невозможно. Почему так? Следите за руками:
— Спикер такой же, как и те, кто сидит в зале 🤷♂️. А это значит, что ничего экстраординарного в его работе нет. Ну, в сравнении с такими же, как он, в зале.
— Мы берем хороший случай — это толковый спец 👌. Онтак же хорошо, как и любой другой в зале понимает тему. Но он не радикально дальше рынка, в дали, про которые никто в зале не слышал и не пробовал. Просто потому, что все делают примерно одно и тоже.
— 😨 И он боится облажаться.
— 🕰️Поэтому рассказывает только о том, в чем он уверен. А это — позавчерашние новости. Не надо делать такие доклады.
Дальше пойдут хорошие жанры докладов:
2. 🔬 Рассказ о про то, что спикер действительно знает лучше, чем аудитория.
Это
1. 🥱"Унылые позавчерашние новости". Самый распространенный жанр. Жанр по умолчанию. Жанр, в который скатывается 90% всех инициатив "что-то рассказать нашему комьюнити от таких же, как мы". Именно из-за этого жанра большинство конференций, курсов и т.п. слушать невозможно. Почему так? Следите за руками:
— Спикер такой же, как и те, кто сидит в зале 🤷♂️. А это значит, что ничего экстраординарного в его работе нет. Ну, в сравнении с такими же, как он, в зале.
— Мы берем хороший случай — это толковый спец 👌. Онтак же хорошо, как и любой другой в зале понимает тему. Но он не радикально дальше рынка, в дали, про которые никто в зале не слышал и не пробовал. Просто потому, что все делают примерно одно и тоже.
— 😨 И он боится облажаться.
— 🕰️Поэтому рассказывает только о том, в чем он уверен. А это — позавчерашние новости. Не надо делать такие доклады.
Дальше пойдут хорошие жанры докладов:
2. 🔬 Рассказ о про то, что спикер действительно знает лучше, чем аудитория.
Это
Очень классная классификация докладов от Лёши Кулакова (создатель студии JetStyle, директор по продуктам Ridero). Сейчас ещё идёт отбор докладов на AnalystDays (последний день!), ЛАФ, потом будет Flow — в общем, есть куда податься. Если вы задумали сделать доклад — присмотритесь к этой раскладке. И не делайте, пожалуйста, "позавчерашние новости"! Хороший ПК их отсечет на этапе отбора, а просочившиеся сильно портят конференцию.
Какие доклады бывают:
1. 🥱"Унылые позавчерашние новости".
(Самый распространенный на конференциях жанр, но и самый тоскливый, не надо так)
Хорошие жанры:
2. 🔬 Рассказ о про то, что спикер действительно знает лучше, чем аудитория.
(Сюда как раз относятся исследования — как что-то на самом деле устроено)
3. 🧩 Рассказ из соседней предметной области, полезный для нашей предметной области.
4. 🤹♂️ Стендап.
5. 🤦♂️ Как я облажался.
Я бы от себя добавил, что на технических конференциях (а конфы по системному анализу я отношу к техническим!) бывает ещё жанр "Рассказ об опыте" — в стиле "мы попробовали вот такую новую технологию/инструмент, решали вот эту проблему, и вот что у нас получилось (хорошо или ужасно)". Это может быть почти исследование, а может быть кейс, только нужно быть осторожным и не впасть в "позавчерашние новости". Например, про применение юскейсов сейчас рассказывать даже как-от неприлично, а вот про внедрение "UseCases 3.0", если оно вдруг у кого-то случилось, было бы интересно послушать. Или, скажем, про технологии интеграции — общий обзор — это явно позавчерашние новости, а вот исследование или кейс с какой-то новой точки зрения — вполне подойдёт.
Ну а Лёшин канал рекомендую — хоть он пока и не определился с каким-то одним направлением, но своего содержания у него много: и про создание/UX продуктов, и про бизнес, и про книги, и про применения во всем этом техник и идей из ролевых игр живого действия — бывает интересно (это не взаимопиар, а по-честному один из редких каналов, которые у меня незамьючены — в расчете на интересный пост, вот как сегодня).
Какие доклады бывают:
1. 🥱"Унылые позавчерашние новости".
(Самый распространенный на конференциях жанр, но и самый тоскливый, не надо так)
Хорошие жанры:
2. 🔬 Рассказ о про то, что спикер действительно знает лучше, чем аудитория.
(Сюда как раз относятся исследования — как что-то на самом деле устроено)
3. 🧩 Рассказ из соседней предметной области, полезный для нашей предметной области.
4. 🤹♂️ Стендап.
5. 🤦♂️ Как я облажался.
Я бы от себя добавил, что на технических конференциях (а конфы по системному анализу я отношу к техническим!) бывает ещё жанр "Рассказ об опыте" — в стиле "мы попробовали вот такую новую технологию/инструмент, решали вот эту проблему, и вот что у нас получилось (хорошо или ужасно)". Это может быть почти исследование, а может быть кейс, только нужно быть осторожным и не впасть в "позавчерашние новости". Например, про применение юскейсов сейчас рассказывать даже как-от неприлично, а вот про внедрение "UseCases 3.0", если оно вдруг у кого-то случилось, было бы интересно послушать. Или, скажем, про технологии интеграции — общий обзор — это явно позавчерашние новости, а вот исследование или кейс с какой-то новой точки зрения — вполне подойдёт.
Ну а Лёшин канал рекомендую — хоть он пока и не определился с каким-то одним направлением, но своего содержания у него много: и про создание/UX продуктов, и про бизнес, и про книги, и про применения во всем этом техник и идей из ролевых игр живого действия — бывает интересно (это не взаимопиар, а по-честному один из редких каналов, которые у меня незамьючены — в расчете на интересный пост, вот как сегодня).
10👍17❤5
Аналитик нужен для снижения неопределенности.
Или для борьбы с ней. Вынесу из комментов, это достойно отдельного поста.
Часто при обсуждении смысла и ценности роли аналитика (особенно системного аналитика!) говорят про снижение неопределенности. Это такой типовой ответ.
Хуже того — даже в профстандарте это есть! Аж в четырех местах:
"...определять задачи на доработки, устранение противоречий и неопределенности"
"...определять [..] уровень оставшейся неопределенности [после сбора данных]" и "собирать данные о неопределенности (нехватке информации, источников данных, проектных решений)" (не перепутайте!)
"Анализ последствий выявленной неопределенности"
Вот только это слово "неопределенность" само по себе содержит неопределенность. Какую именно неопределенность мы имеем в виду? Я люблю переводить всякие слова с одного языка на другой. Например, на английский — он интересен тем, что "сделан" примерно из 3-4 разных языков, и в нём, скорее всего, одно слово на русском превращается в несколько с чуть разными значениями. Помню, на экзамене нужно было перевести статью с названием "Precision And Accuracy", чуть не засыпался сразу на названии; и так со многими словами — efficiency, efficacy и effectiveness, например.
Так вот, неопределенность по-английски бывает:
🤷🏼♂️ uncertainty — это "неуверенность", нехватка информации — либо о том, что есть; либо о том, что будет (к чему приведет то или иное решение). Скорее всего речь идёт об определенных состояниях, но мы не знаем, какое выбрать. Если пытаться это измерять, то получится перечень возможных состояний, их вероятности и график распределения плотности вероятности (например, как в этом посте — мы не уверены в дате окончания работ, но можем её оценивать). Эта неопределенность связана с понятием риска. И с понятием выбора. То есть, не то что мы не знаем, что вообще может быть — мы, скорее всего, знаем, какие есть варианты, но не можем выбрать один из них.
🤌 ambiguity — это "неоднозначность", "двусмысленность" — это как раз про неопределенность результата. Не то, что мы выбрать один из вариантов не можем — мы вообще не понимаем, чем эти варианты отличаются. Или не понимаем, чем отличаются исходные параметры. Или разные участники понимают их по-разному.
😶🌫️ vagueness — это "нечеткость", слышали про нечеткую логику? Это про граничные кейсы и разделение двух концептов или статусов. Когда мы четко не можем отделить одно от другого. Что значит, например, "человек посетил доклад"? Слушал от начала до конца? Начал слушать, но потом ушел? С середины ушел, или почти сразу? А если наоборот — зашел на середине и остался? Или ближе к концу пришел? Или заходил пару раз, постоял у дверей, и вышел? Ничего не понятно, а в аналитике его посчитать как-то нужно.
Ещё бывает confusion — это уже совсем не неопределенность, это скорее путаница: когда вся информация у нас есть, но мы не понимаем, что с ней делать. С этим аналитик тоже часто сталкивается.
Можно сказать, что я душню, но эти различия важны: к их решению нужно подходить по-разному.
uncertainty мы решаем через многофакторный анализ, плотность распределения вероятности, вычисление доверительных интервалов и т.п. А ещё с этим связаны робастность, то есть устойчивость, и сложность (robustness, complexity). Устойчивость — это про разброс входных параметров — получим ли мы результат с той же точностью, если входные параметры или среда немного изменятся. но при этом желательно, чтобы сложность системы не росла. Это уже про архитектуру.
ambiguity устраняем понятно как — через определение общего языка, прояснение концептов, а если не выходит — через изоляцию их в разных частях системы — привет DDD.
К vagueness можно подходить через ту же нечеткую логику, ну и ещё всякие штуки с логикой и хитрыми моделями данных.
В общем, говоря про неопределенность, желательно определиться — какой именно её вид вы имеете в виду.
Или для борьбы с ней. Вынесу из комментов, это достойно отдельного поста.
Часто при обсуждении смысла и ценности роли аналитика (особенно системного аналитика!) говорят про снижение неопределенности. Это такой типовой ответ.
Хуже того — даже в профстандарте это есть! Аж в четырех местах:
"...определять задачи на доработки, устранение противоречий и неопределенности"
"...определять [..] уровень оставшейся неопределенности [после сбора данных]" и "собирать данные о неопределенности (нехватке информации, источников данных, проектных решений)" (не перепутайте!)
"Анализ последствий выявленной неопределенности"
Вот только это слово "неопределенность" само по себе содержит неопределенность. Какую именно неопределенность мы имеем в виду? Я люблю переводить всякие слова с одного языка на другой. Например, на английский — он интересен тем, что "сделан" примерно из 3-4 разных языков, и в нём, скорее всего, одно слово на русском превращается в несколько с чуть разными значениями. Помню, на экзамене нужно было перевести статью с названием "Precision And Accuracy", чуть не засыпался сразу на названии; и так со многими словами — efficiency, efficacy и effectiveness, например.
Так вот, неопределенность по-английски бывает:
🤷🏼♂️ uncertainty — это "неуверенность", нехватка информации — либо о том, что есть; либо о том, что будет (к чему приведет то или иное решение). Скорее всего речь идёт об определенных состояниях, но мы не знаем, какое выбрать. Если пытаться это измерять, то получится перечень возможных состояний, их вероятности и график распределения плотности вероятности (например, как в этом посте — мы не уверены в дате окончания работ, но можем её оценивать). Эта неопределенность связана с понятием риска. И с понятием выбора. То есть, не то что мы не знаем, что вообще может быть — мы, скорее всего, знаем, какие есть варианты, но не можем выбрать один из них.
Ещё бывает confusion — это уже совсем не неопределенность, это скорее путаница: когда вся информация у нас есть, но мы не понимаем, что с ней делать. С этим аналитик тоже часто сталкивается.
Можно сказать, что я душню, но эти различия важны: к их решению нужно подходить по-разному.
uncertainty мы решаем через многофакторный анализ, плотность распределения вероятности, вычисление доверительных интервалов и т.п. А ещё с этим связаны робастность, то есть устойчивость, и сложность (robustness, complexity). Устойчивость — это про разброс входных параметров — получим ли мы результат с той же точностью, если входные параметры или среда немного изменятся. но при этом желательно, чтобы сложность системы не росла. Это уже про архитектуру.
ambiguity устраняем понятно как — через определение общего языка, прояснение концептов, а если не выходит — через изоляцию их в разных частях системы — привет DDD.
К vagueness можно подходить через ту же нечеткую логику, ну и ещё всякие штуки с логикой и хитрыми моделями данных.
В общем, говоря про неопределенность, желательно определиться — какой именно её вид вы имеете в виду.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍8🤔7👏6👎4
Вдогонку к посту про неопределенность. Кажется, я понял. Это же не неопределенность. Это неизвестность!
Это не неуверенность, не неоднозначность, не нечеткость. Это просто неизвестность.
Аналитик уменьшает неизвестность. Когда неизвестно, что делать. И это сразу нас приводит к фреймворку Cynefin, помните — про какую проблему идёт речь — понятную, сложную, комплексную или хаотичную. Там в середине как раз "неопределенная".
Вот аналитик и помогает эту "неопределенность" сдвинуть куда-то в понятную область, потому что там есть стратегия решений для разных видов проблем.
Для понятной проблемы — выяви-классифицируй-реагируй — это бизнес-процесс.
Для сложной — оцени-проанализируй-реагируй — это анализ.
Для комплексной — исследуй-воспринимай-реагируй — это исследование.
Для хаотической — действуй-чувствуй-реагируй — это интуиция.
Так вот Cynefin Framework — он весь про знания, и сначала "понятные" и "сложные" назывались "известными" и "познаваемыми".
Мне всегда хочется чего-то более сложного, чем матрица 2х2, и вот [специально для таких, как я] Сноуден год назад опубликовал расширенную версию, "матрицу неопределенности", чисто про знания. Теперь всё понятно — тут две шкалы: эпистемологическая, то есть — что нам известно про проблему, и онтологическая, то есть — какова сама проблема по сути.
Понятная — проблема известная, и нам про неё всё известно.
Сложная — проблема в принципе познаваема, и нам про неё известно, т.е., мы знаем, чего мы не знаем.
Комплексная — проблема вообще известна, но неизвестна лично нам.
Парадоксальная — проблема познаваема, но нам неизвестна — не знаем, чего не знаем (но можем узнать).
Комплексно-хаотическая — мало того, что проблема нам неизвестна, она ещё и непознаваема.
Лиминально-сложная (пугающая) — немыслимая для нас, но в принципе познаваемая.
И, наконец, действительно хаотическая — немыслимая и непознаваемая.
Вот это уже больше похоже на истинную картину.
И, кроме действий для каждого домена, Сноуден дает ещё и фитнес-функцию для систем: в левом нижнем углу они должны стремиться к устойчивости в смысле робастности — то есть, сохранять свои свойства при незначительных изменениях внешней среды; в правом верхнем — к резильентности, то есть способности выживать при резких изменениях.
Это не неуверенность, не неоднозначность, не нечеткость. Это просто неизвестность.
Аналитик уменьшает неизвестность. Когда неизвестно, что делать. И это сразу нас приводит к фреймворку Cynefin, помните — про какую проблему идёт речь — понятную, сложную, комплексную или хаотичную. Там в середине как раз "неопределенная".
Вот аналитик и помогает эту "неопределенность" сдвинуть куда-то в понятную область, потому что там есть стратегия решений для разных видов проблем.
Для понятной проблемы — выяви-классифицируй-реагируй — это бизнес-процесс.
Для сложной — оцени-проанализируй-реагируй — это анализ.
Для комплексной — исследуй-воспринимай-реагируй — это исследование.
Для хаотической — действуй-чувствуй-реагируй — это интуиция.
Так вот Cynefin Framework — он весь про знания, и сначала "понятные" и "сложные" назывались "известными" и "познаваемыми".
Мне всегда хочется чего-то более сложного, чем матрица 2х2, и вот [специально для таких, как я] Сноуден год назад опубликовал расширенную версию, "матрицу неопределенности", чисто про знания. Теперь всё понятно — тут две шкалы: эпистемологическая, то есть — что нам известно про проблему, и онтологическая, то есть — какова сама проблема по сути.
Понятная — проблема известная, и нам про неё всё известно.
Сложная — проблема в принципе познаваема, и нам про неё известно, т.е., мы знаем, чего мы не знаем.
Комплексная — проблема вообще известна, но неизвестна лично нам.
Парадоксальная — проблема познаваема, но нам неизвестна — не знаем, чего не знаем (но можем узнать).
Комплексно-хаотическая — мало того, что проблема нам неизвестна, она ещё и непознаваема.
Лиминально-сложная (пугающая) — немыслимая для нас, но в принципе познаваемая.
И, наконец, действительно хаотическая — немыслимая и непознаваемая.
Вот это уже больше похоже на истинную картину.
И, кроме действий для каждого домена, Сноуден дает ещё и фитнес-функцию для систем: в левом нижнем углу они должны стремиться к устойчивости в смысле робастности — то есть, сохранять свои свойства при незначительных изменениях внешней среды; в правом верхнем — к резильентности, то есть способности выживать при резких изменениях.
🔥30👍11👎2❤1
Команда ЛАФ, оказывается, выложила запись моего доклада про историю и использование UML: https://rutube.ru/video/17ecbc3498379f11ab1c1ddacd8b6762/
С одной стороны, там результаты исследования современного применения UML (теперь мы документально знаем, что Sequence Diagram на первом месте, но и кроме неё кое-что применяется).
С другой — интересно порассуждать, как менялись методы и нотации, и само представление о проектировании систем, пока менялись методы и технологии их создания.
Сейчас, уже больше чем через полгода после этого доклада, можно ещё раз вернуться к теме, и посмотреть — какие тренды и что меняется, и как это можно визуализировать. Кажется, общие тенденции такие:
— тренд на грануляцию и изоляцию: сначала выделение подпрограмм, потом — классов, теперь — микросервисов и даже отдельных функций в виде сервисов. Соответственно, с увеличением числа элементов они перестают помещаться на любой диаграмме в видимом формате. Получится что-то вроде карты звездного неба с созвездиями.
— накопление готовых наработок: библиотек, фреймворков и сервисов. Само программирование превращается зачастую просто в клей, который соединяет готовые компоненты. Нужно ли это визуализировать, есть ли в этом вообще ценность?
— укрупнение систем. Системы стали гигантскими, сотни и тысячи микросервисов — не редкость. Естественно, это тоже ни на одну диаграмму не влезет.
— массовое внедрение конвейерных систем обработки — типа очередей, пайплайнов. Исторически визуализации это не очень хорошо поддерживают, та же Sequence Diagram скорее про точечные обращения друг к другу.
С точки зрения инструментов визуализации (и проектирования через визуализацию) — обещанные в фантастических фильмах и книгах 3D-модели как-то не прижились. Хотя вот Fanсade выглядит интересно, детям после Майнкрафта хорошо заходит, лучше чем Scratch.
В общем, пока у меня не складывается картинка, что может прийти на смену UML (или C4) в качестве "чертежей" для программных систем, и нужно ли это. Но, по ощущениям, что-то зреет — между SADT и UML прошло примерно 25-30 лет, от создания UML — 30, пора чему-то новому появиться.
С одной стороны, там результаты исследования современного применения UML (теперь мы документально знаем, что Sequence Diagram на первом месте, но и кроме неё кое-что применяется).
С другой — интересно порассуждать, как менялись методы и нотации, и само представление о проектировании систем, пока менялись методы и технологии их создания.
Сейчас, уже больше чем через полгода после этого доклада, можно ещё раз вернуться к теме, и посмотреть — какие тренды и что меняется, и как это можно визуализировать. Кажется, общие тенденции такие:
— тренд на грануляцию и изоляцию: сначала выделение подпрограмм, потом — классов, теперь — микросервисов и даже отдельных функций в виде сервисов. Соответственно, с увеличением числа элементов они перестают помещаться на любой диаграмме в видимом формате. Получится что-то вроде карты звездного неба с созвездиями.
— накопление готовых наработок: библиотек, фреймворков и сервисов. Само программирование превращается зачастую просто в клей, который соединяет готовые компоненты. Нужно ли это визуализировать, есть ли в этом вообще ценность?
— укрупнение систем. Системы стали гигантскими, сотни и тысячи микросервисов — не редкость. Естественно, это тоже ни на одну диаграмму не влезет.
— массовое внедрение конвейерных систем обработки — типа очередей, пайплайнов. Исторически визуализации это не очень хорошо поддерживают, та же Sequence Diagram скорее про точечные обращения друг к другу.
С точки зрения инструментов визуализации (и проектирования через визуализацию) — обещанные в фантастических фильмах и книгах 3D-модели как-то не прижились. Хотя вот Fanсade выглядит интересно, детям после Майнкрафта хорошо заходит, лучше чем Scratch.
В общем, пока у меня не складывается картинка, что может прийти на смену UML (или C4) в качестве "чертежей" для программных систем, и нужно ли это. Но, по ощущениям, что-то зреет — между SADT и UML прошло примерно 25-30 лет, от создания UML — 30, пора чему-то новому появиться.
RUTUBE
Юрий Куприянов - UML- как задумывался, как используется и нужен ли в 2024 году
Смотрите видео онлайн «Юрий Куприянов - UML- как задумывался, как используется и нужен ли в 2024 году» на канале «InWave EventsPro» в хорошем качестве и бесплатно, опубликованное 30 сентября 2024 года в 15:30, длительностью 00:47:40, на видеохостинге RUTUBE.
👍20🔥5❤1
Почему-то вспомнил сегодня задачку от Сергея Нужненко: описать входы и выходы стиральной машины. Такая типовая задачка для аналитика/проектировщика систем.
Подвох в том, что многие забывают то водоотведение, то электричество. Ну, опытный аналитик это всё учтет, конечно.
А вот что вообще все забывают, и что является предметом специального обучения — это различные эксплуатационные факторы и воздействия. Например:
⚖️ машина имеет вес и центр тяжести, она давит на то, на чем стоит. При этом вес и центр тяжести разные в разных режимах. У машины есть допустимые углы наклона, при которых она сохраняет работоспособность и остается безопасной;
📳 машина подвержена вибрации и сама производит её, причем это тоже зависит от входа (вида и объема загрузки) — у всех, наверное, машина прыгала или даже падала, если узкая; у неё в целом есть резонансная частота и у отдельных её деталей есть свои частоты (например, у стекол и печатных плат — при входе в резонанс они могут треснуть); для крупных деталей с большой массой эти частоты не очень-то велики — поэтому у всех машин есть специальный режим для транспортировки;
🧲 машина подвержена электромагнитным излучениям и сама создаёт их;
🔨 машина подвержена внешним механическим воздействиям и имеет некоторую прочность;
💧 машина подвержена воздействию пыли и влажности; влажность она также может создавать сама;
♨️ машина подвержена воздействию тепла и создает его (это один из выходов);
🕶 машина подвержена воздействию ультрафиолета;
🪛 машина, возможно, имеет интерфейс для встраивания под столешницу (возможность работы без верхней крышки);
Всё вышеперечисленное изучается в институте в рамках дисциплины "Конструирование". Ещё там всякие штуки про технологию производства, сборки, осуществления диагностики и ремонта, транспортировки, установки, обслуживания и настройки.
Наш преподаватель про неё говорил так: у вас нет предмета "сопромат", который "сдал сопромат — можешь жениться", но есть конструирование. Я вам гарантирую, что это не хуже.
Так оно и было, потому что все эти показатели нужно рассчитать, и сделать устройство так, чтобы в нём и паразитных ёмкостей не было, и оно не перегревалось, и центр тяжести не был смещён, и собственная частота не попадала в резонанс с типовыми частотами бытового или производственного использования (хуже всех было тем, кому попались бортовые приборы), да ещё и собрать его всё-таки как-то можно было бы при имеющихся технологиях.
Примерно тогда у меня произошел один из моментов сатори — внезапного просветления — когда препод спросил на защите "А как выбор корпуса обусловлен планируемым годовым объемом выпуска устройства?" — тут-то я и понял, что всё со всем связано. Это потом сильно помогало в системном анализе.
Возвращаясь к стиральной машине — я не знаю, какие для всех этих характеристик привести аналогии в программных системах и кто должен за них отвечать, но, кажется, как предмет это было бы очень полезно (предмет "конструирование ПО", к сожалению, вообще совершенно не о том).
Подвох в том, что многие забывают то водоотведение, то электричество. Ну, опытный аналитик это всё учтет, конечно.
А вот что вообще все забывают, и что является предметом специального обучения — это различные эксплуатационные факторы и воздействия. Например:
📳 машина подвержена вибрации и сама производит её, причем это тоже зависит от входа (вида и объема загрузки) — у всех, наверное, машина прыгала или даже падала, если узкая; у неё в целом есть резонансная частота и у отдельных её деталей есть свои частоты (например, у стекол и печатных плат — при входе в резонанс они могут треснуть); для крупных деталей с большой массой эти частоты не очень-то велики — поэтому у всех машин есть специальный режим для транспортировки;
🔨 машина подвержена внешним механическим воздействиям и имеет некоторую прочность;
🪛 машина, возможно, имеет интерфейс для встраивания под столешницу (возможность работы без верхней крышки);
Всё вышеперечисленное изучается в институте в рамках дисциплины "Конструирование". Ещё там всякие штуки про технологию производства, сборки, осуществления диагностики и ремонта, транспортировки, установки, обслуживания и настройки.
Наш преподаватель про неё говорил так: у вас нет предмета "сопромат", который "сдал сопромат — можешь жениться", но есть конструирование. Я вам гарантирую, что это не хуже.
Так оно и было, потому что все эти показатели нужно рассчитать, и сделать устройство так, чтобы в нём и паразитных ёмкостей не было, и оно не перегревалось, и центр тяжести не был смещён, и собственная частота не попадала в резонанс с типовыми частотами бытового или производственного использования (хуже всех было тем, кому попались бортовые приборы), да ещё и собрать его всё-таки как-то можно было бы при имеющихся технологиях.
Примерно тогда у меня произошел один из моментов сатори — внезапного просветления — когда препод спросил на защите "А как выбор корпуса обусловлен планируемым годовым объемом выпуска устройства?" — тут-то я и понял, что всё со всем связано. Это потом сильно помогало в системном анализе.
Возвращаясь к стиральной машине — я не знаю, какие для всех этих характеристик привести аналогии в программных системах и кто должен за них отвечать, но, кажется, как предмет это было бы очень полезно (предмет "конструирование ПО", к сожалению, вообще совершенно не о том).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍18❤1👎1
Заманили меня поговорить про карьеру, в четверг вечером, если интересно — присоединяйтесь к трансляции!
Ну а если не хотите ждать — можно прямо тут о чём-нибудь спросить, в комментариях к этому посту.
Ну а если не хотите ждать — можно прямо тут о чём-нибудь спросить, в комментариях к этому посту.
Forwarded from NextWay - анализ и проектирование в IT
Кем мы станем когда вырастем? С Юрием Куприяновым
Долгожданный гость в нашей рубрике Юра Куприянов - автор канала Системный сдвиг, лучших докладов на Analyst days, ЛАФ, Flow.
С Юрой поговорим о профессии системного аналитика: его прошлом, настоящем и будущем.
📒 Какие навыки и знания нужны, чтобы быть системным аналитиком?
💸 Зачем компаниям нужны системные аналитики? И что это за компании?
💻 Реально ли системному аналитику стать разработчиком, архитектором? И что для этого нужно?
Наконец, мы узнаем, а кем станет сам Юра, когда вырастет?
📅 Когда: 6 февраля в 18:30
🔗 Где: онлайн, ссылка на регистрацию
Долгожданный гость в нашей рубрике Юра Куприянов - автор канала Системный сдвиг, лучших докладов на Analyst days, ЛАФ, Flow.
С Юрой поговорим о профессии системного аналитика: его прошлом, настоящем и будущем.
📒 Какие навыки и знания нужны, чтобы быть системным аналитиком?
💸 Зачем компаниям нужны системные аналитики? И что это за компании?
💻 Реально ли системному аналитику стать разработчиком, архитектором? И что для этого нужно?
Наконец, мы узнаем, а кем станет сам Юра, когда вырастет?
📅 Когда: 6 февраля в 18:30
🔗 Где: онлайн, ссылка на регистрацию
🔥10👍4❤1
Стоит ли оно того?
Прекрасную картинку нашел и перевел для вас! https://xkcd.com/1205/
Каждому автоматизатору процессов нужно повесить над столом — сколько времени вы можете потратить на оптимизацию/автоматизацию задачи, чтобы это оправдало себя хотя бы за пять лет?
Если вы выполняете задачу раз в неделю, а ускорить её сможете на 6 часов — то целых 2 месяца! А если раз в месяц, а ускорить получится только на час — не больше двух дней.
Что выбирать для автоматизации? Задачи, лежащие слева внизу: частые и которые получится ускорить на минуты и часы.
UPD.: В реальности, правда, скорее выйдет так: https://xkcd.ru/1319/
Прекрасную картинку нашел и перевел для вас! https://xkcd.com/1205/
Каждому автоматизатору процессов нужно повесить над столом — сколько времени вы можете потратить на оптимизацию/автоматизацию задачи, чтобы это оправдало себя хотя бы за пять лет?
Если вы выполняете задачу раз в неделю, а ускорить её сможете на 6 часов — то целых 2 месяца! А если раз в месяц, а ускорить получится только на час — не больше двух дней.
Что выбирать для автоматизации? Задачи, лежащие слева внизу: частые и которые получится ускорить на минуты и часы.
UPD.: В реальности, правда, скорее выйдет так: https://xkcd.ru/1319/
🔥25❤11👍3
Сделал шпаргалку по структуре HTTP-запроса:
Что где может находиться и что куда помещать при проектировании API?
Куда положить версию API? Как сконструировать путь? Какие предусмотреть параметры запроса? Для чего использовать заголовки?
Вопросы спорные, потому что в разных API и стайл-гайдах их решают очень по-разному, и единства мнений нет (а есть, наоборот, священные войны за то, как правильно и что соответствует RESTу!)
В любом случае — все эти вопросы должны быть поставлены, по ним приняты решения и всё это внесено в документацию к API!
Что где может находиться и что куда помещать при проектировании API?
Куда положить версию API? Как сконструировать путь? Какие предусмотреть параметры запроса? Для чего использовать заголовки?
Вопросы спорные, потому что в разных API и стайл-гайдах их решают очень по-разному, и единства мнений нет (а есть, наоборот, священные войны за то, как правильно и что соответствует RESTу!)
В любом случае — все эти вопросы должны быть поставлены, по ним приняты решения и всё это внесено в документацию к API!
❤56🔥31👍12