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 d'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.
Qu'est-ce que ça fait de coder avec Claude 3.5, eh 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.
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.
Je peux généralement 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. Au cours de 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.
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.
J'ai passé beaucoup de temps à revoir, repenser, peaufiner cette approche complète de codage LLM, 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 :
Vaut-il la peine 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 un « héritage » en un temps record.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3