使用 Claude Sonnet 將 C# 遷移到 Python。
我承擔了一項相當具有挑戰性的任務。也就是說,將一些醜陋的企業 C# 程式碼轉換為 Python。在深入探討之前,我覺得我需要做一些解釋。
這個 C# 專案充當某些機器學習模型的資料管道層。聽到數據,你首先想到的應該是Python。不幸的是,情況並非如此,為了讓它變得更好,它使用了 Apache Spark 的 .NET 擴充功能。將其遷移到 Python 是有道理的,因為它使用相當非標準的技術來解決問題,這使得招募未來的人才相當困難。還有其他明顯的問題,在其他企業 OOP 語言中也很常見,例如多層抽象、無所不在的繼承、控制反轉,以及您在資料管道中不做的事情。為了進一步助長魔鬼,原來的承包商/顧問團隊(因為除了一些企業顧問之外,還有誰會使用 C#)將於下個月離開。
順便說一句,我使用Neovim,而且我已經使用Github Copilot 近兩年了,自從我拿到預覽版本以來,我也使用Copilot Chat(技術上是ChatGPT),所以我絕不是一個完全的新手,當它涉及法學碩士和代碼。
肉!
使用 Claude 3.5 編碼感覺如何,有好的、壞的和醜陋的部分。但大多數情況下,即使您能夠從頭開始編寫相同的功能,您也不知道發生了什麼。
好的
Claude 3.5 往往會產生令人驚訝的正確結果,但是,有時它會嘗試變得聰明,但會失敗,但您可以指導它解決問題。總的來說,它是提問的好夥伴,對我來說,因為我有嚴格的工作流程,而且我確實付出了很多努力來製作帶有大量示例和邊緣情況的複雜提示,所以我非常滿意。我可以學習 C# 課程並將重要部分翻譯成 Python,只需要很少的額外說明。
不好的
我通常可以寫 12 小時的程式碼,偶爾上廁所,補充我的水壺。是的,當我真正投入其中時,我不會感到飢餓。和克勞德在一起時,我確實進入了心流狀態,但大約三個小時後,我感覺死了。在這3 小時內,我確實生成了很多程式碼,並且感覺很有成效,但這就像不停地進行程式碼審查、要求更改,而且大多數情況下,如果生成的內容有效,則不會查找文檔。
醜陋的
如果您是編碼員,您可能在某種程度上熟悉您編寫的程式碼。這種熟悉感往往會隨著時間的推移而消失,但如果您在程式碼庫上工作了足夠長的時間,您就會熟悉周圍的情況。使用 LLM 產生的程式碼,這種情況就不會發生。我對發生的事情知之甚少。幾天來,我確實編寫了很多程式碼,審查了每一行,時不時地要求進行一些更改,但最終我幾乎不知道到底發生了什麼。最後,程式碼庫感覺就像一個陌生人,不是我寫的。更糟的是,實際的程式碼風格不一致,你可以告訴appart哪些檔案是同一天寫的,感覺像是不同人寫的。
外賣
我花了很多時間來審查、重新設計、調整這個完整的 LLM 編碼方法,但大多數時候的結果只是程式碼,這在某種程度上有效,但你不知道為什麼或如何。最大的問題是:
最後得到一個你幾乎沒有依戀的程式碼庫是否值得,它立即感覺就像你一年前與曾經想像中的同事一起編寫的。
總而言之,我確實感覺自己產生了更多程式碼,但品質卻比平常低。在某些情況下,這種較低的品質是合理的,特別是如果您不在乎的話。但我擔心的是,時間即將到來,每個程式碼庫都將在創紀錄的時間內成為「遺產」。
以上是使用 Claude Sonnet 將 C# 遷移到 Python。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。
