我承擔了一項相當具有挑戰性的任務。也就是說,將一些醜陋的企業 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 編碼方法,但大多數時候的結果只是程式碼,這在某種程度上有效,但你不知道為什麼或如何。最大的問題是:
最終得到一個你幾乎沒有依戀的程式碼庫是否值得,它立即感覺就像你一年前與一次想像中的同事一起寫的。
總而言之,我確實覺得我產生了更多程式碼,但品質比平常低。在某些情況下,這種較低的品質是合理的,特別是如果您不在乎的話。但我擔心的是,時間即將到來,每個程式碼庫都將在創紀錄的時間內成為「遺產」。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3