Руководство по написанию требований от INCOSE, которое я считаю одним из лучших и компактных описаний процесса работы с текстами требований, было обновлено в 2023 году до версии 4, и, видимо, по случайности, его финальный драфт (на английском) можно свободно скачать вот тут: https://www.incose.org/docs/default-source/working-groups/requirements-wg/gtwr/incose_rwg_gtwr_v4_040423_final_drafts.pdf
Так что, если вы хотели ознакомиться — скачивайте, пока доступно! Обычно драфт не очень сильно отличается от финальной версии. В чем его отличие от предыдущей версии, я пока не понял, но вроде бы документ стал длиннее страниц на 20.
Так что, если вы хотели ознакомиться — скачивайте, пока доступно! Обычно драфт не очень сильно отличается от финальной версии. В чем его отличие от предыдущей версии, я пока не понял, но вроде бы документ стал длиннее страниц на 20.
👍14🔥10❤4
Я вообще редко пишу сюда про образование (а может, нужно чаще?..), но тут просто не смог пройти мимо.
Замечательные результаты тестов! Приходите учиться в университет, у вас разовьются способности анализа и следования правилам, вырастет тревожность и упадут ориентация на результат, способность к сотрудничеству, стрессоустойчивость, уверенность в себе и в будущем!
Это не какой-то конкретный университет, это среднее по стране и по всем специальностям. Говорят, только у медиков партнерство не падает, т.к. другой способ подготовки - интересно, ничего не знаю про медицинское образование! А у остальных - вот так.
Замечательные результаты тестов! Приходите учиться в университет, у вас разовьются способности анализа и следования правилам, вырастет тревожность и упадут ориентация на результат, способность к сотрудничеству, стрессоустойчивость, уверенность в себе и в будущем!
Это не какой-то конкретный университет, это среднее по стране и по всем специальностям. Говорят, только у медиков партнерство не падает, т.к. другой способ подготовки - интересно, ничего не знаю про медицинское образование! А у остальных - вот так.
😱23🔥11😁3🤔2😭1
Ещё про обучение: мне кажется, есть две стратегии. В обсуждении ко вчерашнему посту говорили про растяжку "фундаментальные знания" <-> "прикладные", вот из этого и выбор стратегии тоже строится.
Я впервые об этом задумался, когда был в гостях в Швейцарии, и речь зашла об образовании и карьере. У них там всё чётко: либо ты быстро получаешь рабочее образование (сюда же и программисты относятся, в смысле "кодеры"), и сразу идёшь работать — но тогда твой потенциальный заработок принципиально ограничен, больше какой-то суммы ты не будешь получать. Но работу найти несложно. Либо ты учишься на инженера или магистра, это плюс ещё года 3-4, и тогда твой потенциальный доход гораздо выше, но и число доступных тебе работ ограничено — человек, который мне это рассказывал, как раз недавно вышел на работу, после полутора лет(!) поиска — не было подходящих вакансий, а на более простую работу его не берут — overqualified! (Я не проверял, правда ли именно так устроена рабочая система Швейцарии, но звучит правдоподобно).
У нас-то тоже примерно такая же логика заложена в системе техникум-вуз. И, в принципе, дорога в вуз после техникума не закрыта, но лучше решать сразу — потом будет сложнее. Только мы не Швейцария и не Германия, у нас всё-таки можно работать и разработчиком, и даже тим-лидом без высшего — сам таких людей видел, такие автодидакты, и не пришибленные вузовской системой.
Но есть и следующая развилка: будем честны, в университетах все поголовно работают курса с третьего. Это уже примерно то же, что и очно-заочное образование, не совсем тот уровень. К уровню вообще есть вопросы, у нас мало на каких программах нужно так убиваться по учебе, как, скажем, в американских университетах. Но и дальше, после выпуска есть варианты.
Я вот для себя несколько раз выбирал практическую работу за деньги, а не обучение. Поэтому, например, не защитил диссертацию — пришлось выбирать — или работа в банке (а выглядело это очень круто и заманчиво), либо диссер. Я выбрал поработать. Впрочем, и тема диссера была не супер-интересная.
Ну и так и работал потом, поднимаясь понемногу по карьерной лестнице, проходя типовые курсы — по управлению проектами, по архитектуре, по информационной безопасности, по качеству — в текущем режиме, поддерживающем. В какой-то момент я понял, что могу стать когда-нибудь (нескоро) CTO какого-нибудь банка, большим дядькой, но это не очень весело. Я начал метаться, делать стартапы, проекты в образовании, но всё как-то бестолково, и до сих пор мечусь, честно говоря.
А вот у моего однокурсника была другая стратегия. Он спокойно отучился в аспирантуре и защитился, работая при этом кем-то вроде сисадмина/техдира совсем маленькой компании — не очень круто, зато дало время на подготовку диссера. Потом, уже будучи к.т.н. по модной теме, спокойно осмотрелся на рынке и пошел в Яндекс. Поделал крутые штуки в Яндексе, дорос до начальника группы, отучился в яндексовом ШАДе (это примерно уровень магистратуры).
Уволился, и начал опять учиться. Как раз появились MOOC'и, и, пока они были бесплатными, он прошел их все (ну, несколько десятков точно. Я осилил два). И вот с этим багажом уже стал искать, что делать дальше, и через несколько лет нашёл — и стал CTO и сооснователем стартапа с миллионными инвестициями и одним из признанных специалистов в ИИ и ML.
Две стратегии: выбираешь работу и приличные деньги прямо сейчас, или учёбу (качественную, от лучших поставщиков, до которых можешь дотянуться) — и большие деньги и успех — но потом. Выбирай. Но осторожно. Но выбирай.
(Все действующие лица имеют своих прототипов, но с их точки зрения всё может выглядеть совершенно по-иному. Гриш, если вдруг ты это читаешь и видишь это со своей стороны по-другому— поправь меня. Хотя про стратегии образования я бы поговорил.)
Я впервые об этом задумался, когда был в гостях в Швейцарии, и речь зашла об образовании и карьере. У них там всё чётко: либо ты быстро получаешь рабочее образование (сюда же и программисты относятся, в смысле "кодеры"), и сразу идёшь работать — но тогда твой потенциальный заработок принципиально ограничен, больше какой-то суммы ты не будешь получать. Но работу найти несложно. Либо ты учишься на инженера или магистра, это плюс ещё года 3-4, и тогда твой потенциальный доход гораздо выше, но и число доступных тебе работ ограничено — человек, который мне это рассказывал, как раз недавно вышел на работу, после полутора лет(!) поиска — не было подходящих вакансий, а на более простую работу его не берут — overqualified! (Я не проверял, правда ли именно так устроена рабочая система Швейцарии, но звучит правдоподобно).
У нас-то тоже примерно такая же логика заложена в системе техникум-вуз. И, в принципе, дорога в вуз после техникума не закрыта, но лучше решать сразу — потом будет сложнее. Только мы не Швейцария и не Германия, у нас всё-таки можно работать и разработчиком, и даже тим-лидом без высшего — сам таких людей видел, такие автодидакты, и не пришибленные вузовской системой.
Но есть и следующая развилка: будем честны, в университетах все поголовно работают курса с третьего. Это уже примерно то же, что и очно-заочное образование, не совсем тот уровень. К уровню вообще есть вопросы, у нас мало на каких программах нужно так убиваться по учебе, как, скажем, в американских университетах. Но и дальше, после выпуска есть варианты.
Я вот для себя несколько раз выбирал практическую работу за деньги, а не обучение. Поэтому, например, не защитил диссертацию — пришлось выбирать — или работа в банке (а выглядело это очень круто и заманчиво), либо диссер. Я выбрал поработать. Впрочем, и тема диссера была не супер-интересная.
Ну и так и работал потом, поднимаясь понемногу по карьерной лестнице, проходя типовые курсы — по управлению проектами, по архитектуре, по информационной безопасности, по качеству — в текущем режиме, поддерживающем. В какой-то момент я понял, что могу стать когда-нибудь (нескоро) CTO какого-нибудь банка, большим дядькой, но это не очень весело. Я начал метаться, делать стартапы, проекты в образовании, но всё как-то бестолково, и до сих пор мечусь, честно говоря.
А вот у моего однокурсника была другая стратегия. Он спокойно отучился в аспирантуре и защитился, работая при этом кем-то вроде сисадмина/техдира совсем маленькой компании — не очень круто, зато дало время на подготовку диссера. Потом, уже будучи к.т.н. по модной теме, спокойно осмотрелся на рынке и пошел в Яндекс. Поделал крутые штуки в Яндексе, дорос до начальника группы, отучился в яндексовом ШАДе (это примерно уровень магистратуры).
Уволился, и начал опять учиться. Как раз появились MOOC'и, и, пока они были бесплатными, он прошел их все (ну, несколько десятков точно. Я осилил два). И вот с этим багажом уже стал искать, что делать дальше, и через несколько лет нашёл — и стал CTO и сооснователем стартапа с миллионными инвестициями и одним из признанных специалистов в ИИ и ML.
Две стратегии: выбираешь работу и приличные деньги прямо сейчас, или учёбу (качественную, от лучших поставщиков, до которых можешь дотянуться) — и большие деньги и успех — но потом. Выбирай. Но осторожно. Но выбирай.
(Все действующие лица имеют своих прототипов, но с их точки зрения всё может выглядеть совершенно по-иному. Гриш, если вдруг ты это читаешь и видишь это со своей стороны по-другому— поправь меня. Хотя про стратегии образования я бы поговорил.)
💯16👍8❤6👀4🤝2
Нельзя сказать, что в методах системного анализа ничего не происходит. Вот, например, Ивар Якобсон совместно с Алистером Коберном на днях выпустили новое(!) руководство по юскейсам: Use Cases 3.0 (pdf)
Версия 3.0! Кто-то слышал про Use Cases 2.0? Там появилась такая идея, как "слайсы" — срезы юскейсов, напоминаюшие чем-то разбивку юзер-сторей, про которую я рассказывал на Flow в 2022 году.
Вообще, я и Ивара и Алистера очень уважаю, но ещё первая книге Коберна звучала как монолог из советского фильма: "Не будет ни театра, ни кино —одно сплошное телевидение одни сплошые use cases!", ничего, кроме юскейсов, вам для описания системы не нужно, и юскейсами можно описывать всё на любом уровне — от бизнеса до глубоко внутренних процессов внутри системы, и, конечно же, интеграции.
Собственно, Use Cases 3.0 ровно об этом. Они вводят 10 принципов:
1. Юзкейсами можно описывать любые системы: и бизнес, и ИТ-системы, и физические;
2. Юзкейсы помогают увидеть "картину в целом": назначение системы и как ей пользоваться;
3. Юзкейсы фокусируются на ценностях: целях пользователя и как лучше всего достичь их;
4. Вовлечение стейкхолдеров обязательно: соберите их всех;
5. Юзкейс рассказывает историю, от начального события до получения ценности или неудачи, включая все альтернативы и проблемы;
6. Юзкейс должен вызывать обсуждения — только так вы обнаружите все пропущенные шаги и расширения;
7. Приоритет — удобство чтения. Цель — представить общую картину всем вовлеченным сторонам, получить комментарии, подсветить все пробелы, получить все согласия;
8. Формат юзкейса и уровень детализации может быть очень разным: вы можете начать с наброска последовательности событий и добавлять детали постепенно;
9. Юзкейс реализуется поэтапно: сначала разрабатываются ключевые сценарии, потом более редкие и менее критичные;
10. Система может быть разработана через "слайсы" юзкейсов, каждый слайс добавляет свою часть архитектуры, кода и тестов.
Ну, если не брать слайсы, ничего особо нового тут нет — всё это и раньше говорилось. Разве что подчеркну акцент на сторителлинге, принцип 5: юзкейс — это история. Поэтому, собственно, не может быть юзкейса "отредактировать заявку" или "удалить документ" — сложно про такие элементарные действия рассказать историю. А начнете рассказывать — уровень формулировки юзкейса сразу повысится.
Что ещё нового: использование юзкейсов описано в терминах Essence, как практика (с Альфами, их состояниями — жизненным циклом — и всяким таким). А вот что на самом деле интересно: авторы наконец-то дают ответ на вопрос, как юзкейсы связаны с user story.
Оказывается, вот как: диаграмма юзкейсов описывает всю систему, отдельный юзкейс описывает одну цель пользователя, слайс юзкейса описывает один из способов достижения этой цели с возможными ограничениями, а user story — это, оказывается, единица работы, которую нужно выполнить, чтобы реализовать этот слайс (на один слайс может приходиться несколько юзер сторей). Единицей работы может быть также задача (task) или фича.
В общем, для меня вся эта история выглядит, как попытка объяснить всем, что наш метод ещё ого-го! И вовсе он не устарел! И очень даже он крутой! А то, что вы там какие-то юзер-стори наизобретали, или job story, или ещё какой хипстерский способ описания — мы сейчас вам докажем, что это ерунда, и нужно использовать проверенный дедовский метод.
Впрочем, если брать не юзер стори как таковые, а User Story Map — то там как раз довольно явно становятся видны юзкейсы (как шаги процесса в шапке карты), и юзер-стори, представляющие собой отдельные шаги или требования к шагам. Возможно, что-то в этом есть, и в руководстве приводится даже пример такого сочетания слайса и USM.
Заодно обращу внимание, что никаких "пакетов юзкейсов" или "системных юзкейсов" в этом руководстве нет (но есть "инфраструктурные юзкейсы"!)
В общем, если вы интенсивно используете в работе юзкейсы — вам должно быть любопытно, как их создатели видят их на исходе 2024 года (почти через 30 лет после изобретения).
UPD: Добавил картинку с юзкейсом и юзер-сторями
Версия 3.0! Кто-то слышал про Use Cases 2.0? Там появилась такая идея, как "слайсы" — срезы юскейсов, напоминаюшие чем-то разбивку юзер-сторей, про которую я рассказывал на Flow в 2022 году.
Вообще, я и Ивара и Алистера очень уважаю, но ещё первая книге Коберна звучала как монолог из советского фильма: "Не будет ни театра, ни кино —
Собственно, Use Cases 3.0 ровно об этом. Они вводят 10 принципов:
1. Юзкейсами можно описывать любые системы: и бизнес, и ИТ-системы, и физические;
2. Юзкейсы помогают увидеть "картину в целом": назначение системы и как ей пользоваться;
3. Юзкейсы фокусируются на ценностях: целях пользователя и как лучше всего достичь их;
4. Вовлечение стейкхолдеров обязательно: соберите их всех;
5. Юзкейс рассказывает историю, от начального события до получения ценности или неудачи, включая все альтернативы и проблемы;
6. Юзкейс должен вызывать обсуждения — только так вы обнаружите все пропущенные шаги и расширения;
7. Приоритет — удобство чтения. Цель — представить общую картину всем вовлеченным сторонам, получить комментарии, подсветить все пробелы, получить все согласия;
8. Формат юзкейса и уровень детализации может быть очень разным: вы можете начать с наброска последовательности событий и добавлять детали постепенно;
9. Юзкейс реализуется поэтапно: сначала разрабатываются ключевые сценарии, потом более редкие и менее критичные;
10. Система может быть разработана через "слайсы" юзкейсов, каждый слайс добавляет свою часть архитектуры, кода и тестов.
Ну, если не брать слайсы, ничего особо нового тут нет — всё это и раньше говорилось. Разве что подчеркну акцент на сторителлинге, принцип 5: юзкейс — это история. Поэтому, собственно, не может быть юзкейса "отредактировать заявку" или "удалить документ" — сложно про такие элементарные действия рассказать историю. А начнете рассказывать — уровень формулировки юзкейса сразу повысится.
Что ещё нового: использование юзкейсов описано в терминах Essence, как практика (с Альфами, их состояниями — жизненным циклом — и всяким таким). А вот что на самом деле интересно: авторы наконец-то дают ответ на вопрос, как юзкейсы связаны с user story.
Оказывается, вот как: диаграмма юзкейсов описывает всю систему, отдельный юзкейс описывает одну цель пользователя, слайс юзкейса описывает один из способов достижения этой цели с возможными ограничениями, а user story — это, оказывается, единица работы, которую нужно выполнить, чтобы реализовать этот слайс (на один слайс может приходиться несколько юзер сторей). Единицей работы может быть также задача (task) или фича.
В общем, для меня вся эта история выглядит, как попытка объяснить всем, что наш метод ещё ого-го! И вовсе он не устарел! И очень даже он крутой! А то, что вы там какие-то юзер-стори наизобретали, или job story, или ещё какой хипстерский способ описания — мы сейчас вам докажем, что это ерунда, и нужно использовать проверенный дедовский метод.
Впрочем, если брать не юзер стори как таковые, а User Story Map — то там как раз довольно явно становятся видны юзкейсы (как шаги процесса в шапке карты), и юзер-стори, представляющие собой отдельные шаги или требования к шагам. Возможно, что-то в этом есть, и в руководстве приводится даже пример такого сочетания слайса и USM.
Заодно обращу внимание, что никаких "пакетов юзкейсов" или "системных юзкейсов" в этом руководстве нет (но есть "инфраструктурные юзкейсы"!)
В общем, если вы интенсивно используете в работе юзкейсы — вам должно быть любопытно, как их создатели видят их на исходе 2024 года (почти через 30 лет после изобретения).
UPD: Добавил картинку с юзкейсом и юзер-сторями
👍35🔥4
Или вот ещё в октябре OpenAPI Initiative выпустила первую версию спецификации Overlay : стандарта для описания изменений в спецификации API. Помните пост про метод PATCH и специальный тип документа для описания изменений ресурса? Вот такая же штука для изменения спецификации в формате OpenAPI.
В Overlay предусмотрено пока два вида операций (actions): update и remove. Первая позволяет что-то добавить или изменить в исходной спецификации, вторая, соответственно, удалить. Что именно удалить или добавить — задается полем target, в который пишется путь в формате JSONPath. Вот, скажем, пример удаления из спеки всех упоминаний localhost:
Для чего могут понадобиться эти оверлеи? Например, как в примере выше — для удаления или замены адресов для API в разных контурах — базовая спека одна и та же, а для каждого контура свои адреса, и, например, свои требования к аутентификации. Или (не очень для нас актуальный пример) — описание API на нескольких языках. А вот это можно себе представить: автоматическая генерация OpenAPI спеки из кода без комментариев и описаний + документ в формате Overlay, который эти описания добавляет. Ещё при помощи Overlay можно консистентно поддерживать два видов описаний: для внутреннего использования и для внешнего. А ещё можно в спеку Overlay вынести типовые для всех ваших API вещи: ту же аутентификацию и, например, описание ошибок. А можно убрать из общедоступной спецификации внутренние методы или параметры.
Поддержка нового формата пока ограниченная, но уже есть пара тулзов для встраивания в ваш CI/CD-пайплайн: отдельный тул openapi-overlays-js и ещё несколько в составе платформ для управления API.
Ранее в этом году OpenAPI Iniriative выпустила также спецификацию The Arazzo (Гобелен) , это тоже интересная штука. Помните принцип HATEOAS от Роя Филдинга? Ответ API должен содержать в себе все необходимые ссылки для работы с этим API? Вот Arazzo — что-то в этом духе. Только не внутри каждого ответа, а вынесенное в отдельную спецификацию. Этот формат описывает workflow для API. То есть, в какой последовательности нужно вызывать ваши эндпоинты, чтобы достичь нужного результата. Вот она, новая жизнь юзкейсов! В общем, идеи, не взлетевшие за 25 лет, не дают покоя исследователям и появляются в новых инкарнациях. С другой стороны, почему нет, посмотрим, как оно заживет.
Структурно спецификация Arrazo и правда похожа на формальное описание юзкейса: идентификатор, назначение, описание, входные параметры (inputs), предусловия (воркфлоу, которые должны быть выполнены до начала этого), шаги, ветвления при успехе/неудаче, результат выполнения (outputs). На каждом шаге мы можем получить результат вызова какого-то API (это могут быть API разных сервисов!), проверить эти результаты (не ошибка ли? есть ли нужные поля/значения?), сохранить ответ и перейти на другой шаг в зависимости от успеха или неудачи (есть операция goto). Что вам ещё нужно.
Выглядит довольно перспективно — как легковесная замена BPEL, почти всех интеграционных сервисов типа MAKE (ну, нужно только добавить средства преобразования данных). Ну и для AI-решений, куда же без них: описываем цепочку вызовов разных LLM.
Вообще идеи такие были и раньше: тот же BPEL и BPEL-for-REST, WS-CDL для SOAP, RESTalk — ну посмотрим, как заживет предложение от OpenAPI.
В Overlay предусмотрено пока два вида операций (actions): update и remove. Первая позволяет что-то добавить или изменить в исходной спецификации, вторая, соответственно, удалить. Что именно удалить или добавить — задается полем target, в который пишется путь в формате JSONPath. Вот, скажем, пример удаления из спеки всех упоминаний localhost:
actions:
- target: $.servers[?(@.url == 'http://localhost:8080')]
remove: true
Для чего могут понадобиться эти оверлеи? Например, как в примере выше — для удаления или замены адресов для API в разных контурах — базовая спека одна и та же, а для каждого контура свои адреса, и, например, свои требования к аутентификации. Или (не очень для нас актуальный пример) — описание API на нескольких языках. А вот это можно себе представить: автоматическая генерация OpenAPI спеки из кода без комментариев и описаний + документ в формате Overlay, который эти описания добавляет. Ещё при помощи Overlay можно консистентно поддерживать два видов описаний: для внутреннего использования и для внешнего. А ещё можно в спеку Overlay вынести типовые для всех ваших API вещи: ту же аутентификацию и, например, описание ошибок. А можно убрать из общедоступной спецификации внутренние методы или параметры.
Поддержка нового формата пока ограниченная, но уже есть пара тулзов для встраивания в ваш CI/CD-пайплайн: отдельный тул openapi-overlays-js и ещё несколько в составе платформ для управления API.
Ранее в этом году OpenAPI Iniriative выпустила также спецификацию The Arazzo (Гобелен) , это тоже интересная штука. Помните принцип HATEOAS от Роя Филдинга? Ответ API должен содержать в себе все необходимые ссылки для работы с этим API? Вот Arazzo — что-то в этом духе. Только не внутри каждого ответа, а вынесенное в отдельную спецификацию. Этот формат описывает workflow для API. То есть, в какой последовательности нужно вызывать ваши эндпоинты, чтобы достичь нужного результата. Вот она, новая жизнь юзкейсов! В общем, идеи, не взлетевшие за 25 лет, не дают покоя исследователям и появляются в новых инкарнациях. С другой стороны, почему нет, посмотрим, как оно заживет.
Структурно спецификация Arrazo и правда похожа на формальное описание юзкейса: идентификатор, назначение, описание, входные параметры (inputs), предусловия (воркфлоу, которые должны быть выполнены до начала этого), шаги, ветвления при успехе/неудаче, результат выполнения (outputs). На каждом шаге мы можем получить результат вызова какого-то API (это могут быть API разных сервисов!), проверить эти результаты (не ошибка ли? есть ли нужные поля/значения?), сохранить ответ и перейти на другой шаг в зависимости от успеха или неудачи (есть операция goto). Что вам ещё нужно.
Выглядит довольно перспективно — как легковесная замена BPEL, почти всех интеграционных сервисов типа MAKE (ну, нужно только добавить средства преобразования данных). Ну и для AI-решений, куда же без них: описываем цепочку вызовов разных LLM.
Вообще идеи такие были и раньше: тот же BPEL и BPEL-for-REST, WS-CDL для SOAP, RESTalk — ну посмотрим, как заживет предложение от OpenAPI.
👍12
В общем, после новинок от 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