Кейсы и примеры кода – Реальные примеры AI-кодинга

ChatGPT 5 активно используется программистами для написания, оптимизации и отладки кода. Этот мощный инструмент позволяет автоматизировать рутинные задачи, ускорять процесс разработки, улучшать тестирование и повышать качество программного обеспечения.

В данной статье мы рассмотрим реальные примеры кодинга с использованием ChatGPT 5 и проанализируем, как нейросеть помогает разработчикам в различных сферах программирования.

1. Оптимизация SQL-запросов с ChatGPT 5

Оптимизация SQL-запросов с ChatGPT 5

ChatGPT 5 помогает анализировать SQL-запросы и предлагать их оптимизацию для увеличения скорости работы базы данных. AI может подсказать, где нужен индекс, какие поля лучше выбирать явно, как переписать фильтрацию, когда стоит использовать JOIN, а когда — подзапрос, и почему запрос может работать медленно на больших таблицах.

Исходный SQL-запрос:

SELECT * FROM users WHERE age > 30 ORDER BY name;

Этот запрос извлекает всех пользователей старше 30 лет и сортирует их по имени. Однако он может быть медленным на больших базах данных, особенно если таблица содержит много строк, а по полям age и name нет подходящих индексов.

Оптимизированный вариант с индексом:

CREATE INDEX idx_users_age_name ON users (age, name);

SELECT id, name, age, email
FROM users
WHERE age > 30
ORDER BY name;

Добавление индекса помогает ускорить фильтрацию по возрасту, а явное указание нужных столбцов снижает объём передаваемых данных. При этом важно помнить, что индексы не всегда автоматически решают проблему: они занимают место, замедляют часть операций записи и должны подбираться под реальные запросы. ChatGPT 5 может предложить направление оптимизации, но финальное решение лучше проверять через EXPLAIN, анализ плана выполнения и тестирование на реальной базе.

2. Генерация REST API на Flask

ChatGPT 5 может быстро сгенерировать API-сервер на Flask для обработки запросов. Такой подход удобен, когда нужно создать прототип, проверить идею, подготовить учебный пример или быстро собрать небольшой внутренний сервис.

Пример простого API:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/api", methods=["GET"])
def get_data():
    return jsonify({"message": "Привет от ChatGPT 5"})

if __name__ == "__main__":
    app.run(debug=True)

Этот код создаёт простой API, который возвращает JSON-ответ. Разработчик может попросить ChatGPT 5 добавить обработку ошибок, подключение к базе данных, авторизацию, CORS, логирование, валидацию входных данных или структуру проекта с отдельными модулями.

Для реального проекта такой код нужно доработать. Например, нельзя оставлять debug=True в продакшене, важно настроить переменные окружения, обработку исключений, безопасность, тесты и корректный запуск через WSGI-сервер. ChatGPT 5 помогает быстро получить основу, но финальная настройка остаётся задачей разработчика.

3. Автоматическая генерация unit-тестов

ChatGPT 5 помогает создавать тесты для Python-программ, улучшая качество кода и снижая вероятность ошибок. Модель может анализировать функцию, предлагать базовые и граничные сценарии, добавлять проверки для неверных входных данных и объяснять, какие случаи покрывает каждый тест.

Пример unit-теста:

import unittest
from mymodule import add_numbers

class TestMathFunctions(unittest.TestCase):
    def test_addition(self):
        self.assertEqual(add_numbers(2, 3), 5)

    def test_addition_with_negative_numbers(self):
        self.assertEqual(add_numbers(-2, -3), -5)

    def test_addition_with_zero(self):
        self.assertEqual(add_numbers(0, 7), 7)

if __name__ == "__main__":
    unittest.main()

Этот код проверяет корректность функции add_numbers, предотвращая ошибки в логике приложения. ChatGPT 5 может дополнительно предложить тесты на неверные типы данных, большие значения, пустые параметры или особые бизнес-правила, если они описаны в задаче.

Хороший запрос для AI может выглядеть так: «Напиши unit-тесты для этой функции на Python с использованием unittest. Проверь обычные значения, отрицательные числа, ноль и ошибочные типы данных. Объясни, какие сценарии покрывает каждый тест». Такой подход помогает получить более полезный набор проверок, а не один минимальный тест.

4. Оптимизация JavaScript-кода

ChatGPT 5 может анализировать JavaScript-код и предлагать улучшения. Особенно полезно это при работе с типичными ошибками языка, асинхронностью, сортировкой, обработкой массивов, DOM, React-компонентами и взаимодействием с API.

Исходный код:


let numbers = [5, 2, 9, 1, 5, 6];
numbers.sort();
console.log(numbers);

Этот код имеет проблему: .sort() по умолчанию сортирует элементы как строки, а не как числа. Поэтому результат может быть неожиданным, особенно если в массиве есть значения вроде 10, 100 или 21.

Оптимизированный код:

let numbers = [5, 2, 9, 1, 5, 6];
numbers.sort((a, b) => a - b);
console.log(numbers);

Добавление функции сравнения позволяет корректно сортировать массив по числовым значениям. ChatGPT 5 может не только предложить исправление, но и объяснить причину ошибки: JavaScript приводит элементы к строкам при стандартной сортировке, поэтому числовые массивы требуют явного компаратора.

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

5. Улучшение производительности C++ кода

Реальные примеры AI-кодинга

ChatGPT 5 может оптимизировать код на C++, улучшая его читаемость и производительность. Особенно полезно это при работе с алгоритмами, контейнерами STL, повторяющимися циклами, обработкой массивов и задачами, где важна эффективность.

Исходный код:

#include <iostream>
using namespace std;

int sumArray(int arr[], int size) {
    int sum = 0;

    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }

    return sum;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    cout << sumArray(arr, 5) << endl;
    return 0;
}

Оптимизированный и более современный вариант:

#include <iostream>
#include <numeric>
#include <iterator>

int main() {
    int arr[] = {1, 2, 3, 4, 5};

    std::cout << std::accumulate(std::begin(arr), std::end(arr), 0) << std::endl;

    return 0;
}

Использование std::accumulate из <numeric> позволяет сократить код и сделать намерение программы понятнее. При этом важно не считать любую замену на стандартный алгоритм автоматическим ускорением. Иногда выигрыш заключается не в скорости, а в читаемости, поддерживаемости и снижении риска ошибки.

ChatGPT 5 может объяснить, почему такое решение лучше, предложить вариант для std::vector, добавить обработку пустого контейнера или переписать код в стиле конкретного проекта.

6. Пример рефакторинга Python-кода

ChatGPT 5 полезен не только для генерации нового кода, но и для улучшения уже существующего. Например, разработчик может передать модели длинную функцию и попросить сделать её понятнее, разбить на части, убрать дублирование и добавить тесты.

Исходный пример:

def get_discount(user_type, amount):
    if user_type == "vip":
        if amount > 1000:
            return amount * 0.2
        else:
            return amount * 0.1
    elif user_type == "regular":
        if amount > 1000:
            return amount * 0.1
        else:
            return amount * 0.05
    else:
        return 0

Более аккуратный вариант:

DISCOUNT_RATES = {
    "vip": {
        "high": 0.20,
        "base": 0.10,
    },
    "regular": {
        "high": 0.10,
        "base": 0.05,
    },
}

def get_discount(user_type, amount):
    if user_type not in DISCOUNT_RATES:
        return 0

    rate_type = "high" if amount > 1000 else "base"
    return amount * DISCOUNT_RATES[user_type][rate_type]

Такой код легче расширять, если появятся новые типы клиентов или дополнительные правила скидок. ChatGPT 5 может предложить подобный рефакторинг, но разработчик должен проверить, соответствует ли новая логика требованиям бизнеса.

7. Генерация документации к коду

Ещё один практический сценарий — автоматическая подготовка документации. ChatGPT 5 может объяснять функции, классы, API-методы и сложные участки кода простым языком.

Пример функции:

def calculate_total(items, tax_rate):
    subtotal = sum(item["price"] * item["quantity"] for item in items)
    return subtotal + subtotal * tax_rate

ChatGPT 5 может подготовить описание:

def calculate_total(items, tax_rate):
    """
    Рассчитывает итоговую стоимость заказа с учетом налога.

    Args:
        items: список товаров, где каждый товар содержит price и quantity.
        tax_rate: ставка налога в виде десятичного числа, например 0.2 для 20%.

    Returns:
        Итоговая сумма заказа с учетом налога.
    """
    subtotal = sum(item["price"] * item["quantity"] for item in items)
    return subtotal + subtotal * tax_rate

Такая автоматизация помогает поддерживать проект в более понятном состоянии. Особенно полезно это в командах, где код часто передаётся между разработчиками, а документация быстро устаревает.

Заключение

ChatGPT 5 значительно упрощает процесс программирования, позволяя разработчикам быстрее писать код, находить ошибки, создавать тесты и оптимизировать алгоритмы. Он доступен через OpenAI API, ChatGPT, AI-инструменты для разработчиков и интеграции с популярными средами разработки.

Используя ChatGPT 5, программисты могут повысить свою продуктивность, автоматизировать рутинные задачи и сосредоточиться на создании сложных решений. Главное — не переносить AI-код в проект без проверки. Любой пример нужно запускать, тестировать, адаптировать под требования проекта и проверять на безопасность, производительность и соответствие бизнес-логике.