Комментарии 11
Когда вышел ChatGPT, я с ним поигрался, но потом забросил на долгое время. И лишь осенью прошлого года, я снова решился использовать его, чтобы составить регулярное выражение и он мне отлично помог. После этого я впечатлился и начал уже достаточно регулярно использовать как ChatGPT, так и Github Copilot.
ChatGPT я обычно использую для общих сведений. Например, с его помощью я написал простенький классификатор на PyTorch, не зная ни Python, ни нейросети. Это было достаточно тяжко, так как мои требования к коду постоянно менялись, и предлагаемый код тоже менял свою конструкцию, которую мне нужно было потом адаптировать как-то к тому, что у меня уже было. В целом, мой workflow такой: поверхностно консультируешься с ChatGPT и если нужны подробности, то уже гуглишь какие-то статьи в интернете на эту тему.
Github Copilt я использую для уменьшения рутины. Например, он очень помогает в написании тестов, предлагая контекстно верные куски кода и тебе не нужно много повторяться, проверяя различные пограничные кейсы.
Сгенерируй JSON файла со списком стран ...
Стандарты ISO/Российские классификаторы? Не ... не слыхали
Пошлете заявку поставщику, а он вам посылку на северный полюс отправлять будет?
ИИ например участвует в CI/CD несколькими способами:
Автоматизированное тестирование: Инструменты тестирования на базе ИИ могут автоматически генерировать тестовые случаи и выполнять тестирование, сокращая время и усилия, необходимые для ручного тестирования.
Анализ кода: ИИ можно использовать для анализа кода на предмет потенциальных дефектов, уязвимостей безопасности и проблем с производительностью. Это помогает выявлять и устранять проблемы на ранних этапах процесса разработки.
Оптимизация сборки: ИИ может оптимизировать процессы сборки, выявляя и устраняя узкие места, сокращая время сборки и повышая эффективность.
Автоматизация развертывания: ИИ может автоматизировать процесс развертывания, включая такие задачи, как выбор подходящей среды развертывания, развертывание обновлений и мониторинг состояния развертывания.
Непрерывный мониторинг: ИИ может непрерывно контролировать конвейеры CI/CD и производственные среды, чтобы заблаговременно обнаруживать и устранять проблемы, обеспечивая стабильность и надежность.
Вот несколько конкретных примеров инструментов на базе ИИ, которые используются в CI/CD:
DeepCode: Инструмент анализа кода, который использует ИИ для выявления потенциальных дефектов и уязвимостей безопасности.
Test.ai: Инструмент автоматизации тестирования, использующий ИИ для создания тестовых случаев и проведения тестирования.
Jenkins X: CI/CD-платформа, использующая ИИ для автоматизации и оптимизации процесса CI/CD.
CloudBees CodeShip: CI/CD-платформа, использующая ИИ для ускорения процессов сборки и развертывания.
CircleCI: CI/CD-платформа, использующая ИИ для мониторинга и анализа CI/CD-конвейеров.
Используя ИИ, можно повысить эффективность, надежность и качество процессов CI/CD.
ИИ также используется для разработки новых инструментов и платформ CI/CD, которые являются более интеллектуальными и автоматизированными. Например, некоторые исследователи работают над созданием CI/CD-систем на базе ИИ, которые могут автоматически адаптироваться к меняющимся кодовым базам и средам разработки.
ИИ играет все более важную роль в CI/CD, помогая организациям быстрее, качественнее и с меньшими усилиями создавать программное обеспечение.
Программисты могут внедрить практику непрерывной интеграции и непрерывного развертывания (CI/CD), выполнив следующие шаги:
1. Выберите инструмент CI/CD: Существует множество инструментов CI/CD, как с открытым исходным кодом, так и коммерческих. Среди популярных вариантов - Jenkins, Travis CI, CircleCI и Azure DevOps. Выберите инструмент, который соответствует потребностям и бюджету вашей команды.
2. Настройте конвейер CI/CD: Конвейер CI/CD определяет автоматизированные шаги, которые будут выполняться при внесении изменений в код. Обычно это включает в себя сборку кода, запуск тестов и развертывание кода в среде постановки или производства.
3. Интеграция с репозиторием исходного кода: Подключите инструмент CI/CD к репозиторию исходного кода (например, GitHub, GitLab). Это позволит инструменту автоматически запускать конвейер CI/CD, когда в репозиторий попадают изменения кода.
4. Настройте шаги сборки и тестирования: Определите шаги, которые будут выполняться на этапах сборки и тестирования конвейера. Сюда могут входить такие задачи, как компиляция кода, запуск модульных тестов и выполнение проверок качества кода.
5. Настройте шаги развертывания: Определите шаги, которые будут выполняться на этапе развертывания конвейера. Сюда могут входить такие задачи, как развертывание кода в среде staging или production, запуск приемочных тестов и отправка уведомлений заинтересованным сторонам.
6. Мониторинг CI/CD-конвейера: После того как CI/CD-конвейер настроен, важно отслеживать его прогресс и вносить коррективы по мере необходимости. Для этого можно настроить оповещения о неудачных сборках или развертываниях, а также отслеживать такие показатели, как время сборки и покрытие тестами.
Вот несколько дополнительных советов для программистов, которые только начинают работать с CI/CD:
* Начните с малого: Не пытайтесь сразу внедрить сложный CI/CD-конвейер. Начните с простого конвейера, который автоматизирует несколько ключевых задач, а затем постепенно добавляйте больше шагов, по мере того как вы будете чувствовать себя более комфортно.
* Обращайтесь за помощью к своей команде: Если вы работаете в команде, сотрудничайте с коллегами для внедрения CI/CD. Это поможет вам разделить нагрузку и перенять опыт друг друга.
* Используйте ресурсы: Существует множество ресурсов, которые помогут вам узнать о CI/CD, включая документацию, учебные пособия и онлайн-курсы. Воспользуйтесь этими ресурсами, чтобы улучшить свои знания и навыки.
У кого-то проблемы с написанием кода? По-моему писать промпты сложнее.
После нескольких экспериментов с ИИ - забил на них благополучно. Даже sql запрос не может нормально написать. Пока 2 часа указывал на ошибки и т.д. мог бы сам за несколько минут справиться. Какой Джун?))
Пока ИИ можно использовать для мелких задач или изучения какой либо темы путем генерации примера кода по запросу. Писать реальное приложение, а тем более архитектуру лучше делать самому.
Основная цель и для создания кода - выполнение рутины. Как, например, создание асэмблера как абстракция машинного кода. А потом создание языков высокого уровня, как абстракция асэмблера.
Человек будет выполнять более высоко абстрактные задачи. Например, создание архитектуры приложений, создание новых протоколов систем и прочее, прочее.
Если использовать ИИ как кодера то, вполне можно использовать, главное для себя понимать как должна работать программа и правильно описывать тз. Использую phind, начинаю с минимального запроса и потом прошу добавить ту или иную функцию, и достаточно успешно пишет код. Правда обычный обыватель, который не умеет читать и анализировать код, при помощи ИИ ничего не напишет.
Нейросети для программистов: уже что-то умеют или еще пока совсем джуны?