Patrones de desarrollo modernos para equipos de software de automoción que utilizan herramientas de inteligencia artificialUn equipo de ingenieros de software automotriz que utilizan herramientas de desarrollo impulsadas por inteligencia artificial para crear y probar sistemas de vehículos conectados en las ECU y la infraestructura en la nube.
Industry Insights

/

May 30, 2025

/

#

Min Read

Patrones de desarrollo modernos para equipos de software de automoción que utilizan herramientas de inteligencia artificial

This is an external post, click the button below to view.
View Post

A medida que la complejidad del software automotriz sigue aumentando, los equipos de ingeniería recurren a herramientas asistidas por IA para mejorar la eficiencia de los desarrolladores, reducir los errores y mantener la calidad en los sistemas críticos para la seguridad. En Sibros, hemos adoptado herramientas como Cursor IDE, Windsurf, Cline, Claude Code y otros modelos lingüísticos extensos (LLM) para apoyar el desarrollo en toda nuestra plataforma de vehículos conectados, desde las actualizaciones OTA hasta el registro de datos y el diagnóstico.

En este artículo, compartimos patrones prácticos, lecciones aprendidas y consejos para integrar los asistentes de codificación de IA en su flujo de trabajo, especialmente para el software automotriz integrado y basado en la nube. No se trata de ideas teóricas, sino de métodos reales y aplicados que incorporamos en nuestros flujos de trabajo diarios para crear sistemas de producción. Tú también puedes.

Comience con la estructura: planificación y arquitectura asistidas por IA

En los sistemas automotrices, los errores cometidos al principio de la fase de diseño son costosos de corregir más adelante. Esto es especialmente cierto en los servicios estrechamente acoplados, como la orquestación de actualizaciones de OTA o la transmisión de registros. Con Cursor IDE, iniciamos todas las funciones nuevas con una planificación exhaustiva utilizando la IA para diseñar conjuntamente nuestro sistema.

Solicitamos al LLM que defina las responsabilidades de servicio, esboce los modelos de dominio y anticipe los contratos de comunicación.

Estamos creando un servicio de despliegue para las actualizaciones de software OTA. Por favor, describa:

  1. Responsabilidades de servicio
  2. Modelos y campos de entidades
  3. Puntos de comunicación de servicio a servicio
  4. Estructura de carpetas sugerida para monorepo basado en Go

Ejemplo de mensaje:

We are building a deployment service for OTA software updates. Please outline: 1. Service responsibilities 2. Entity models and fields 3. Service-to-service communication points 4. Suggested folder structure for Go-based monorepo

Este tipo de diseño inicial reduce la pérdida de clientes más adelante y mantiene a todo el equipo alineado en lo que respecta a las decisiones de arquitectura.

Enseñe a la IA sobre su base de código con .cursorrules

Los LLM listos para usar no tienen contexto sobre su repositorio específico. Ahí es donde . reglas del cursor entran archivos. Piense en ellos como el documento de incorporación de la IA de su proyecto.

Los utilizamos para definir:

  • Nuestra arquitectura en capas
  • Convenciones de nomenclatura
  • Archivos clave y sus funciones

Fragmento de ejemplo:

## Code Organization - Entity layer: Domain models - Service layer: Business logic - Storage layer: Postgres repositories - Endpoint layer: API definitions

Esto permite que la IA complete un código que coincida con nuestro estilo y evita inconsistencias internas.

Cambie a la izquierda en materia de seguridad: flujos de trabajo de IA que dan prioridad a las pruebas

El código automotriz a menudo toca funciones críticas, como las actualizaciones de firmware, los controladores de frenos o los diagnósticos de telemetría. Esto significa que el código generado por IA debe ser comprobable, predecible y verificable.

Usamos un enfoque rápido de «probar primero»: definimos qué aspecto tiene el éxito antes de pedirle a la IA que escriba la lógica.

Solicitud para generar pruebas:

Write integration tests for the software rollout endpoint. Test cases: - Valid rollout with multiple staged deployments - Failure when package ID is missing - Rollout respects feature flag settings

Esto garantiza que la IA funcione dentro de las restricciones y evita comportamientos no deseados en el futuro.

Depuración a escala: inyección de mensajes de error

Ya no leemos manualmente los rastros de la pila completa. En su lugar, los pegamos directamente en Cursor y pedimos que se analice la causa raíz. Esto es especialmente útil en Go, donde el pánico suele aparecer en cascada.

Ejemplo rápido:

Error: `panic: runtime error: invalid memory address or nil pointer dereference` This happens when trying to call `.Deploy()` inside the OTA rollout logic. Help me debug.

Esto ocurre cuando se intenta llamar a `.Deploy () `dentro de la lógica de despliegue de OTA. Ayúdame a depurar.

La IA muestra las causas probables, sugiere líneas de registro e incluso ofrece soluciones. Esto reemplaza lo que solían ser 30 minutos buscando caucho y tamizando troncos.

Cómo evitar la deriva de la LLM con Git Hygiene

Una trampa común cuando se trabaja con LLM es la tendencia a acumular correcciones sobre el código roto. Esto crea «basura», un término que utilizamos para describir las capas de ediciones mal fundamentadas.

Para evitarlo:

  • Nos comprometemos después de cada cambio exitoso generado por la IA
  • Reiniciamos generosamente con git reset --duro
  • Tratamos a Cursor como a un ingeniero junior: tiene un alto potencial, pero necesita supervisión

Este hábito mantiene limpio el código y minimiza el riesgo de enviar algo que se rompa sutilmente.

Refactorización con un programador de pares de IA

Muchos usuarios de IA infrautilizan Cursor para la refactorización. Lo utilizamos de forma proactiva para reducir la deuda tecnológica. El cursor es excelente para detectar funciones largas, bloques repetidos o patrones inconsistentes.

Rápido:

Refactor `updateRolloutStatus` to: 1. Reduce nesting 2. Improve naming 3. Move DB logic to storage layer 4. Keep behavior identical (covered by existing tests)

Esto nos ayuda a modernizar el código heredado con mayor rapidez y, al mismo tiempo, a mantener la confianza en la cobertura de las pruebas.

Opciones de pila y arquitectura que funcionan mejor con la IA

Hemos aprendido que algunos marcos y patrones son más compatibles con la IA que otros. El cursor funciona mejor cuando el sistema es modular, mecanografiado y documentado.

Estamos a favor de:

  • Opte por una arquitectura limpia en capas
  • TypeScript con React Hooks
  • Límites de servicio claramente definidos

Evitar los DSL exclusivamente internos y las API sin tipo aumenta significativamente la eficacia de la IA.

Documentación bajo demanda

La IA no solo escribe código, también escribe documentos. Usamos Cursor para generar documentación interna, especificaciones de API e incluso registros de decisiones arquitectónicas (ADR).

Rápido:

Generate API documentation for `POST /v1/rollouts`. Include: - Purpose - Request/response schema - Error codes - Authorization behavior

Esto reduce la sobrecarga manual y mantiene nuestros documentos internos actualizados a medida que evolucionan las funciones.

Reflexiones finales

Estos patrones de desarrollo asistido por IA no provienen de la teoría. Evolucionaron a partir de cientos de horas dedicadas a la construcción de sistemas reales de automoción. Nuestro consejo: trate a la IA como un colaborador, no como un oráculo. Deje que se encargue de las repeticiones y las sugerencias, pero siempre superponga la revisión humana, especialmente si se trata de una lógica crítica para la seguridad.

Para los desarrolladores de vehículos conectados que buscan avanzar más rápido sin comprometer la confiabilidad, la adopción de estos patrones ofrece una verdadera ventaja.

Xiaojian Huang
Xiaojian Huang
Xioajian leads Sibros software development and cloud infrastructure teams. Prior to Sibros he was head of product at Nuro.ai and before that was a key engineer at Uber and Facebook. At Uber he led the teams that built the cloud infrastructure running Uber’s critical workloads for the app worldwide.