Forwarded from Системный сдвиг
Kupriyanov_AD16.pptx
7.4 MB
Выступил вчера на AnalystDays'16. На этот раз постарался выдать максимум шаблонов и цепочек промптов, чтобы можно было сразу брать и применять. Держите презентацию!
🔥3
Forwarded from Денис Бесков написал
systems.education
☰ Каталог ссылок по инженерии требований
Русскоязычные и англоязычные курсы, статьи, видео, книги, сервисы
Мы подготовили очередной раздел базы ссылок по инженерии информационных систем http://Systems.Wiki
На этот раз раздел по Инженерии Требований.
В него попали подборки ссылок по темам:
Общие стандарты и своды знаний
Сертификации
Международные журналы
Международные сообщества
Международные конференции
Общие пособия по разработке требований
Инструменты разработки и управления требованиями
Критика инженерии требований
Инженерия требований в машиностроении
Инженерия требований в авиации
Формулирование требований
Разработка бизнес-требований
Требования к продукту
Требования уровня пользователей
— User Stories
— User Story Mapping
— Use Cases
Разработка системных требований
Разработка требований к информационным системам
Разработка требований к ПО
Обеспечение полноты требований к ПО
На этот раз раздел по Инженерии Требований.
В него попали подборки ссылок по темам:
Общие стандарты и своды знаний
Сертификации
Международные журналы
Международные сообщества
Международные конференции
Общие пособия по разработке требований
Инструменты разработки и управления требованиями
Критика инженерии требований
Инженерия требований в машиностроении
Инженерия требований в авиации
Формулирование требований
Разработка бизнес-требований
Требования к продукту
Требования уровня пользователей
— User Stories
— User Story Mapping
— Use Cases
Разработка системных требований
Разработка требований к информационным системам
Разработка требований к ПО
Обеспечение полноты требований к ПО
🔥8👍1
Forwarded from IT Portal
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на полезный репо — best-system-design-resources
Это настоящий кладезь полезных материалов для изучения системного дизайна. Статьи, книги, видео и курсы — всё структурировано и отобрано профи.
Идеально, если хочешь прокачаться в проектировании систем или готовишься к интервью. Годнота, рекомендую🌚
➡️ @PortalToIT | #resourse
Это настоящий кладезь полезных материалов для изучения системного дизайна. Статьи, книги, видео и курсы — всё структурировано и отобрано профи.
Идеально, если хочешь прокачаться в проектировании систем или готовишься к интервью. Годнота, рекомендую
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍3❤2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Искренне поздравляю @vladik_kh !!! 🎉🍾 https://learning.oreilly.com/library/view/balancing-coupling-in/9780137353514/ Монументальный, титанический труд, который под силу только Настоящему Титану! Дейкстра современности! Книга уже признана такими авторитетами…
Имел честь удостоиться быть упомянутым в книге, содержащей монументальный титанический труд. Книги такого уровня выходят в свет не чаще одного раза в десятилетие. О ней уже говорят на всех топовых мировых ИТ-конференциях. Книга о том, как создавать здоровые и успешные системы. Как я уже говорил, это даже не луч света в темном царстве спагетти-кода. Это настоящий прожектор путеводного маяка в океане архитектуры!
🔥39👏6
This media is not supported in your browser
VIEW IN TELEGRAM
Эксперт по DDD пытается помочь команде тонущего проекта 🙂)
😁55🔥7👍6💯2❤1
Признаться, раньше не слышал про https://mockintosh.io/ . Многим он подойдет лучше, чем Mountebank или WireMock, учитывая, что тестировщикам ближе Python. Правда, давненько коммитов уже не было.
Что используете вы для изоляции тестовой среды сервиса?
Что используете вы для изоляции тестовой среды сервиса?
👍2🔥2
Вот такое народное творчество крупных ИТ-корпораций присылают мне в личку (публикуется с согласия собеседника).
Песнь про менеджера среднего звена:
Песнь про менеджера среднего звена:
В корпорации, среди стен,
Там, где свет не проникает совсем,
Жил был зверь, пугающий всех злобно,
Не конь-людоед, а глист-каннибал.
Он ползет, сверкают глаза,
Песня о нем страшна и грозна.
Видно, судьба у нас такова,
Бойтесь его, глиста-каннибала!
В корпорациях, среди стен,
Где умирает дух перемен,
Там, где таблицы скрывают пороки,
В правде своей мы одиноки
Не конь-людоед, а глист-каннибал,
Тихо ползёт, как ночь, как финал,
Сияют экраны, но пустота,
Власть здесь у тех, кто ест изнутра.
Корпорации строят из стали капканы,
Люди – просто энергия, планы.
А глист-каннибал, он не спит никогда,
Его миссия: жрать. Это навсегда.
И где-то в углу, в чёрной тени,
Горит монитор, мерцают огни.
Ты думаешь, выжил, но слышен сигнал:
"Иди ко мне, я глист-каннибал!"
👎14🤨6🔥4👍2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Вот такое народное творчество крупных ИТ-корпораций присылают мне в личку (публикуется с согласия собеседника). Песнь про менеджера среднего звена: В корпорации, среди стен, Там, где свет не проникает совсем, Жил был зверь, пугающий всех злобно, Не конь…
Что я увидел здесь с управленческой точки зрения:
1. Отсутствие адаптации в модели разработки, т.е. итеративно-инкрементальная модель разработки не достигает своей цели. Это при том, что данная конкретная корпорация считает себя флагманом индустрии во внедрению Agile.
2. Уклон в сторону проектных практик в ущерб продуктовым.
3. Несбалансированное принятие технических решений, игнорирование интересов технической группы стейкхолдеров.
4. Прогрессирование страхов сторон разработки, т.е. цель Agile снова не достигнута (см. со слов "Software development is risky. People involved have many fears of what may go wrong" здесь).
Лично я отношусь к такому творчеству как к источнику ценной информации о наболевших системных проблемах.
Где умирает дух перемен,
1. Отсутствие адаптации в модели разработки, т.е. итеративно-инкрементальная модель разработки не достигает своей цели. Это при том, что данная конкретная корпорация считает себя флагманом индустрии во внедрению Agile.
Там, где таблицы скрывают пороки,
Люди – просто энергия, планы.
2. Уклон в сторону проектных практик в ущерб продуктовым.
В правде своей мы одиноки
Власть здесь у тех, кто ест изнутра
3. Несбалансированное принятие технических решений, игнорирование интересов технической группы стейкхолдеров.
пугающий всех злобно
4. Прогрессирование страхов сторон разработки, т.е. цель Agile снова не достигнута (см. со слов "Software development is risky. People involved have many fears of what may go wrong" здесь).
Лично я отношусь к такому творчеству как к источнику ценной информации о наболевших системных проблемах.
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Вот такое народное творчество крупных ИТ-корпораций присылают мне в личку (публикуется с согласия собеседника).
Песнь про менеджера среднего звена:
В корпорации, среди стен,
Там, где свет не проникает совсем,
Жил был зверь, пугающий всех злобно,
Не конь…
Песнь про менеджера среднего звена:
В корпорации, среди стен,
Там, где свет не проникает совсем,
Жил был зверь, пугающий всех злобно,
Не конь…
🔥12👎6👍2🤔1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Что я увидел здесь с управленческой точки зрения: Где умирает дух перемен, 1. Отсутствие адаптации в модели разработки, т.е. итеративно-инкрементальная модель разработки не достигает своей цели. Это при том, что данная конкретная корпорация считает себя…
Очень интересна неоднозначная реакция на предыдущие посты. Хотя описанное явление известно под названием "Larman's Laws of Organizational Behavior".
Gregor Hohpe описывал это в статье "Reversing the disablement cycle: Everyone does the right thing, yet nothing much gets done. How to break self-reinforcing bad habits."
И есть очень качественный русскоязычный ресурс по этой теме: "Что такое сопротивление изменениям и как с ним работать?"
На эту тему у меня была заметка о том, как осуществлять изменения в коллективе.
Gregor Hohpe описывал это в статье "Reversing the disablement cycle: Everyone does the right thing, yet nothing much gets done. How to break self-reinforcing bad habits."
И есть очень качественный русскоязычный ресурс по этой теме: "Что такое сопротивление изменениям и как с ним работать?"
На эту тему у меня была заметка о том, как осуществлять изменения в коллективе.
The Architect Elevator
Reversing the disablement cycle
Everyone does the right thing, yet nothing much gets done. How to break self-reinforcing bad habits.
👍6❤2🔥1
С днем рождения меня, дорогой! 🍾🎂🥂🎇🎊🎉
https://news.1rj.ru/str/emacsway/s/6
https://news.1rj.ru/str/emacsway/s/6
🎉54🍾10❤6👍5🤣2⚡1
Forwarded from Systems.Education: Системный Анализ и Проектирование информационных систем: архитектура, интеграции, базы данных
Алина Богачёва @mialinist подготовила очередной раздел Systems.Wiki на тему
Generative AI for Analysis & Design
в раздел попали материалы:
1. Список нейросетей
2. Бизнес-анализ и требования
Анализ информации
— Обработка интервью
— Обработка анкет
— Анализ законов
3. Системный анализ и требования
Техническое задание
— Описание функциональных требований к системе
— Описание юскейсов
— Описание ограничений системы
4. Моделирование и диаграммы
Генерация схем
Генерация UML-диаграмм
5. Интеграции
Создание сценариев интеграции
Создание API-запросов
— REST API
— SOAP
https://systems-wiki.notion.site/Generative-AI-for-Analysis-Design-14b8db9e4167808eac30de6d5740dc03
Обсуждаем кейсы применения GenAI в группе @genai4AnD
Generative AI for Analysis & Design
в раздел попали материалы:
1. Список нейросетей
2. Бизнес-анализ и требования
Анализ информации
— Обработка интервью
— Обработка анкет
— Анализ законов
3. Системный анализ и требования
Техническое задание
— Описание функциональных требований к системе
— Описание юскейсов
— Описание ограничений системы
4. Моделирование и диаграммы
Генерация схем
Генерация UML-диаграмм
5. Интеграции
Создание сценариев интеграции
Создание API-запросов
— REST API
— SOAP
https://systems-wiki.notion.site/Generative-AI-for-Analysis-Design-14b8db9e4167808eac30de6d5740dc03
Обсуждаем кейсы применения GenAI в группе @genai4AnD
systems-wiki on Notion
Generative AI for Analysis & Design | Notion
👍7❤2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
📝 "Дипломатия – это дважды подумать прежде чем ничего не сказать" — Алекс Дрейер P.S.: не мог не поделиться 🙂)) #SoftSkills #Career
💬 "Как только мы почувствовали гнев во время спора, мы уже спорим не за истину, а за себя." -- Карлейль
💯21👍5🔥3
Найдена уникальная цитата, предположительно способная пробудить интерес юниоров к чтению. Не пробовал на практике, если кто попробует - поделитесь результатом, пожалуйста.
💬 „Всем известно, как тихи кладбища. Библиотека – самое веселое из них. Тут уж покойники в полном составе: они не сделали ничего плохого, лишь писали… От книги исходит аромат склепа. Вот тут начинается странный процесс, которую он называет чтением. С одной стороны, это обретение: он передает свое тело мертвым, чтобы они могли ожить. С другой – это общение с потусторонним миром.“ — Жан-Поль Сартр
Источник: https://ru.citaty.net/tsitaty/641057-zhan-pol-sartr-vsem-izvestno-kak-tikhi-kladbishcha-biblioteka-sam/
💬 „Всем известно, как тихи кладбища. Библиотека – самое веселое из них. Тут уж покойники в полном составе: они не сделали ничего плохого, лишь писали… От книги исходит аромат склепа. Вот тут начинается странный процесс, которую он называет чтением. С одной стороны, это обретение: он передает свое тело мертвым, чтобы они могли ожить. С другой – это общение с потусторонним миром.“ — Жан-Поль Сартр
Источник: https://ru.citaty.net/tsitaty/641057-zhan-pol-sartr-vsem-izvestno-kak-tikhi-kladbishcha-biblioteka-sam/
Ru.citaty.net
Всем известно, как тихи кладбища. Библиотека – самое…
„Всем известно, как тихи кладбища. Библиотека – самое веселое из них. Тут уж покойники в полном составе: они не сделали ничего плохого, лишь писали… От книги исходит аромат склепа. Вот тут начинается странный процесс, которую он называет чтением. С одной…
🔥14🤣5👎1
Как любил повторять один известный исторический деятель - «короче», «яснее». Вот это видео очень хорошо демонстрирует этот принцип:
https://vt.tiktok.com/ZS62A4GXs/
Примерно так же должен изъясняться и архитектор. Обратите внимание на отсыл к Закону Миллера в этом видео, и на акцент на визуализацию.
https://vt.tiktok.com/ZS62A4GXs/
Примерно так же должен изъясняться и архитектор. Обратите внимание на отсыл к Закону Миллера в этом видео, и на акцент на визуализацию.
👍4🤣1
Forwarded from Денис Бесков написал
Мартин Фаулер, международный эксперт по программной инженерии, начал свою публичную просветительскую деятельность с книги Analysis Patterns 1997-го года.
При этом как ни удивительно, книга интересна и актуальна до сих пор и для разработчиков и для архитекторов и для системных аналитиков.
Можно сказать, что книга прошла почти незамеченной в широкой профессиональной среде, в частности, никогда не переводилась на русский язык.
Андрей Гордиенков решил исправить это досадное обстоятельство и подготовил собственную версию перевода.
https://habr.com/ru/articles/872598/
Вступление
1.1 Концептуальные модели
1.2 Мир шаблонов
1.3 Шаблоны в этой книге
1.4 Концептуальные модели и реинжиниринг бизнес-процессов
1.5 Шаблоны и фреймворки
1.6 Использование шаблонов
Часть 1. Аналитические шаблоны
2. Ответственность
3. Наблюдения и измерения
4. Наблюдения для корпоративных финансов
5. Обращение к объектам
6. Инвентаризация и учет
7. Использование моделей учета
8. Планирование
9. Торговля
10. Производные контракты
11. Торговые пакеты
Часть 2. Поддерживающие шаблоны
12. Слоёная архитектура для ИС
13. Фасады приложения
14. Подходы для моделирования типов
15. Шаблоны ассоциации
16. Послесловие
Часть 3. Приложения
А. Техники и обозначения
В. Таблица паттернов
C. Краткая справка по диаграммам
При этом как ни удивительно, книга интересна и актуальна до сих пор и для разработчиков и для архитекторов и для системных аналитиков.
Можно сказать, что книга прошла почти незамеченной в широкой профессиональной среде, в частности, никогда не переводилась на русский язык.
Андрей Гордиенков решил исправить это досадное обстоятельство и подготовил собственную версию перевода.
https://habr.com/ru/articles/872598/
Вступление
1.1 Концептуальные модели
1.2 Мир шаблонов
1.3 Шаблоны в этой книге
1.4 Концептуальные модели и реинжиниринг бизнес-процессов
1.5 Шаблоны и фреймворки
1.6 Использование шаблонов
Часть 1. Аналитические шаблоны
2. Ответственность
3. Наблюдения и измерения
4. Наблюдения для корпоративных финансов
5. Обращение к объектам
6. Инвентаризация и учет
7. Использование моделей учета
8. Планирование
9. Торговля
10. Производные контракты
11. Торговые пакеты
Часть 2. Поддерживающие шаблоны
12. Слоёная архитектура для ИС
13. Фасады приложения
14. Подходы для моделирования типов
15. Шаблоны ассоциации
16. Послесловие
Часть 3. Приложения
А. Техники и обозначения
В. Таблица паттернов
C. Краткая справка по диаграммам
Хабр
«Аналитические шаблоны» на русском
Всем привет! С помощью этой статьи хочу поделиться результатами своей работы по переводу книги Мартина Фаулера "Analysis Patterns". Все оригинальные части книги и диаграммы переведены, всё готово для...
🔥15❤1
Рассчитывал на Locust, но обнаружил, что asyncio там не поддерживается и его поддержка пока не предвидится.
Нашелся нагрузочный микро-движок, который выручил: https://molotov.readthedocs.io/
Нашелся нагрузочный микро-движок, который выручил: https://molotov.readthedocs.io/
GitHub
Asyncio support · Issue #1251 · locustio/locust
Follow up of #924 and #1079. Is your feature request related to a problem? Please describe. Sometimes one needs to simulate an asynchronous user behavior. Hatching more users does not solve the pro...
👍2🔥2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Какая основная решаемая задача при создании фейкера объема данных? На мой взгляд, это обеспечение планов запросов к БД, близких к реальным. И здесь основную роль играет воспроизводение селективности индексов. Грубо говоря, если селективность на проде известна…
После двух лет забвения по причине личных обстоятельств, наконец-то возвращаюсь к привнесению общественно-профессиональной пользы.
17 января совместно с командой закончил работу над созданием нагрузочного фреймворка для микросервисов, аналоги которого мне неизвестны (иначе я бы их применил).
Началось все с создания генератора объема фейковых данных (см. здесь и здесь) для микросервисов, который воспроизводил бы селективность индексов как в целевой системе.
При этом все зависимые объекты создаются автоматически, а вероятностная распределенность их внешних ключей соответствует селективности индексов целевой системы.
Поддерживаются композитные ключи (первичные и внешние). Вероятностная распределенность поддерживается как для композитного ключа целиком, так и для составляющих его ключей.
Поддерживается логика многоступенчатого создания агрегата (black-box), когда агрегат возможно привести в необходимое состояние только серией запросов через public API.
Скажу честно, что я не смог бы этого сделать, не будь за моими плечами четырех собственноручно написанных ORM на четырех разных языках программирования и пяти фейкеров. Полученный опыт оказался бесценным.
Конечно, писать свой ORM архитектору может и нет практической необходимости, но в чем я сейчас твердо убежден, так это в том, что успешность архитектора немыслима без нагрузочных fitness-functions. А там практические навыки применения PoEAA оказываются на вес золота, независимо от того, создаете ли вы ORM или генератор фейковых данных. И наивно полагать, что эта задача посильна рядовому программисту. Если вдруг где-то специалисты с такими навыками и засиделись на позиции программиста, то будьте уверены - долго они на этой позиции в такой компании не задержатся. Это к вопросу о том, должен ли уметь архитектор в код.
Вскоре мы обнаружили, что полученный генератор данных можно использовать и для нагрузочных тестов. Адаптировали его для работы с публичным API (вместо прямого доступа к БД), сделали поддержку multiprocess.
Интегрировали его с нагрузочным движком molotov. Изначально рассчитывали на Locust, но обнаружили, что asyncio там не поддерживается и его поддержка пока не предвидится. Позже я узнал от @nkhitrov, что решение все-таки есть.
Потом мы обнаружили, что полученное решение можно без труда использовать для Out-of-process Component (Acceptance) Testing.
Таким образом, нам удалось сделать тестовый фреймворк (на Python), который позволяет одновременно и генерировать фэйковые объемы данных, включая автоматическое создание всех зависимых объектов, и создавать нагрузочные скрипты, и выполнять component out-of-process tests.
Теперь хотим завернуть его в Gherkin, чтобы fitness-functions в нем описывать. И добавить декларативное описание моделей посредством YAML-file.
Свои функции он уже выполняет. На текущий момент исходный код проприетарен. В перспективе возможно его раскрытие (обсуждается с владельцем кодовой базы) или оказание услуг нагрузочного тестирования сторонним ИТ-компаниям.
Работаем!
17 января совместно с командой закончил работу над созданием нагрузочного фреймворка для микросервисов, аналоги которого мне неизвестны (иначе я бы их применил).
Началось все с создания генератора объема фейковых данных (см. здесь и здесь) для микросервисов, который воспроизводил бы селективность индексов как в целевой системе.
При этом все зависимые объекты создаются автоматически, а вероятностная распределенность их внешних ключей соответствует селективности индексов целевой системы.
Поддерживаются композитные ключи (первичные и внешние). Вероятностная распределенность поддерживается как для композитного ключа целиком, так и для составляющих его ключей.
Поддерживается логика многоступенчатого создания агрегата (black-box), когда агрегат возможно привести в необходимое состояние только серией запросов через public API.
Скажу честно, что я не смог бы этого сделать, не будь за моими плечами четырех собственноручно написанных ORM на четырех разных языках программирования и пяти фейкеров. Полученный опыт оказался бесценным.
Конечно, писать свой ORM архитектору может и нет практической необходимости, но в чем я сейчас твердо убежден, так это в том, что успешность архитектора немыслима без нагрузочных fitness-functions. А там практические навыки применения PoEAA оказываются на вес золота, независимо от того, создаете ли вы ORM или генератор фейковых данных. И наивно полагать, что эта задача посильна рядовому программисту. Если вдруг где-то специалисты с такими навыками и засиделись на позиции программиста, то будьте уверены - долго они на этой позиции в такой компании не задержатся. Это к вопросу о том, должен ли уметь архитектор в код.
Вскоре мы обнаружили, что полученный генератор данных можно использовать и для нагрузочных тестов. Адаптировали его для работы с публичным API (вместо прямого доступа к БД), сделали поддержку multiprocess.
Интегрировали его с нагрузочным движком molotov. Изначально рассчитывали на Locust, но обнаружили, что asyncio там не поддерживается и его поддержка пока не предвидится. Позже я узнал от @nkhitrov, что решение все-таки есть.
Потом мы обнаружили, что полученное решение можно без труда использовать для Out-of-process Component (Acceptance) Testing.
Таким образом, нам удалось сделать тестовый фреймворк (на Python), который позволяет одновременно и генерировать фэйковые объемы данных, включая автоматическое создание всех зависимых объектов, и создавать нагрузочные скрипты, и выполнять component out-of-process tests.
Теперь хотим завернуть его в Gherkin, чтобы fitness-functions в нем описывать. И добавить декларативное описание моделей посредством YAML-file.
Свои функции он уже выполняет. На текущий момент исходный код проприетарен. В перспективе возможно его раскрытие (обсуждается с владельцем кодовой базы) или оказание услуг нагрузочного тестирования сторонним ИТ-компаниям.
Работаем!
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Какая основная решаемая задача при создании фейкера объема данных?
На мой взгляд, это обеспечение планов запросов к БД, близких к реальным. И здесь основную роль играет воспроизводение селективности индексов.
Грубо говоря, если селективность на проде известна…
На мой взгляд, это обеспечение планов запросов к БД, близких к реальным. И здесь основную роль играет воспроизводение селективности индексов.
Грубо говоря, если селективность на проде известна…
🔥22👍13❤6👎2🤔1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
После двух лет забвения по причине личных обстоятельств, наконец-то возвращаюсь к привнесению общественно-профессиональной пользы. 17 января совместно с командой закончил работу над созданием нагрузочного фреймворка для микросервисов, аналоги которого мне…
Может кому-нибудь пригодится для Out-of-process Component (Acceptance) Testing:
https://github.com/litestar-org/polyfactory
Спектр задач закрывает эта библиотека, конечно, неширокий. Для применения в нагрузке ей не хватает поддержки вероятностной распределенности значений. Но для своих целей пользу принести может.
https://github.com/litestar-org/polyfactory
Спектр задач закрывает эта библиотека, конечно, неширокий. Для применения в нагрузке ей не хватает поддержки вероятностной распределенности значений. Но для своих целей пользу принести может.
GitHub
GitHub - litestar-org/polyfactory: Simple and powerful factories for mock data generation
Simple and powerful factories for mock data generation - litestar-org/polyfactory
❤2👍2🔥2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
После двух лет забвения по причине личных обстоятельств, наконец-то возвращаюсь к привнесению общественно-профессиональной пользы. 17 января совместно с командой закончил работу над созданием нагрузочного фреймворка для микросервисов, аналоги которого мне…
Добавил поддержку Gherkin для реализации Fitness-Functions в Performance Framework. Теперь описание Fitness-Function выглядит примерно так:
Реализация подобного сценария посредством behave с использованием Performance Framework занимает всего 40 строк кода (половина из которых - это пустые строки и переносы строк для форматирования). Все зависимые объекты в БД создаются автоматически с сохранением селективности индексов целевой системы (включая индексы внешних ключей зависимых объектов). Подробная статистика запросов накапливается на сервере статистики. В перспективе, при наличии благоприятной возможности, может быть добавлена поддержка декларирования вероятностной распределенности зависимых объектов и проиндексированных значений непосредственно в Gherkin-спецификации.
Материала по этой теме накопилось на полноценный доклад (если даже не на целую книгу). Подумаю об этом.
Scenario: Some object endpoint name
Given SUT with 10000000 objects
When 100 processes created 10000 objects each
Then average RPS is greater than 1000
And error rate is less than 5%
Реализация подобного сценария посредством behave с использованием Performance Framework занимает всего 40 строк кода (половина из которых - это пустые строки и переносы строк для форматирования). Все зависимые объекты в БД создаются автоматически с сохранением селективности индексов целевой системы (включая индексы внешних ключей зависимых объектов). Подробная статистика запросов накапливается на сервере статистики. В перспективе, при наличии благоприятной возможности, может быть добавлена поддержка декларирования вероятностной распределенности зависимых объектов и проиндексированных значений непосредственно в Gherkin-спецификации.
Материала по этой теме накопилось на полноценный доклад (если даже не на целую книгу). Подумаю об этом.
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Кратко о fitness functions. Любое приложение всегда стремится к энтропии. Как говорил известный в ИТ-индустрии Gregor Hohpe:
💬 It’s almost like enterprise IT is subject to the Second Law of Thermodynamics, which concludes that the entropy in an (isolated)…
💬 It’s almost like enterprise IT is subject to the Second Law of Thermodynamics, which concludes that the entropy in an (isolated)…
🔥10🤔3👍2