Ответ
Да, я использую кодогенерацию для автоматизации рутинных задач и обеспечения консистентности кода. В моих Node.js проектах это особенно полезно для:
- Генерации типизированных клиентов API из спецификаций OpenAPI/Swagger с помощью инструментов вроде
openapi-typescript-codegen. - Создания TypeScript-типов для GraphQL с использованием
graphql-code-generatorна основе схемы. - Генерации кода для работы с БД, например, Prisma Client от Prisma ORM, который создает полностью типизированный запросник на основе схемы данных.
Я также настраиваю собственные генераторы для шаблонных структур проекта, например, для создания новых модулей с контроллерами, сервисами и тестами. Для этого удобно использовать plop.js:
// plopfile.js
export default function (plop) {
plop.setGenerator('service', {
description: 'Generate a new service module',
prompts: [
{
type: 'input',
name: 'name',
message: 'Service name (e.g., user, payment):'
}
],
actions: [
{
type: 'add',
path: 'src/services/{{kebabCase name}}.service.ts',
templateFile: 'plop-templates/service.hbs'
},
{
type: 'add',
path: 'src/services/__tests__/{{kebabCase name}}.service.test.ts',
templateFile: 'plop-templates/service.test.hbs'
}
]
});
}
Ключевой принцип — применять кодогенерацию там, где она устраняет повторяющуюся работу и снижает вероятность человеческой ошибки, но при этом не создает "магию", затрудняющую отладку и понимание кодовой базы.