Maison  >  Article  >  développement back-end  >  Migration de C# vers Python avec Claude Sonnet.

Migration de C# vers Python avec Claude Sonnet.

WBOY
WBOYoriginal
2024-09-06 06:05:16768parcourir

Migrating C# to Python with Claude  Sonnet.

J'ai entrepris une tâche plutôt difficile. Cela consiste à prendre un code C# d'entreprise laid et à le traduire en Python. Avant d'approfondir, je sens que je dois donner quelques explications.

Ce projet C# sert de couche de plomberie de données pour certains modèles d'apprentissage automatique. Lorsque vous entendez des données, la première chose qui devrait vous venir à l'esprit est Python. Malheureusement, ce n'était pas le cas et pour l'améliorer, nous utilisons l'extension .NET pour Apache Spark. Le migrer vers Python est logique, car il utilise une technologie plutôt non standard pour résoudre le problème, ce qui rend le recrutement de futurs talents assez difficile. Et il existe d'autres problèmes évidents, courants dans d'autres langages POO d'entreprise, comme les niveaux multiples d'abstraction, l'héritage partout, l'inversion du contrôle, encore une fois des choses que vous ne faites pas dans la plomberie des données. Et pour nourrir davantage le diable, l'équipe d'origine d'entrepreneurs/consultants (car qui d'autre utiliserait C# qu'un consultant en entreprise) va partir le mois prochain.

BTW, j'utilise Neovim, et j'utilise Github Copilot depuis près de deux ans, ainsi que Copilot Chat (techniquement ChatGPT) depuis que j'ai mis la main sur la version préliminaire, donc je ne suis en aucun cas un total débutant, quand il vient aux LLM et au code.

La viande !

Qu'est-ce que ça fait de coder avec Claude 3.5, et bien il y a des bonnes, des mauvaises et des laides parties. Mais la plupart du temps, vous n'avez aucune idée de ce qui se passe, même si vous êtes capable d'écrire la même fonctionnalité à partir de zéro.

Le Bien

Claude 3.5 a tendance à produire des résultats étonnamment corrects, cependant, parfois il essaie d'être intelligent et il échoue, mais vous pouvez le guider pour résoudre ses problèmes. Dans l'ensemble, c'est un bon compagnon pour poser des questions, et pour moi, comme j'avais un flux de travail strict et que j'ai déployé beaucoup d'efforts pour créer une invite sophistiquée avec de nombreux exemples et cas extrêmes, j'étais plus que satisfait. Je pourrais suivre un cours C# et traduire les parties importantes en Python qui nécessitaient très peu d'instructions supplémentaires.

Le mauvais

En général, je peux aller écrire du code pendant 12 heures, avec des pauses occasionnelles aux toilettes et pour remplir ma gourde en eau. Et oui, je n’ai pas faim quand je m’y mets vraiment. Avec Claude, je me suis mis dans le courant, mais après environ 3 heures, je me sentais mort. Pendant ces 3 heures, j'ai produit beaucoup de code et je me sentais productif, mais c'était comme faire des révisions de code non-stop, demander des modifications et, le plus souvent, ou ne pas rechercher la documentation si ce qui a été généré est même valide.

Laid

Si vous êtes un codeur, vous connaissez probablement dans une certaine mesure le code que vous avez écrit. Cette familiarité a tendance à s'estomper avec le temps, mais si vous travaillez suffisamment longtemps avec une base de code, vous savez vous y retrouver. Avec le code généré par LLM, cela ne se produit tout simplement pas. Je ne comprenais pas vraiment ce qui se passait. Pendant des jours, j'ai produit beaucoup de code, révisé chaque ligne, de temps en temps j'ai demandé des modifications, mais en fin de compte, j'avais peu ou pas d'idée de ce qui se passait réellement. À la fin, la base de code me semblait être un étranger, quelque chose que je n'ai pas écrit. Et pour aggraver les choses, le style de code actuel était incohérent, on pouvait distinguer quels fichiers avaient été écrits le même jour, c'était comme si différentes personnes l'avaient écrit.

À emporter

J'ai passé beaucoup de temps à revoir, repenser, peaufiner cette approche de codage LLM complète, mais le résultat la plupart du temps n'est que du code, qui fonctionne un peu, mais vous n'avez aucune idée du pourquoi ou du comment. La grande question est :

Est-ce que ça vaut le coup de se retrouver avec une base de code à laquelle vous êtes peu attaché, qui donne immédiatement l'impression que vous l'avez écrite il y a un an avec d'anciens collègues imaginaires.

Pour résumer, j'avais l'impression de produire plus de code, mais la qualité était inférieure à d'habitude. Dans certains cas, cette qualité inférieure est justifiable, surtout si vous n'y prêtez pas attention. Mais ce que je crains, c'est que le moment arrive où chaque base de code deviendra « héritée » en un temps record.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Conflits de packages PythonArticle suivant:Conflits de packages Python