一个观点:人工智能对现有开发者的影响
从关键字内容上看,人工智能(AI)在当前的开发人员中发挥着至关重要的作用,包括我自己。问题是:它对我们有好处吗?是的,这取决于我们如何使用它。我可以向你保证,只有在正确的方式下使用,人工智能才会有所帮助。更具体地说,我需要谈一谈人工智能生成的代码,这对科技行业来说既是一种恩赐又是一个挑战。我想分享一下我的看法。让我们深入探讨一下...
从开发者到调试者的转变
AI产生的代码被广泛使用的一个显著后果是很少有开发者将这些代码片段复制粘贴到他们的项目中。起初,这似乎是省时的;然而,从我的角度来看,实际上并非如此。(欢迎您的评论。)AI生成的代码可能并不总能完全符合您的要求(可能会导致一些错误,或者生成的算法可能会很慢)。在这种情况下,随着开发者角色的转变,他们发现自己承担起了调试器的责任,以解决AI生成的代码引起的复杂问题。
的确,调试代码通常被证明比其最初的创建更具挑战性。与常见观点相反,调试并不是一项直接快速的任务。当涉及到调试由人工智能生成的代码时,它要求对项目规格要有深入的理解,同时也需要了解开发过程中使用的技术堆栈。
因此,这种转变可能会导致完成项目所需的总时间比从头开始建立项目要长。
一个例子:AI生成的代码与人工编写的代码的对比
我已经拿了一个中等难度的LeetCode问题,问了一下流行的AI模型ChatGPT-3.5来解决它,结果它给我找到了一个解决方案。幸运的是,这个解决方案对所有的测试案例都有效。不过代码的问题是效率。AI生成代码的运行时间为1毫秒(只超过了9.11%的Java用户)。
试图通过调试和修改由AI生成的逻辑来提高运行时速度,证明是一项耗时的任务。因此,我决定自己动手,设计了一个算法来超越现有的解决方案,提供更高效的替代方法。此外,我找到了一个运行时间为0毫秒的更好的解决方案(超过了100.00%的Java用户)。
注意:我使用了一个小示例来解释这一点,但在实际项目中,使用由AI生成的代码要困难得多,尤其在经过广泛调试以解决生成代码中可能出现的任何复杂性之后。
那么,如何正确地使用人工智能呢?
- 使用基于AI的IDE插件或工具,根据上下文提供智能代码建议和自动完成。
- 将AI集成到自动化测试过程中,以识别测试场景,生成测试用例并预测可能的失败区域。
- 使用人工智能辅助撰写和更新文档,确保其清晰、简洁,并遵循最佳实践。
- 使用人工智能来理解和学习与您的项目相关的新编程语言、框架或工具。(即使对于这一点,我更倾向于使用官方文档。)
- 请求AI对你的代码进行反馈,以识别潜在的改进和最佳实践。
等等...
底线:
总结一下,将人工智能整合到开发流程中,可以为开发人员提供提高生产力和代码质量的机会。然而,关键在于负责地使用人工智能,将其视为一种支持性工具而非代替核心技能的工具。人类专业知识和人工智能能力之间的协同作用是软件开发创新和效率的关键。
"培养人工智能作为一种合作伙伴,而不是替代品"