📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Use IBM Bob with custom Specification Driven Development (SDD) Modes and GitHub Integration

Thomas Südbröcker27:59

Transcription

Вероятно, вы только что начали. >> Привет, меня зовут Томас Утрикер. Мне нравится учиться, и мне нравится делиться тем, что я узнал. И [музыка] это причина, по которой у меня есть блог и канал на YouTube. И вы сейчас смотрите мое видео на YouTube. И в этом видео тема — настройка инженерного процесса с помощью IBM Bob. И предыстория такова: некоторое время назад я записал видео о расширении функциональности IBM Bob с помощью самого IBM Bob и создании новых режимов и скинов, а также об их использовании для обзора, безопасности и соответствия требованиям. Я назвал это моддингом. Да, теперь я немного изменил это название. Так что, возможно, иногда это может вводить в заблуждение. Это расширение IBM Bob. И когда я это сделал, и после того, как я это сделал, потому что речь идет о совете по обзору и всем таком, что у вас есть, когда вы уже закончили свой проект, и вы просматриваете свой проект с кодом и так далее. Я подумал, что, возможно, имеет смысл в этом контексте также внести некоторые модификации и добавить дополнительные режимы, связанные с темой разработки, управляемой спецификациями. Например, от Никласа Хайдлоффа по этой теме. И я хочу поделиться тем, что я создал здесь, в своем репозитории на GitHub. Я создал это как шаблон, и вы можете его использовать и инстанцировать. Это не идеальная настройка. Это просто для того, чтобы попробовать. И вы можете увидеть, как это может работать. И именно поэтому я создал это видео, чтобы вы получили немного больше понимания в дополнение к документации здесь о том, как использовать это больше и увидеть, что возможно. И если вы хотите получить больше режимов для своих продуктивных систем, особенно связанных с продуктами IBM, тогда я предлагаю вам взглянуть на этот репозиторий, созданный командой IBM build engineering, и они делятся своими знаниями, которые вы можете использовать в своей корпоративной среде. Итак, вернемся к видео, которое я собираюсь создать здесь, и, как обычно, я также хочу дать вам немного информации о том, когда оно было создано. Итак, сегодня воскресенье, 31 мая, и половина четвертого. Итак, давайте, это когда началась запись видео, и я >> [смех] >> как обычно, я также не знаю, сколько времени займет видео. И, возможно, сколько я буду вырезать из этого видео. Я размещу соответствующие описания и все соответствующие ссылки ниже в описании. И иногда вы увидите некоторые ссылки здесь, в видео. И мы посмотрим, как далеко мы продвинемся. И с этим мы увидим, что я сделал и как мы можем использовать это с IBM Bob. Итак, речь идет о настройке инженерного процесса. То есть расширение IBM Bob с помощью пользовательских режимов, и это то, что вам нужно понять. У нас есть, и в данный момент у нас есть здесь базовые режимы, которые мы можем видеть здесь, и когда мы видим здесь базовые режимы, у нас есть план, код, расширенный режим, оркестрация и запрос. Итак, мы добавим сюда дополнительные режимы, и для этого мы начнем с моего проекта на GitHub, и мы будем использовать его как шаблон для создания нового проекта на GitHub для этого. Итак, прежде всего, мы начнем делать это здесь. Я использовал это, и я использовал это как шаблон, и то, что я собираюсь использовать, и то, что я собираюсь построить, что вы увидите через несколько минут. Мы создадим новый репозиторий, и мы назовем этот репозиторий holiday planner app spec-driven development. Example, и он не будет публичным. Он будет частным, а затем я сгенерирую репозиторий, а затем клонирую его на свою машину после этого. Это идея, которую я думал, когда мы собираемся использовать это, я не хочу создавать очень-очень сложное приложение. Да, может быть, не слишком большое. Надеюсь, все можно будет создать в рамках приемлемого временного интервала. Так что давайте посмотрим. Но и не слишком просто. Так что это была моя идея, начать с идеи планировщика отпусков, но не интегрированного с другими системами. Да, это действительно для вас, и это то, чего я хочу, чтобы вы знали и думали о месте назначения, датах поездки и обо всем, что зависит от открытых источников и официальной доступной информации. Это то, что я имел в виду, и это была моя первоначальная идея. Итак, с этим возникает вопрос: да, когда вы также начинаете с разработки, управляемой спецификациями, это как если бы вы делали это обычно, вы получите свои требования. Вы определите свои требования. И вы обычно будете итерировать по ним. Вы определяете это, вы получаете это в структурированном формате, и вы просматриваете это. Да, это то, что вы собираетесь делать. И вы должны подумать об этом, например, также о требованиях из сырой идеи. Каков контекст, кто планирует, цели, функциональные требования, ограничения и так далее. И все это, да, должно быть перенесено в конкретные темы. И то, что я сделал, я подготовил некоторые из начальных подсказок. Когда мы будем создавать приложение, используя предоставленные мной режимы, мы будем делать это шаг за шагом. Сначала мы проведем сбор требований. Итак, и теперь пример holiday planner доступен. И со всем этим я также немного покажу вам, как вы можете перемещаться по этому проекту. Конечно, этот первоначальный README вы должны будете настроить позже под свои ну потребности. И здесь обзор. У нас 11 режимов, девять повторно используемых навыков. Разработка, управляемая спецификациями, и возможности адаптивной конфигурации. Использование репозитория продумано по теме. Вся конфигурация "из коробки" находится внутри, где настроен IBM Bot. Вот где все хранится. Но затем я генерирую дополнительную папку или подготавливаю дополнительную папку, где находятся репозитории, куда, возможно, вы можете добавить дополнительные репозитории. Возможно, когда вы посмотрите мое другое видео о моддинге, вы увидите, что я добавляю дополнительные репозитории и провожу обзор, архитектурный обзор этих репозиториев. Так что это то, чего я хочу, или, возможно, вам придется создать свое собственное приложение. Это то, что мы собираемся сделать. Здесь у вас есть некоторые визуальные представления о том, как все режимы и навыки зависят друг от друга. Это также то, что вы видите или можете изучить в другом видео, детектор пробелов в конфигурации. Да. Как работает архитектурный обзор и спектр и разработка. Вы можете увидеть здесь основные возможности с манифестом требований, спецификацией, управлением требованиями и так далее. Итак, это то, что у нас есть "из коробки". Я не хочу углубляться во все это. Вы можете попробовать сами. И теперь мы клонируем это на нашу машину. Для этого мы сначала откроем папку. Итак, мы используем эту папку. Я доверяю этому, и здесь я собираюсь открыть интегрированный терминал. И здесь мы клонируем его на локальную машину. Копировать. Затем я говорю здесь get clone. Итак, я клонирую его в папку temp, и тогда у нас здесь будет уже планировщик. И с точки зрения того, что все с конфигурацией находится здесь, в корневой папке, я теперь снова добавлю эту папку в рабочую область, чтобы мы могли перейти сюда напрямую, чтобы иметь ее здесь. Итак, и я удалю эту папку из рабочей области, чтобы мы могли сосредоточиться на ней. И чтобы у нас была конфигурация. И когда вы увидите здесь, теперь у нас есть все новые дополнительные режимы здесь, в нашей конфигурации Bob. Это отправная точка со всем этим. И то, что мне нужно сделать сейчас, потому что позже у нас также будет интеграция с GitHub. И для этого мне нужна конфигурация среды для проекта. Итак, и это также для интеграции с моим GitHub. Итак, потому что позже у нас также будет ситуация, когда мы будем создавать проблемы. Да? Итак, с этим режимом, и мы будем отслеживать всю информацию также внутри нашего GitHub. Итак, со всем этим, да? Итак, мы готовы двигаться дальше здесь с требованиями. Для требований, чтобы мы собирались создать здесь. Я не делюсь предопределенной подсказкой для всех в этом проекте, потому что я также хочу, чтобы вы сделали это сами и попробовали сами, как это работает. Но, конечно, есть и примеры того, какой может быть структура. Да? Итак, позвольте мне просто показать вам, когда вы перейдете к полной документации, там есть также примеры некоторых подсказок, которые вы можете создать. Да, конечно. Итак, здесь. Отлично. Что мы сделаем, мы сгенерируем здесь сейчас с помощью разработки, управляемой спецификациями, да? Мы сгенерируем требования для нашего планировщика отпусков, да? Так. Вы можете видеть здесь требования, контекст. Создание простого приложения-планировщика отпусков на один день, основанного только на информации, использовании только компонентов с открытым исходным кодом, реализованного полностью с помощью Python для упрощения разработки и тестирования. Приложение не имеет аутентификации. Нет процесса бронирования, нет процесса оплаты, нет обработки транзакций, должно быть развернуто локально в небольшом движке контейнеров, а также на IBM Cloud Code Engine для последующего использования. И приложение должно быть подготовлено для интеграции с агентами приложений ИИ и инструментами автоматизации. Определите комплексные требования к основанному на спецификациях планировщику отпусков на Python, который предоставляет структуру информации о планировании отпусков и так далее. И затем мы можем увидеть здесь некоторые требования, которые мы хотим здесь охватить. Заинтересованные стороны, которые, по нашему мнению, являются некоторыми ограничениями, да? Мы собираемся иметь и ожидаемые результаты и критерии успеха. Итак, это то, что у нас есть для спецификации здесь в этом режиме. И теперь мы собираемся начать со всем этим. Как я уже сказал, давайте посмотрим, ускорюсь ли я в некоторых случаях. И, прежде всего, теперь мы получаем здесь, и я также не буду менять, даже если это займет немного больше времени. Я стараюсь делать все здесь в интерактивном режиме, да, и я действительно не начинаю новую сессию. И с нашим планом, который у нас есть здесь, мы можем видеть анализ заинтересованных сторон, создание функциональных требований, нефункциональных требований, спецификации API приложения Python, развертывание контейнера. Развертывание Code Engine, и это все, что он собирается сделать. Основываясь здесь на нашем. Что мы также можем сделать, мы можем автоматически утвердить, мы можем выбрать некоторые части, которые могут быть использованы. И здесь вы можете видеть, что я сделал для, я не использую автоматическое утверждение для всего, да? Итак, я использую автоматическое утверждение только для конкретных элементов здесь в среде Bob. И это то, что мне действительно нравится. Функциональные требования для приложения-планировщика отпусков, поэтому мы видим, что написано, как указано, каков объем, что не входит в объем. Также написан поток бронирования, оплата. Мы видим термины и определения, да? Ссылки на спецификацию Open API, какая версия Python используется. Общая перспектива продукта, да. И затем мы видим функции продукта, управление направлениями, путешествия и так далее, характеристики, ограничения. И здесь все, что у нас есть. И теперь мы можем видеть, что требования четко определены. И то, что важно, приоритет. Приоритет — "должен быть". Описание, пользовательская история также предоставлена, и критерии приемки, которые важны позже для тестирования. Какие функциональные требования у нас также есть здесь. Далее, функциональные требования, у нас также есть темы нефункциональных требований, которые вы видите. Итак, это то, что делает приложение. И затем мы также будем использовать Bob для создания проблем на GitHub и документирования его самостоятельно, чтобы мы не пытались генерировать и вносить изменения в GitHub. Я хочу заставить Bob самостоятельно вносить изменения и документировать все. Давайте посмотрим, как это будет работать. Технологический стек, который используется, база данных с открытым исходным кодом SQLite, фреймворк тестирования, какое покрытие должно быть, и все это предоставляется в базовых образах для контейнера, поэтому он также записывает, какой образ контейнера, архитектура, диаграмма данных, он создает диаграмму архитектуры, требования к спецификации API, что мы можем видеть, это структура URL, это действительно важно, что у нас есть отправная точка с API, доменом и так далее. Я думаю, видео не охватит все шаги, которые мы реализуем. Я не хочу тратить воскресенье только на генерацию всего этого. Так что давайте посмотрим, как далеко мы продвинемся, я бы сказал, в течение следующего часа, и я, конечно, сокращу видео. И, конечно, что тогда будет иметь смысл, чего я еще не сделал. Возможно, использовать конкретный режим, который дает возможность взаимодействовать с IBM Code Engine или сервером MCP и взглянуть на то, что доступно, например, из режимов в команде build engineering в репозитории, возможно, IBM оптимизировала использование моделей в фоновом режиме для конкретного жизненного цикла разработки программного обеспечения, и это только оптимизация с моей личной точки зрения. Я хочу, и то, что вы видите здесь, особенно определено, как писать историю, и это шаблон SN, я хочу, чтобы так и было, и этот приоритет, и мы даем некоторые очки истории, связанные с требованием, к этой истории, а затем у нас есть критерии приемки для этого, и определение "сделано" — конечная точка реализована и протестирована, пакет работает правильно, формат ответа соответствует спецификации моей документации API, обновлен интеграционный тест, работоспособен, это конкретный статус, который у нас есть, 10 документов создано, 14 функциональных требований, 78 нефункциональных требований, затем у нас есть 10, указанных с, о нет, нефункциональные требования, указанные с 10 измеримыми метриками, 10 пользовательских историй с полными критериями приемки, 100% прослеживаемость от бизнес-целей до тестов, полные спецификации архитектуры и развертывания, автоматизированная комплексная стратегия тестирования с 28+ тестовыми случаями, и вы можете увидеть здесь документацию, и следующее — когда я говорю здесь, это, это нормально, я говорю, что мы теперь идем на шаг вперед, и мы собираемся получить подсказку для проектирования. У нас есть требования к планировщику отпусков, и теперь мы больше сосредоточимся на архитектуре планировщика и собираемся получить проектные документы и первоначальный план реализации. Выход для нашего примера, основная цель — получить системный дизайн, и для этого я собираюсь получить следующую подсказку для проектирования. То, что я показываю здесь, это то, что я использовал примерный контур из примеров в репозитории GitHub, который я предоставляю. И я говорю, хорошо, используйте входные данные, у вас есть результат, который должен быть сохранен в папке, и сделайте следующее. Выходные документы этого системного дизайна будут использоваться в качестве контекста для следующей подсказки, и тогда мы увидим, что мы используем это как структуру для системного дизайна, каким должен быть системный дизайн. Итак, эта задача выполнена. Итак, мы можем видеть, что это то, что сейчас. У нас есть все это, теперь мы действительно видим все это здесь с общим количеством очков истории, с общим счетом. Итак, теперь вы можете видеть здесь, проблемы сгенерированы. У нас также есть коммиты для этого, и с этим мы можем действительно начать генерировать план реализации здесь. План реализации, обзор, который мы уже сделали с проблемами, были проверены некоторые контрольные списки, что именно завершено. Мы также можем, возможно, начать и просмотреть, используя режим, так что это то, что я не буду использовать в данный момент, и теперь мы собираемся реализовать. И для этого у меня есть подсказка для реализации. Я добавляю свою подсказку, затем мы переходим ко всем документам, которые у нас есть. Теперь у нас есть план реализации. После этого мы действительно собираемся реализовать, и мы увидим реализацию, а также скажем, хорошо, когда вы собираетесь реализовать, выполните реализацию и документируйте свои изменения в связанных проблемах GitHub. Следуйте плану реализации и документируйте матрицу прослеживаемости реализации. Вы можете видеть, что сейчас он закоммичен. И отправлен. Он нуждается в принудительном обновлении, и теперь он должен быть здесь. Он включен. Вы можете видеть здесь пять коммитов. И здесь план реализации. Вы можете видеть здесь, это коммит, и это то, что было изменено. У вас могут быть здесь все изменения, вся информация, и это все, что теперь интегрировано. С следующим шагом мы говорим: реализуйте приложение в папке кода под названием code и проверьте все свои реализации в GitHub. Вы сделали это до сих пор. Но давайте также попробуем улучшить подсказку. Вы можете видеть это. Можно также улучшить подсказку. Теперь он начинается с кодирования. Теперь он начинается с. Итак, структура проекта и слой репозитория. Слой продаж. Итак, теперь он начинается со всего этого. Теперь он делает git push. Обновления до сих пор с первой реализацией. Хорошо. Итак, мы можем видеть обновление с коммитом. Инициализация проекта. Итак, это было сделано здесь. Хорошо. "Из коробки" здесь теперь с функциональностью, вы действительно можете иметь полную прозрачную реализацию. Запустите приложение и протестируйте приложение для первой функциональности. Итак. И да, хорошо. Это действительно полностью базовая функциональность. Так что ничего действительно не реализовано прямо сейчас. Теперь реализуйте эти функции. Да. Действительно приятно видеть, как все теперь здесь документировано. Запустите приложение. Это то, что реализовано в данный момент. И вы можете теперь Теперь вы можете видеть здесь, хорошо. Хорошо, мы закоммитили в основную ветку. Мы прошли через это. Да, со всем этим, мы сделали много. Да. И это заняло >> [смех] >> около часа до сих пор. Я бы сказал, насколько я вижу. Я, конечно, сокращу видео. Отправная точка от идеи, мы создали требования, мы создали дизайн, мы сгенерировали наши проблемы, чтобы мы сгенерировали эту информацию, мы просмотрели ее, а затем начали реализацию. И это было с поддержкой, а также в интеграции IBM Bob и использованием пользовательских режимов. Итак, и мне это очень нравится. Это помогает быть очень прозрачным. Мне действительно нравится прозрачность, а также, конечно, автоматическая документация. Итак, что у нас есть здесь, в репозитории GitHub. Итак, со всеми SA и со всеми задачами, которые были сгенерированы, это в данный момент, это, конечно, не идеально, но это очень хорошее начало для работы. И мы можем видеть здесь прогресс, вы знаете. Это действительно сложно. Есть много требований, и действительно отслеживать все это. И здесь у нас есть очень хорошая дополнительная точка входа для этого. Итак, лучшее — это инженерия перед кодированием. И традиционный поток ИИ, идея от вайп-кодирования, а теперь у нас также есть разработка, управляемая спецификациями. Мы очень сильно внедрили здесь также прослеживаемость и прозрачность. И мы действительно можем теперь перемещаться от требований ко всем этим темам, которые показаны во всем потоке в видео. И, следовательно, планирование завершено, и тогда мы можем сказать здесь в конце, давайте посмотрим все в действии также с репозиторием GitHub. У нас есть приложение. У нас есть Bob. И да, это весело. И это помогает быть быстрее и продуктивнее. Конечно, в некоторых случаях это немного сложнее, потому что вам все равно приходится много проверять, потому что даже когда вы используете помощь Bob также для обзора, вы все равно несете ответственность, но хорошо, что вы все еще несете ответственность за доставку. Итак, проверьте это. И я надеюсь, что это было полезно для вас, и спасибо за просмотр. И если вам понравилось, подпишитесь и поставьте лайк. Да. И я говорю спасибо, и давайте посмотрим, какой будет следующая тема.