Amazon CodeWhisperer, сервис на основе машинного обучения (ML), который помогает повысить производительность разработчика, предоставляя рекомендации по коду на основе естественных комментариев разработчика и предыдущего кода. Он создает определенный код на лету и рекомендует сгенерированные фрагменты кода непосредственно в IDE. Разработчики могут найти фрагменты кода в StackOverflow или на любом общедоступном форуме, но всегда лучше получить автоматически сгенерированный код с помощью инструмента AWS CodeWhisperer, поскольку он соответствует правильному синтаксису программирования и лучшим практикам кодирования.

Кроме того, CodeWhisperer легко интегрируется с Visual Studio Code, интегрированными средами разработки JetBrains и Cloud9. Таким образом, вы можете оставаться сосредоточенным и никогда не покидать среду разработки. CodeWhisperer поддерживает Java, Python, JavaScript, C# и TypeScript. Функция предложений кода CodeWhisperer также доступна в консоли AWS Lambda в качестве инструмента.

В этом посте я поделюсь своими первоначальными мыслями об использовании инструмента AWS CodeWhisperer (предварительная версия), специфичного для следующих пунктов.

а. Настройте CodeWhisperer в коде Visual Studio локально.

б. Разработайте код LAMBDA в среде IDE и в консоли LAMBDA для простого бессерверного приложения, управляемого событиями (например, событие S3, размещение элемента в DynamoDB и события Kinesis в LAMBDA).

в. Возможность подготовки модульного теста.

д. Функции сканирования безопасности и справочного журнала.

И. Настройка CodeWhisperer:

  1. CodeWhisperer доступен как часть расширений AWS Toolkit для основных IDE, включая JetBrains, Visual Studio Code и AWS Cloud9.
  2. В наборе инструментов для Visual Studio в разделе Инструменты разработчика в разделе CodeWhisperer нажмите Начать, чтобы подключиться.
  3. В верхней части VS Code появится раскрывающееся меню.

4. В раскрывающемся меню выберите Использовать личный адрес электронной почты для регистрации и входа с помощью AWS Builder ID.

5. Откроется вкладка браузера со страницей Create AWS Builder ID. Зарегистрируйтесь, указав свой адрес электронной почты, и завершите настройку, подтвердив адрес электронной почты.

6. Откроется вкладка браузера с сообщением, предлагающим разрешить AWS Toolkit for Visual Studio Code доступ к вашим данным.

7. Вам будет предложено просмотреть и принять условия обслуживания. Согласитесь с условиями, и теперь вы вошли в CodeWhisperer с идентификатором Builder ID.

II. Работа с CodeWhisperer в VS Code

  1. Создайте простой файл main.py и начните писать import boto3, и когда вы введете следующую строку, появится import автоматические предложения с помощью инструмента
  2. Используйте Tab, чтобы принять предложения, и клавиши со стрелками, чтобы перейти к следующему и предыдущему предложениям (ALT+C для ручных предложений).

3. Напишите функцию, набрав def, и посмотрите, будут ли предложения. Если хотите, нажмите Tab, чтобы принять их.

III. Случаи использования

Уведомление о событии S3 для функции LAMBDA:

  1. Когда вы вводите комментарий Корзина S3 из события, автоматически появляется рекомендация о том, как прочитать имя корзины из события.

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

3. Если мы просто дадим несколько советов о том, что вы планируете реализовать, CodeWhisperer автоматически предложит необходимый код, не просматривая документацию boto3 или другие платформы для разработчиков.

Запишите данные Json в таблицу DynamoDB:

  1. Напишите комментарии, вам нужна новая функция, которая будет вставлять данные Json в DynamoDB.

2. Просто введите def, после чего автоматически появится определение функции для write_dynamo, определенного выше.

3. Теперь нам нужен клиент DynamoDB, имя таблицы и команда для размещения элементов, и все это можно сделать без особых усилий, не заглядывая в какую-либо документацию AWS CodeWhisperer.

Предложения по коду из консоли LAMBDA

Мы также можем получать предложения по коду из консоли LAMBDA при внесении изменений в код, как показано ниже.

  1. Перейдите в раздел Инструменты и выберите Предложения кода Amazon CodeWhisperer.

2. Появится новое всплывающее окно, которое предполагает прочитать условия и принять/отклонить. Примите условия, и тогда вы будете готовы получать предложения в самой консоли LAMBDA.

3. В консоли LAMBDA нам нужно нажать ALT+C, чтобы получить предложения кода от инструмента CodeWhisperer, и Enter, чтобы принять предложение (Для каждой строки у нас есть нажимать ALT+C и Enter, что утомительно.)

4. Добавьте в код строку import boto3, чтобы CodeWhisperer мог легко понимать и давать предложения, связанные с AWS SDK.

6. Пример: этот LAMBDA будет запускаться потоками данных Kinesis. Поэтому сначала нам нужно подключиться к Kinesis Client и прочитать событие из события LAMBDA. (Иногда очень сложно дать правильные комментарии, чтобы получить то, что мы хотели)

Подготовка модульных тестов (необходимо изучить больше):

  1. CodeWhisperer можно использовать для подготовки ваших модульных тестов, на что у большинства разработчиков уходит время.
  2. Создайте новый test_case.py для написания тестовых случаев и добавьте комментарии на основе ваших тестовых случаев.

3. Вы также можете запустить тестовые примеры, используя фиктивные ресурсы, импортировав их.

IV. Безопасность

  1. CodeWhisperer позволяет выполнять сканирование вашего кода (сгенерированного CodeWhisperer, а также написанного вами) для обнаружения уязвимостей в системе безопасности. Когда вы выбираете «Запустить сканирование безопасности», CodeWhisperer обнаруживает эту уязвимость и отображает проблему.

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

3. Если разработчик принимает (Tab) рекомендацию, справочный журнал CodeWhisperer отслеживает соответствующую информацию о лицензировании.

Заключение

В этом посте мы увидели, как повысить продуктивность разработчиков с помощью сервиса AWS CodeWhisperer на базе машинного обучения (ML) (предварительная версия). Эта функция позволяет разработчикам сосредоточиться на консоли IDE или LAMBDA, что сокращает время, которое они тратят на поиск в Интернете нужных фрагментов кода, и никогда не покидает редактор. CodeWhisperer также предоставляет возможность запуска сканирует ваш код для обнаружения уязвимостей в системе безопасности и отслеживает справочный журнал, чтобы отслеживать, соответствует ли выбранное предложение кода какой-либо лицензии или соответствует какому-либо коду с открытым исходным кодом. Разработчики могут принять лучшие рекомендации, просмотреть дополнительные рекомендации или продолжить писать свой собственный код.

Рекомендации