使用 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 则以高性能和底层控制能力闻名。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。
