Cursor 是个好工具,许多人都在推荐,许多开发团队都在使用,多行补全、跨文件生成等各种功能确实可以提高我们的开发效率。但是在在深度使用之后,我还是用回了最初的编辑器+Claude Pro 模式。
首先,同样都是使用 claude 3.5 sonnet,在 Cursor 中与 Claude Pro 上面,大多数时候表现是非常类似的。但是可能是两者对于代码查询和上下文分析的方式不同,当碰到一个比较长段代码,比较复杂的关联关系,或者一些旧项目比较复杂代码的时候,Cursor 上面 Claude 3.5 sonnet 的表现明显不如 Claude Pro 来的更加干脆。
对于新项目,没有历史包袱和各种约束,Cursor 可以使用各种方式根据进行开发,创建各种文件等。但是,当碰到一些需要考虑各种当前情况的项目时候,如果自己不去理清思路,找到问题的源头究竟在哪里,一味地希望通过 Cursor 直接解决问题,可能生成代码、测试,然后继续,重复很多次,也得不到想要的答案。 但是如果使用 claude Pro 的话,你需要明确地告诉 Claude 你的上下文,你的问题是什么,反而更加容易找到答案。
# 编程是否进入自动驾驶时代?
自从大模型问世开始,尤其是 ChatGPT 的出圈开始,就有很多程序员什么时候被取代的讨论,以及什么样的程序员最先被取代的问题。
不可否认,目前大模型的发展速度非常快,如果给出确定的需求,大模型编程可以完成比大多数程序员更好的代码和程序。但是,编程真的因此就进入到人人都可以编程的时代了吗?笔者认为远远未达到。
以 Cursor 为代表的很多智能 AI IDE 正在蓬勃发展,许多人因此也不在重视自身编程本身能力的提高。 但是事实上,真正操作起来,远远没有达到许多自媒体视频宣称的那样,动动手指就可以开发出一个完整的项目。随着项目规模越大,面临的实际问题也会越来越多,想要驾驭 Cursor 这样的工具,通常你需要与它相当甚至高于它的水平和能力,最起码在整个大的框架的把握能力是需要高于它的,否则当面临一些真正的问题的时候,就会出现无法解决的时候。
就像目前许多汽车都宣称可以自动驾驶,但是依然需要人类驾驶员去监督和给出指令,当遇到危险的时候,需要及时接管,否则可能会出现不可预料的后果。而软件开发会遇到各种各样的问题,比自动驾驶这样通用的问题要更加的复杂和不可预测。
在使用 Cursor 的过程中,我们经常会假定它已经理解了当前上下文的所有情况,比如直接 @codebase 或者 @file ,就认为它已经获知了某个文件甚至整个项目的所有代码,并且已经完全理解了。让它去完成指定的某个具体任务,但是其结果可能跟我们期望的结果是有一定的偏差的。
在使用 Claude pro 过程中,不使用 Claude的 filesystem MCP Server,直接手动给它相关的上下文,并且对问题进行描述,在这个过程中,自己经过了一定的思考和权衡,并且对问题有个具体的描述,反而更容易得到想要的答案。
# 更高效的方式,理解并消化AI生成的代码
经过多个项目的尝试,笔者发现,更高效地利用 AI 编程的方式,并不是一味地给AI 发送指令,让其完成任务。首先要做的,是需要做的是对要写的代码语言等有个初步的认识和了解,哪怕不是非常精通,但是要做到对于 Cursor 或者 Claude 生成的代码最起码自己能看懂,能清楚整个流程是什么样的。
在遇到AI 写出来的代码不太清楚的时候,这时候要发挥它测特长,让其对相关代码进行详细讲解和解释,让自己真正地去理解它。
虽然这种做法在刚开始相对于直接不去理解直接完成功能显得不是那么高效,甚至有些缓慢,但是当一步步理解并掌握之后,对后面的开发速度提升是飞快的。相反,如果只管进度不去真正消化和理解,当项目稍微大一些,遇到更多的代码,碰到多一些的问题,就很容易碰到 AI 无法解决,但是自己又完全不知道从什么地方下手的尴尬局面,此时想从头理解,就显得非常困难。
# Cursor 和 Claude pro,永远都是工具属性
AI 程序员的概念其实非常地不显示。AI 大模型,也永远都只是工具的定位。
我们都知道,AI 生成内容,是要有具体的上下文,是要有学习的内容。它的优势在于计算机算法的强大,但是整个过程在默认人的学习方式。在 AI 大模型问世的时候,许多人用它去问一些惊世骇俗的哲学问题,其实显得很荒谬。
它虽然能像人一样回答问题,但是本质是从自己所学习的内容进行一个相似度的推演。它的学习内容绝大多数也是各种网络上人们发布的内容,文字、声音、图像等,并且语言大模型最初也只是文字类的。
所以,在大模型“它”的世界里,只是人类灌输的这些类容,进行一些算法上面的优化、提取、整理等等。 相比而言,对于“人”本身,如果把人也看做一个人工智能机器,人的信息来源则要多得多。人可以“听到”、“看到”、“闻到”、“感觉到”,人身体的每一个部位,每一寸皮肤都是一个非常先进和精密的传感器,无时无刻不在感受和理解这个世界,人所能接受到的这个世界的信息是更加的完整和全面的,并且,人还有“意识”这种目前无法解释的能力。
所以,以目前 AI 大模型的发展方向,它可以帮助我们在某个领域解决一部分问题,但是永远也没有办法取代人的存在。
# 结语
基于对大模型的认知,我的倾向是自己要更多对代码以及项目进行把控,而不是把更多的权限交给 AI 去操作。 作为一个提高开发效率的工具,Cursor 和 Claude 本身都是非常棒的,但是绝对不能过多的依赖,觉得有了它们就可以无所不能。