Migration von C# nach Python mit Claude Sonnet.

WBOY
Freigeben: 2024-09-06 06:05:16
Original
668 Leute haben es durchsucht

Migrating C# to Python with Claude  Sonnet.

Ich habe eine ziemlich herausfordernde Aufgabe übernommen. Das heißt, man nimmt einen hässlichen Unternehmens-C#-Code und übersetzt ihn in Python. Bevor ich tiefer eintauche, habe ich das Gefühl, dass ich etwas erklären muss.

Dieses C#-Projekt dient als Datenverarbeitungsschicht für einige Modelle für maschinelles Lernen. Sehen Sie, Sie hören Daten, das erste, was Ihnen in den Sinn kommen sollte, ist Python. Leider war dies nicht der Fall, und um es zu verbessern, wird die .NET-Erweiterung für Apache Spark verwendet. Die Migration auf Python ist sinnvoll, da für das Problem eine eher nicht standardmäßige Technologie verwendet wird, was die Einstellung zukünftiger Talente ziemlich schwierig macht. Und es gibt andere offensichtliche Probleme, die auch in anderen OOP-Sprachen für Unternehmen häufig vorkommen, wie mehrere Abstraktionsebenen, überall Vererbung, Umkehrung der Kontrolle, wiederum Dinge, die man bei der Datenverarbeitung nicht macht. Und um den Teufel noch mehr zu füttern, wird das ursprüngliche Team von Auftragnehmern/Beratern (denn wer sonst würde C# verwenden als irgendein Unternehmensberater) nächsten Monat gehen.

Übrigens verwende ich Neovim und Github Copilot seit fast zwei Jahren, außerdem Copilot Chat (technisch gesehen ChatGPT), seit ich die Vorschauversion in die Hände bekommen habe, also bin ich keineswegs ein völliger Neuling, wenn es darum geht kommt zu LLMs und Code.

Das Fleisch!

Wie fühlt es sich an, mit Claude 3.5 zu programmieren? Nun, es gibt einige gute, schlechte und hässliche Teile. Aber meistens haben Sie keine Ahnung, was passiert, selbst wenn Sie in der Lage sind, die gleiche Funktionalität von Grund auf zu schreiben.

Das Gute

Claude 3.5 liefert in der Regel überraschend korrekte Ergebnisse. Manchmal versucht es jedoch, intelligent zu sein, und scheitert, aber Sie können es anleiten, um die Probleme zu beheben. Insgesamt ist es ein guter Begleiter, um Fragen zu stellen, und da ich einen strengen Arbeitsablauf hatte und mir viel Mühe gegeben habe, eine anspruchsvolle Eingabeaufforderung mit vielen Beispielen und Randfällen zu erstellen, war ich mehr als zufrieden. Ich könnte einen C#-Kurs belegen und die wichtigen Teile in Python übersetzen, wofür nur sehr wenige zusätzliche Anweisungen erforderlich wären.

Das Schlechte

Normalerweise kann ich 12 Stunden lang Code schreiben, mit gelegentlichen Toilettenpausen und zum Auffüllen meiner Wasserflasche. Und ja, ich verspüre keinen Hunger, wenn ich mich richtig darauf einlasse. Mit Claude kam ich zwar in den Flow, aber nach etwa drei Stunden fühlte ich mich einfach tot. Während dieser drei Stunden habe ich zwar viel Code produziert und mich produktiv gefühlt, aber es war, als würde ich ununterbrochen Codeüberprüfungen durchführen, nach Änderungen fragen und meistens nicht in der Dokumentation nachschlagen, ob das, was generiert wurde, überhaupt gültig ist.

Hässlich

Wenn Sie ein Programmierer sind, sind Sie wahrscheinlich bis zu einem gewissen Grad mit dem Code vertraut, den Sie geschrieben haben. Diese Vertrautheit verblasst mit der Zeit, aber wenn Sie ausreichend lange mit einer Codebasis arbeiten, kennen Sie sich aus. Bei LLM-generiertem Code passiert dies einfach nicht. Ich hatte sehr wenig Verständnis dafür, was vor sich ging. Ich habe tagelang viel Code produziert, jede Zeile überprüft und von Zeit zu Zeit eine Änderung angefordert, aber am Ende hatte ich kaum oder gar keine Ahnung, was eigentlich vor sich geht. Am Ende fühlte sich die Codebasis wie ein Fremder an, etwas, das ich nicht geschrieben hatte. Und um das Ganze noch schlimmer zu machen, war der tatsächliche Codestil inkonsistent, man konnte genau erkennen, welche Dateien am selben Tag geschrieben wurden. Es fühlte sich an, als hätten verschiedene Leute es geschrieben.

Imbiss

Ich habe viel Zeit damit verbracht, diesen umfassenden LLM-Codierungsansatz zu überprüfen, zu überarbeiten und zu optimieren, aber das Ergebnis ist meistens nur Code, der einigermaßen funktioniert, aber Sie haben keine Ahnung, warum oder wie. Die große Frage ist:

Lohnt es sich, am Ende eine Codebasis zu haben, zu der man wenig Bindung hat und die sich sofort anfühlt, als hätte man sie vor einem Jahr mit einst imaginären Kollegen geschrieben?

Um es zusammenzufassen: Ich hatte zwar das Gefühl, mehr Code produziert zu haben, allerdings war die Qualität geringer als üblich. In manchen Fällen ist diese geringere Qualität gerechtfertigt, insbesondere wenn es Ihnen egal ist. Aber was ich befürchte, ist, dass die Zeit kommt, in der jede Codebasis in Rekordzeit zum „Legacy“ wird.

Das obige ist der detaillierte Inhalt vonMigration von C# nach Python mit Claude Sonnet.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!