近年来,生成式人工智能和大型语言模型(LLM)的兴起带来了软件开发领域的深刻变革。像ChatGPT和Claude Code这样的工具,凭借其对自然语言的强大理解能力,开始被越来越多的程序员尝试用于辅助代码编写、项目分析和功能设计。作为一名iOS开发者,我曾经对这些人工智能工具持有强烈的怀疑态度,认为它们很大程度上只是“胡说八道生成器”,会不断凭空“编造”信息以迎合用户需求。然而,经过多次尝试和深入体验,我逐渐意识到事情并非如此简单。 一开始,我对LlM工具的使用抱有很大的戒备。毕竟这些工具的核心机理是基于大量文本中的模式匹配,从现有数据中“猜测”用户想要的答案,在信息的准确性与可靠性方面并不能保证百分百无误。
特别是在创意领域,例如艺术作品的生成,我对于那些直接剽窃现有作品风格的AI表现出明显的抵触,因为这有违对原创性的尊重与保护。我更倾向于把技术当成实现自动化、减轻重复性劳动的助手,而非把AI作为复制创造的机器。正如我曾经看到的一句推文所表达的:我不需要AI复制艺术作品,我需要的是“帮我洗碗和熨衣服”的AI,让我有时间去创造真正属于我自己的艺术。 作为开发者,我最熟悉的领域是Swift编程及iOS生态中的各种框架。软件开发往往包含大量冗长的学习、测试、阅读文档、查找资料的过程,那些重复且枯燥的编码环节一旦能被AI部分替代,无疑能极大地提升开发效率。 我认识的一些开发同行,包括在苹果社区活跃的朋友,以及通过Mastodon、技术博客、播客等渠道了解的业界声音,普遍对大型语言模型表现出热情和肯定。
我虽然还没达到“大胆使用AI”的境界,但在几位朋友的推荐下,我决定尝试Anthropic推出的Claude Code。安装环境、充值实验后,我开始以一个自己开发的复杂iOS健康和健身应用项目作为测试对象。 Claude Code的第一个亮点,是它可以自动分析整个代码库,生成一份名叫CLAUDE.md的分析文档,详细描述项目结构、关键架构模式、核心模块及第三方依赖。它不仅涵盖了SwiftUI的使用方式,还包括了状态管理、依赖注入模式、HealthKit集成、Firebase服务、Shopify电商SDK的作用等,还有测试方法和配置细节。凭借这份文档,外部人员或新进开发者能够快速入门项目环境,这无疑降低了团队沟通门槛,节省了大量介绍和理解时间。 接下来,我尝试让Claude Code对项目中的某个界面DeviceDetails.swift提出改进方案,目标是实现多图水平滚动和完整产品描述的展示。
它给出的方案详细且专业,包含多个文件的变更方案,甚至提出缓存加载的机制。再让它“直接实现”,它写出的SwiftUI代码真可谓几乎完美,无论是水平滚动视图的TabView、分页指示器,还是使用@State和@Binding实现“阅读更多”按钮,都符合我对iOS开发的最佳实践。 尽管细节上仍需稍作格式调整,例如价格显示位置,我要求把价格定位固定在屏幕右下角,Claude能迅速响应并做出正确改动。这样的交互体验让人倍感欣慰,AI辅助编程不再是天边的云彩,而是真正落地的工具。 然而,当我将需求升级到购物车和支付流程构建时,问题开始显现。AI对复杂业务逻辑和SDK调用的理解开始出现偏差,它在使用Shopify Buy SDK时错误地引用了不存在的类型Checkout,而该版本实际上以Cart类型为核心。
导致最初生成的代码充斥20多个编译错误。好在Claude能够按照我提供的文档链接重新学习SDK规范并进行修正,最终完成了正确的类型调用和功能实现。尽管如此,在处理GraphQL查询时它的代码结构仍显杂乱,需要我逐段指出错误才得以修复。 这次合作体验显示了大型语言模型辅助编码的双重面貌。一方面,它能快速产出符合逻辑的代码框架,大大节省开发起步时间;另一方面,它也容易陷入对API文档细节理解不够深入导致的错误,需要开发者具备扎实的领域知识及调试能力来甄别并修正。换言之,AI是一个加速器,绝非全能救星。
就支付了五美元试用费和一百多美元订阅费的价值而言,我觉得物有所值,毕竟它所带来的生产力提升和省力效果是显而易见的。对我个人而言,能将过去困扰我的重复性琐事用自动化工具解决,腾出更多精力去思考创意和架构方案,这是巨大的进步。 在项目之外,我还尝试利用Claude生成个人博客的归档功能。博客基于Hugo静态站点生成器,之前一直没有时间钻研生成按年份归档的配置和代码,它只需简单描述需求,稍加指引,很快帮我完成了令人满意的成果,甚至修复了之前困扰多时的Jekyll代码渲染错误。 综合来看,虽然我仍然对生成式人工智能存在怀疑并保持审慎态度,但在实际应用中,逐渐领悟到AI与人类开发者更像是互补而非替代关系。AI擅长快速产出代码骨架、完成重复性任务、梳理复杂项目结构,而开发者则负责逻辑判断、创新设计和错误校验。
对于所有软件开发者而言,理解AI工具的优势及限制,掌握正确使用方法,保持对结果的怀疑精神,才是驾驭这些新兴技术的关键。疯狂依赖或者完全拒绝都不是明智之举。 未来几年,随着大型语言模型的持续进化和行业规范的完善,AI辅助开发工具必将成为开发生态中不可或缺的一环,为开发者提供从项目初始化、模块设计到代码生成、测试自动化的全流程助力。我们需要做的,是积极拥抱变化,理性评估效益,在实践中不断优化人机协作模式,实现真正的开发效率跃升。 作为一名开发者,我愿意将更多时间花在创作独具匠心的软件体验上,剩下的繁琐细节让AI帮忙清理。这样才能让技术回归服务人类创造的本质,推动软件行业走向更加智慧与高效的未来。
。