Model Maker Yii2
Сегодня сделал утилиту для генерации моделей в Yii2.
Когда пишешь много нового кода, то требуется создавать много таблиц. У меня процесс такой что для таблицы я описываю сначала поля в формате команды SQL "create table", так как он и короткий и наглядный и является полной копией того что окажется в проде, что удобно, а потом я создаю модель и миграцию по этому набору полей.
Это просто большое количество рутинной и неприятной работы, которую хочется избежать. Все эти копирования полей, сопоставить названия, типы, выписать всё. Не хочу. Пусть одной кнопкой генерируется!
Для этого мне потребовалось написать утилиту, которая берёт SQL файл, извлекает из него всю полезную информацию и строит модель с миграцией. Это я и сделал.
Почему же не генерировать и то и другое и третье через нейросеть?
Нейросеть хоть и умная, но всё ещё является генератором текста, что не исключает ошибок и галлюцинаций. Придётся либо проверять за ней, что потратит моё время и нервы, либо довериться "на авось", что не потратит время но потратит ещё больше нервов.
Поэтому если можно написать код, который автоматически по правилам сгенерирует необходимый мне код, то я лучше сделаю это кодом. Результат будет детерминированный, то есть всегда один и тот же надёжный результат на одни и те же входящие данные.
Дополнительные плюшки
Так как цель в том, чтобы сделать утилиту подходящей для ежедневного использования, я добавил все удобства которые мне пришли в голову:
- автоматическое сканирование папки проекта на SQL файлы, чтобы не вбивать имя файла, а просто выбрать из списка "стрелочками"
- отображение имени модели
- поиск в списке по введённым символам
- индикатор статуса (файл модели отсутствует, совпадает с генерацией по SQL или требует обновления)
- автоматическая запись и модели и миграции в нужные папки (а не просто в текущую)
Опыт с Claude Code
На этот раз CC показал себя хорошо. Иногда всё же ошибался, но по итогу исправлял ошибки когда я ему на них указывал.
Приятным сюрпризом стало, что CC в последнем обновлении приобрёл привычку проверять за собой: не сломал ли он старое и решает ли его изменение кода на самом деле поставленную ему задачу.
Процесс кодирования стал быстрее а результат в разы лучше.
Итоги
Я доволен. Когда мне потребовалось автоматизировать рутину, с помощью Claude Code я справился очень быстро и моё усилие окупится стократно в дальнейшем.
Let's Build 👨💻
Post #78
540

- 👍 4
- 👎 1
- 💅 1