Codex Exemples pratiques de la CLI
Cette section présente divers scénarios d'utilisation de Codex CLI à travers des exemples pratiques, vous aidant à maîtriser rapidement son application dans le développement réel.
Écriture de code
Exemple 1 : Création d'une nouvelle fonctionnalité
Laissez Codex créer un module de fonctionnalité complet pour vous :
Tâche
Codex générera un code semblable à ce qui suit :
Code généré
"""
Trouvez la chaîne la plus longue dans une liste de chaînes de caractères et sa position d'index.
Arguments :
strings : liste de chaînes de caractères
Retourne :
tuple : (chaîne la plus longue, position d'index)
Si la liste est vide, retourner (None, -1)
"""
if not strings:
return None, -1
longest = max(strings, key=len)
index = strings.index(longest)
return longest, index
# Exemple de test
if __name__ == "__main__":
test_list = ["apple", "banana", "cherry", "dragonfruit"]
result, idx = find_longest_string(test_list)
print(f"Chaîne la plus longue: {result}, indice: {idx}")
# Sortie: Chaîne la plus longue: dragonfruit, indice: 3
Le code généré par Codex comprend des docstrings détaillées et des exemples de test, et peut être utilisé directement.
Exemple 2 : Refactorisation du code
Demandez à Codex de refactoriser le code existant :
Tâche
def get_squares(n):
result = []
for i in range(n):
result.append(i * i)
return result
Codex fournira le code refactorisé :
Code refactorisé
"""
Générez les nombres carrés de 0 à n-1.
Arguments :
n : nombre de nombres carrés à générer
Produit :
int: nombres carrés de 0 à n-1
"""
for i in range(n):
yield i * i
# Exemple d'utilisation
for square in get_squares(5):
print(square)
# Sortie : 0, 1, 4, 9, 16
Revue de code
Exemple 1 : Examiner les problèmes de code
Demandez à Codex d'examiner le code et de suggérer des améliorations :
Tâche
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 analysera et fournira un rapport de revue :
## 代码审查报告 ### 问题 1. **缺少错误处理**:没有检查 item 是否包含必要的键 2. **类型不一致**:'c' 类型直接返回原值,而其他类型做了处理 3. **硬编码值**:乘数和加数应该作为参数或配置 ### 改进建议 1. 添加默认字典或 try-except 处理 2. 统一处理逻辑 3. 将 magic numbers 提取为常量
Exemple 2 : Utilisation de la commande /review
Utilisez la commande de revue intégrée dans Codex :
Tâche
Codex parcourra tout lesrc/répertoire et générera un rapport complet de revue de code.
Débogage et dépannage
Exemple 1 : Analyse des messages d'erreur
Fournissez le message d'erreur à Codex pour analyse :
Tâche
Traceback (appel le plus récent en dernier):
Fichier "app.py", ligne 42, dans <module>
main()
Fichier "app.py", ligne 38, dans fetch_data()
Fichier "app.py", ligne 25, dans fetch_data
response = requests.get(url)
Fichier "/usr/lib/python3.10/site-packages/requests/api.py", ligne 88, dans dans get
return session.request(method='GET', url=url, **kwargs)
requests.exceptions.ConnectionError: HTTPSConnectionPool(hôte='api.example.com', port=443): Nombre maximal de tentatives dépassé
Codex fournira une analyse et une solution :
## 错误分析 ### 原因 网络连接问题 - 无法连接到 api.example.com ### 可能的原因 1. 网络不通 2. 域名解析失败 3. 服务器不可用 4. 防火墙阻止 ### 建议的排查步骤 1. 检查网络连接:ping api.example.com 2. 验证域名解析:nslookup api.example.com 3. 检查端口是否开放:telnet api.example.com 443 4. 如果是本地开发,检查代理设置
Exemple 2 : Ajout de journaux de débogage
Demandez à Codex d'ajouter du code de débogage :
Tâche
def calculate(a, b):
return a + b * (a - b)
Codex générera une version avec des journaux de débogage :
Ajouter des journaux de débogage
# Configurer la journalisation
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
def calculate(a, b):
"""Fonction de calcul avec des journaux de débogage"""
logger.debug(f"calculate appelé avec 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"résultat final : {result}")
return result
Opérations sur les fichiers
Exemple 1 : Renommage par lots de fichiers
Tâche
Exemple 2 : Création d'une structure de projet
Tâche
- fichier principal app.py
- fichier de configuration config.py
- requirements.txt
- répertoire de tests/directory
- répertoire static/et templates/directory
Codex créera la structure complète du projet et générera tous les fichiers nécessaires.
Codex listera d'abord les fichiers à créer, puis exécutera après confirmation.
Exécution de commande
Exemple 1 : Exécution des tests
Tâche
Codex détectera automatiquement le type de projet et exécutera la commande de test correspondante :
- Projet Python : pytest ou unittest
- Projet Node.js : npm test ou yarn test
- Projet Rust : cargo test
Exemple 2 : Opérations Git
Tâche
Codex analysera toutes les modifications non validées, puis exécutera :
git status- Afficher les modificationsgit diff- Examiner des modifications spécifiquesgit add -A- Ajouter tous les fichiersgit commit -m "..."- Créer un commit
Pour les opérations Git, Codex affichera d'abord les modifications, et n'exécutera qu'après confirmation.
Analyse du projet
Exemple 1 : Comprendre la structure du projet
Tâche
Codex vérifiera les éléments suivants du projet :
- Fichiers de configuration (package.json, Cargo.toml, requirements.txt, etc.)
- Structure des répertoires
- Fichiers sources principaux
Fournissez ensuite un rapport d'analyse détaillé.
Exemple 2 : Recherche des dépendances
Tâche
Mode plan
Utilisez la commande /plan pour planifier des tâches complexes :
Tâche
Codex affichera d'abord un plan d'implémentation détaillé :
## 实施计划:用户认证功能 ### 步骤 1:准备 - 创建用户模型 - 安装认证依赖(jsonwebtoken, bcryptjs) ### 步骤 2:后端实现 - 创建 /api/auth/register 端点 - 创建 /api/auth/login 端点 - 实现 JWT 生成和验证中间件 ### 步骤 3:前端实现 - 创建登录表单组件 - 创建注册表单组件 - 添加认证状态管理 ### 步骤 4:测试 - 编写后端单元测试 - 测试前端表单交互 是否确认执行此计划? [Y] 确认 [N] 取消 [M] 修改
Le mode Plan vous permet de comprendre l'approche complète de Codex avant l'exécution, ce qui évite des reprises inutiles.
Exemples complets
Un exemple complet de flux de travail :
Flux de travail complet
/nouveau
# 2. Comprendre le projet
Quel framework ce projet utilise-t-il ? Quelles sont les principales fonctionnalités ?
# 3. Ajouter une nouvelle fonctionnalité
Dansusers, ajoutez une fonctionnalité pour envoyer des codes de vérification dans le module ; il faut prendre en compte :
- Génération de code de vérification (6chiffres)
- 60Impossible de renvoyer avant quelques secondes
- Code de vérification10valable pendant quelques minutes
# 4. Test
Exécuter les tests pertinents pour garantir que la fonctionnalité fonctionne correctement
# 5. Revue de code
/revue
Cet exemple illustre un flux de développement typique : comprendre le projet → implémenter la fonctionnalité → tester → revue.
Résumé rapide des opérations
| Scénario | Commande à utiliser |
|---|---|
| Écrire une fonction | Décrivez simplement le besoin |
| Relire le code | /review ou « aidez-moi à relire... » |
| Déboguer les problèmes | Collez le message d'erreur et demandez une analyse |
| Exécutez la commande | Commencez par ! |
| Planification de tâches complexes | /plan + description de la tâche |
| Comprendre le code | « Que fait cette fonction ? » |
C'est en forgeant qu'on devient forgeron. Utiliser Codex plus souvent vous rendra plus compétent, et votre efficacité à écrire du code s'améliorera grandement.autres extensions