
Далеко не секрет, что в наши дни ИИ (а если быть точнее, большие языковые модели), стали использоваться повсеместно. Они уже умеют отлично отвечать на запросы пользователей (в особенности при использовании манифестов для пути достижения целей), генерировать неплохие изображения, искать информацию в интернете и делать множество других вещей.
В сегодняшней статье, мы хотели бы рассказать о том, как же обстоят дела в плане программирования. Насколько хорошо прогресс двигается там, и реально ли применять ИИ уже сегодня в действительно продуктовой разработке.
Коротко о нас - Мы занимаемся разработкой продуктов для электронной коммерции и уже повсеместно внедряем инструменты ИИ на основе нашего опыта - умные ленты товаров, генерация карточек продукции и многое другое. Но даже не смотря на то, что мы достаточно долго и плотно используем инструменты ИИ для корпоративных задач, в разработку мы внедрили их совсем недавно. И давайте посмотрим, как дела обстоят с применением ИИ в процессе разработки?
Искусственный интеллект значительно изменил подход к разработке программного обеспечения в последние годы, предоставляя разработчикам новые инструменты и возможности, которые могут значительно улучшить эффективность и качество создаваемых продуктов.
Одной из ключевых возможностей ИИ является автоматизация рутинных задач. Современные ИИ-системы способны выполнять множество задач, таких как написание базовых модулей или шаблонов, тестирование, написание документации и отладка.
Мы выделили несколько моментов, которые помогают конкретно нам:
Выше мы выделили пункты, где ИИ может быть полезен. Однако нужно учитывать, что доверять всю работу на откуп ИИ - неразумно. Технологии языковых моделей, каким-бы контекстом они не обладали - далеко не совершенны. Поэтому, нужно выделить, когда ИИ может навредить вашей разработке:
Все это нужно учитывать при применении ИИ, внедряемого в ваши процессы. Всегда нужно помнить, что на данный момент ИИ - это не замена программиста, это отличный инструмент для упрощения процессов разработки. Не использовать данные преимущества - глупо, но и полностью полагаться на них - так же неразумно.
Для начала разберемся в задачах, связанных не столько с самим написанием кода, сколько с исследованием и пользовательскими данными.
Поисковые системы несовершенны, и бывают ситуации, когда ИИ проще и лучше понимает контекст вашего запроса, чем вы забили его в Google и начали шерстить страницы Stack Overflow и других форумов. В большинстве случаев, на данный момент ИИ уже лучше ориентируется с поиском ответов на множество рядовых вопросов, однако, сложные системы даются ему всё еще с трудом.
Здесь важно отметить, что ИИ просто ускоряет поиск информации. К тому же на сегодняшний день можно сделать выжимку из текущих запросов и сократить ответ.
Сравнить несколько подходов в архитектуре без пролистывания 200 страниц описывающих ключевые особенности тех или иных подходов? Конечно проще сделать это на базе ИИ, поскольку он достаточно хорошо справляется с конспектами уже существующей информации.
Скармливаете ему свои идеи + источник информации о тех или иных решениях и получаете краткую, сравнительную выжимку того, что подходит под ваши задачи. Экономите время и нервы себе. С готовыми примерами на основе вашей задачи, а не Hello World из книги.
ИИ помогает решить базовые вопросы быстрого прототипирования пользовательских интерфейсов, поможет нарисовать его, сверстать, а также написать базовые тексты, перевести их на разные языки и многое другое.
На данный момент, ИИ может помочь вам создать полноценную верстку или шаблоны для MVP продукта, сокращая вам время на эту рутинную задачу.
Еще один момент, важный для конечного пользователя - это персонализация. В сочетании с социальными профилями (к примеру, авторизовавшийся пользователь через ВК - дает доступ к своим данным и интересам) и ИИ с заданной ролью консультанта, вы можете давать пользователю нужный контент уже на первом заходе в приложение.
Как это примерно работает?
Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
12599 тендеров
проведено за восемь лет работы нашего сайта.
Еще один метод сокращение издержек в отделе разработки - это техническая поддержка на основе ИИ. Подключаем чат (к примеру Chat GPT), скормив ему свою базу знаний - и он автоматически старается решить проблему пользователя. В 70% случаев - этого достаточно, чтобы не обращаться к реальному специалисту.
Окей, теперь погнали в самую полезную область - непосредственно в саму разработку. Здесь мы разберем решение задач, которые пригождаются нам ежедневно.
В классических IDE уже давно было встроено интеллектуальное авто-дополнение, но то, как теперь это работает с учетом всего контекста проекта, твоих последних действий и ИИ - работает достаточно быстро и бодро.
Единственное, что нужно учитывать - это безопасность. Если у вас есть какой-либо критически важный код, который должен быть конфиденциален - я бы рассмотрел развертывание LLM с авто-дополнением и написанием кода на основе контекста всего проекта - внутри вашей корпоративной сети (либо локально), благо Open-Source решений уже достаточно.
Можно быстро генерировать какие-либо шаблоны кода на основе ваших готовых работ, контекста проекта или же абсолютно с нуля. К примеру, это может быть полезно при создании новых модулей вашего продукта на основе какой-либо уже существующей архитектуры (например, генерация моделей, контроллеров, представлений и роутингов на основе контекста проекта с описанием вашей схемы API).
Естественно, такие шаблоны стоит проверять, как и всё, что делает ИИ. Но, в целом, рутинное написание кода становится в разы быстрее, если не генерировать огромные классы (чего в целом стоило бы избежать в программировании исходя из принципов того-же SOLID).
Да, конечно можно воспользоваться поиском, но иногда проще попросить сравнить GPT несколько вариантов алгоритмов, провести за вас тест (к примеру выполнив на JS коде) и на основе наиболее подходящего алгоритма - создать для вас нужную функцию. Естественно, вам стоит после этого проверить еще раз код на правильность, однако, ускорить процесс исследования это помогает.
В течении жизненного цикла продукта, всегда приходится изменять какие-то вещи. По большей части на сегодняшний день, стоит проводить рефакторинг всё же в ручную, однако при строгом соблюдении нормального Git Flow, множество рутинных задач всё таки можно автоматизировать.
Как правило, ИИ уже научился хорошо определять основные узкие моменты в популярных языках и помогает решать их при рефакторинге. Тут же помогает и разработка базовых алгоритмов, описанных выше.
В некоторых случаях, ИИ может помочь и в разработке некритичных MVP, от которых не будет зависеть ваши бизнес-процессы. К примеру, набросать тестовое приложение для вашего нового сервиса или базовую библиотеку, чтобы проверить какие-либо гипотезы.
Конечно, иногда ИИ всё же путается и где-то допускает ошибку. Однако, если предоставлять больше контекста и уточнять задачи, результат может быть быстро преобразован в базовый MVP для вашего нового тестового проекта.
Да, здесь можно (и даже нужно) воспользоваться сочетанием человеческого QA, авто-тестов, а также конечно ИИ. Сам же ИИ поможет вам покрыть нужные классы при помощи тех же авто-тестов и расскажет, как правильно их настроить. Ну и куда же без отладки кода.
Здесь же можно отметить дополнительно и документирование кода. Полезно сделать наброски на основе схемы вашего API для конечного пользователя и красиво всё это оформить, как внутри самого кода, так и внешние файлы документации.
Ну и чтобы не быть совсем голословными, собрали для вас список используемых и протестированных решений.
На сегодняшний день ИИ не заменяет разработчика, но развязывает ему руки. Ускорение разработки за счет инструментов на базе больших языковых моделей, непосредственно дает преимущества на рынке, однако не стоит забывать, что вам в любом случае стоит прокачивать свои навыки, поскольку без понимания происходящего, работать с ИИ будет тяжело.