Codex CLI Ejemplos prácticos
Esta sección muestra varios escenarios de uso de Codex CLI mediante ejemplos prácticos, ayudándote a dominar rápidamente su aplicación en el desarrollo real.
Escritura de código
Ejemplo 1: Crear una nueva funcionalidad
Pídele a Codex que cree un módulo de funcionalidad completo:
Tarea
Codex generará un código similar al siguiente:
Código generado
"""
Encuentra la cadena más larga y su posición de índice en una lista de cadenas.
Args:
strings: lista de cadenas
Returns:
tuple: (cadena más larga, posición de índice)
Si la lista está vacía, devuelve (None, -1)
"""
if not strings:
return None, -1
longest = max(strings, key=len)
index = strings.index(longest)
return longest, index
# Ejemplo de prueba
if __name__ == "__main__":
test_list = ["apple", "banana", "cherry", "dragonfruit"]
result, idx = find_longest_string(test_list)
print(f"Cadena más larga: {result}, índice: {idx}")
# Salida: Cadena más larga: dragonfruit, índice: 3
El código generado por Codex incluye comentarios de documentación detallados y ejemplos de prueba, y se puede usar directamente.
Ejemplo 2: Refactorizar código
Pídele a Codex que refactorice el código existente:
Tarea
def get_squares(n):
result = []
for i in range(n):
result.append(i * i)
return result
Codex proporcionará el código refactorizado:
Código refactorizado
"""
Genera los cuadrados de 0 a n-1.
Args:
n: número de cuadrados a generar
Yields:
int: cuadrados de 0 a n-1
"""
for i in range(n):
yield i * i
# Ejemplo de uso
for square in get_squares(5):
print(square)
# Salida: 0, 1, 4, 9, 16
Revisión de código
Ejemplo 1: Revisar problemas de código
Pídele a Codex que revise el código y sugiera mejoras:
Tarea
def process_data(data):
result = []
for item in data:
if item['type'] == 'a':
result.append(item['value'] * 2)
elif item['type'] == 'b':
result.append(item['value'] + 10)
elif item['type'] == 'c':
result.append(item['value'])
return result
Codex analizará y proporcionará un informe de revisión:
## 代码审查报告 ### 问题 1. **缺少错误处理**:没有检查 item 是否包含必要的键 2. **类型不一致**:'c' 类型直接返回原值,而其他类型做了处理 3. **硬编码值**:乘数和加数应该作为参数或配置 ### 改进建议 1. 添加默认字典或 try-except 处理 2. 统一处理逻辑 3. 将 magic numbers 提取为常量
Ejemplo 2: Usar el comando /review
Usa el comando de revisión integrado en Codex:
Tarea
Codex escaneará todo elsrc/directorio y generará un informe completo de revisión de código.
Depuración y resolución de problemas
Ejemplo 1: Analizar mensajes de error
Entrega el mensaje de error a Codex para que lo analice:
Tarea
Traceback (most recent call last):
File "app.py", line 42, in <module>
main()
File "app.py", line 38, in fetch_data()
File "app.py", line 25, in fetch_data
response = requests.get(url)
File "/usr/lib/python3.10/site-packages/requests/api.py", line 88, in in get
return session.request(method='GET', url=url, **kwargs)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.example.com', port=443): Max retries exceeded
Codex proporcionará un análisis y una solución:
## 错误分析 ### 原因 网络连接问题 - 无法连接到 api.example.com ### 可能的原因 1. 网络不通 2. 域名解析失败 3. 服务器不可用 4. 防火墙阻止 ### 建议的排查步骤 1. 检查网络连接:ping api.example.com 2. 验证域名解析:nslookup api.example.com 3. 检查端口是否开放:telnet api.example.com 443 4. 如果是本地开发,检查代理设置
Ejemplo 2: Agregar registros de depuración
Pídele a Codex que agregue código de depuración:
Tarea
def calculate(a, b):
return a + b * (a - b)
Codex generará una versión con registros de depuración:
Agregar registros de depuración
# Configurar registro
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
def calculate(a, b):
"""Función de cálculo con registros de depuración"""
logger.debug(f"calculate called with a={a}, b={b}")
result = a + b * (a - b)
logger.debug(f"a + b = {a} + {b} = {a + b}")
logger.debug(f"a - b = {a} - {b} = {a - b}")
logger.debug(f"b * (a - b) = {b} * {a - b} = {b * (a - b)}")
logger.debug(f"final result: {result}")
return result
Operaciones de archivos
Ejemplo 1: Renombrar archivos en lote
Tarea
Ejemplo 2: Crear estructura de proyecto
Tarea
- app.py archivo principal
- config.py archivo de configuración
- requirements.txt
- tests/directorio
- static/y templates/directorio
Codex creará la estructura completa del proyecto y generará todos los archivos necesarios.
Codex primero mostrará la lista de archivos que creará y, después de la confirmación, los ejecutará.
Ejecución de comandos
Ejemplo 1: Ejecutar pruebas
Tarea
Codex detectará automáticamente el tipo de proyecto y ejecutará el comando de prueba correspondiente:
- Proyecto Python: pytest o unittest
- Proyecto Node.js: npm test o yarn test
- Proyecto Rust: cargo test
Ejemplo 2: Operaciones de Git
Tarea
Codex analizará todos los cambios no confirmados y luego ejecutará:
git status- Ver cambiosgit diff- Revisar modificaciones específicasgit add -A- Agregar todos los archivosgit commit -m "..."- Crear el commit
Para operaciones de Git, Codex mostrará primero el contenido de los cambios y solo los ejecutará después de la confirmación.
Análisis de proyectos
Ejemplo 1: Comprender la estructura del proyecto
Tarea
Codex examinará del proyecto:
- Archivos de configuración (package.json, Cargo.toml, requirements.txt, etc.)
- Estructura de directorios
- Archivos fuente principales
Luego proporcionará un informe de análisis detallado.
Ejemplo 2: Buscar dependencias
Tarea
Modo de planificación
Usa el comando /plan para planificar tareas complejas:
Tarea
Codex mostrará primero un plan de implementación detallado:
## 实施计划:用户认证功能 ### 步骤 1:准备 - 创建用户模型 - 安装认证依赖(jsonwebtoken, bcryptjs) ### 步骤 2:后端实现 - 创建 /api/auth/register 端点 - 创建 /api/auth/login 端点 - 实现 JWT 生成和验证中间件 ### 步骤 3:前端实现 - 创建登录表单组件 - 创建注册表单组件 - 添加认证状态管理 ### 步骤 4:测试 - 编写后端单元测试 - 测试前端表单交互 是否确认执行此计划? [Y] 确认 [N] 取消 [M] 修改
El modo de planificación te permite conocer el razonamiento completo de Codex antes de ejecutar, evitando trabajos innecesarios.
Ejemplo integral
Un ejemplo de flujo de trabajo completo:
Flujo de trabajo completo
/new
# 2. Conocer el proyecto
¿Qué framework utiliza este proyecto? ¿Cuáles son las funcionalidades principales?
# 3. Agregar una nueva funcionalidad
EnusersAgrega una funcionalidad de envío de código de verificación en el módulo, ten en cuenta:
- Generación del código de verificación (6dígitos)
- 60No se puede reenviar dentro de segundos
- Código de verificación10válido por minutos
# 4. Pruebas
Ejecuta las pruebas correspondientes para asegurarte de que la funcionalidad funcione correctamente.
# 5. Revisión de código
/review
Este ejemplo muestra un flujo de desarrollo típico: entender el proyecto → implementar la funcionalidad → probar → revisar.
Resumen de atajos
| Escenario | Comando utilizado |
|---|---|
| Escribir una función | Simplemente describe el requisito |
| Revisar código | /review o "ayúdame a revisar..." |
| Depurar problemas | Pega el mensaje de error y solicita un análisis |
| Ejecutar comandos | Comienza con ! |
| Planificación de tareas complejas | /plan + descripción de la tarea |
| Comprender código | ¿Qué hace esta función? |
La práctica hace al maestro. Usar Codex con frecuencia te hará más competente y aumentará en gran medida tu eficiencia al escribir código.Otras extensiones