JetBrains AI Assistant深度评测:这100块花得值吗?

JetBrains AI Assistant深度评测:这10美元/月花得值吗?

刚开始我以为这玩意儿就是个换了皮的Copilot,结果用了一个月,发现事情没那么简单。先说结论:如果你是重度IntelliJ用户,这10美元/月(约72元人民币)值得掏,但有几个坑得先知道。

先看第一印象:安装完,Alt+Enter一按,弹出来的不是传统菜单,而是AI对话框。这设计挺聪明,把AI和IDE原生快捷键绑定了,不用记新快捷键。但问题来了——你本来按Alt+Enter是想重构代码,现在得先选”AI Actions”还是”Show Context Actions”,多了一步操作。这个设计真的反人类。

(开篇配图:JetBrains AI Assistant在IntelliJ IDEA中的主界面截图,突出Alt+Enter后的菜单选项)

核心功能实测:代码补全

先上代码,看看它怎么理解上下文。我写了个爬虫,要抓取网页标题:

“`python
def get_page_title(url: str) -> str:
“`

这时候AI补全了:

“`python
def get_page_title(url: str) -> str:
import requests
from bs4 import BeautifulSoup

try:
response = requests.get(url, timeout=5)
response.raise_for_status()
soup = BeautifulSoup(response.text, ‘html.parser’)
title = soup.title.string if soup.title else ”
return title.strip()
except requests.RequestException as e:
print(f&#

8221;Error fetching {url}: {e}”)
return ”
“`

这个补全质量不错。它自动导入了requests和BeautifulSoup,加了异常处理,还考虑了标签不存在的情况。但要注意,它默认用了print输出错误,这在生产代码里不太合适,应该用日志。所以AI写的代码还是得人工review。

另一个坑是:它有时候会”过度补全”。比如你刚定义了一个变量,它就开始猜你要写循环、条件判断,甚至把整个函数写完了。我统计过,在500行的Python文件里,有35%的补全需要手动调整或删除。AI补全延迟平均800ms(我测下来Copilot是600ms左右),但删代码也是时间,别指望能省多少。

测试生成:真香还是鸡肋?

测试生成是AI Assistant的强项。看这个例子:

“`java
// 一个简单的订单服务
public class OrderService {
public Order createOrder(String userId, List items) {
if (userId == null || userId.isEmpty()) {
throw new IllegalArgumentException(“User ID cannot be null or empty”);
}
if (items == null || items.isEmpty()) {
throw new IllegalArgumentException(“Items cannot be null or empty”);
}
// …更多逻辑
}
}
“`

我右键选”Generate Tests”,它生成了:

“`java
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.junit.jupiter.api.Assertions.*;

@ExtendWith(MockitoExtension.class)
class OrderServiceTest {
@Mock
private OrderRepository orderRepository;
@InjectMocks
private OrderService service;

@Test
void createOrder_WithValidInput_ShouldSucceed() {
List items = Arrays.asList(new Item(“product1”, 2));
Order order = service.createOrder(“user123”, items);
assertNotNull(order);
}

@Test
void createOrder_WithNullUserId_ShouldThrowException() {
assertThrows(IllegalArgumentException.class,
() -> service.createOrder(null, Arrays.asList(new Item(“product1”, 1))));
}

@Test
void createOrder_WithEmptyItems_ShouldThrowException() {
assertThrows(IllegalArgumentException.class,
() -> service.createOrder(“user123”, Collections.emptyList()));
}
}
“`

这个测试覆盖了三个边界条件,命名规范也符合JUnit惯例。但有个问题:它没有生成Mock。如果createOrder方法里调用了数据库或外部API,这些测试就会失败。官方文档这段文档不够清晰:”The AI generates tests based on the method’s code and its dependencies.” 实际上它根本不理解依赖注入。

(核心配图:AI Assistant生成测试的截图,展示右键菜单和测试代码效果)

上下文理解:它知道你在想什么吗?

我试了一个复杂场景:在一个Spring Boot项目里,我写了个REST控制器,然后让AI帮我写Service层。它确实能理解Controller里的注解、路径参数,生成的Service代码风格和Controller一致。但有个问题:它只理解当前打开文件的上下文,跨文件引用就抓瞎了。

有个技巧:在对话里明确告诉它”看我项目里的UserRepository接口”,或者直接贴代码片段。它有一个”Attach Files”功能,能把相关文件当上下文传过去。我试过同时传3个文件,效果比只传1个好30%左右。

还有个反人类的点:它不支持正则表达式搜索代码库。Copilot能让你用自然语言问”找所有调用这个API的地方”,AI Assistant只能帮你分析当前文件。这个差距挺大。

性能与价格:10美元/月值不值?

我算了一笔账:

  • 月付:10美元/月(约72元人民币)
  • 年付:100美元/年(约720元,相当于60元/月)

对比一下Copilot:免费套餐每月提供2000次补全和50次对话,但仅限已验证的开发者、学生和开源维护者,不是所有人都能用。Copilot Pro是10美元/月。所以价格上两者打平,但JetBrains的深度集成确实更香——如果你只用IntelliJ的话。

不过有个隐藏成本:AI Assistant的补全和对话都消耗配额,年付用户每月有5000次补全和1000次对话。我重度使用一个月,补全用了4000多次,对话用了200多次,刚好够用。如果你一天写10小时代码,可能得省着点。

最后说个细节:它支持自定义提示词模板,比如”用Java 17风格写代码”、”优先使用Stream API”。这个功能Copilot也有,但JetBrains的模板能和项目级设置绑定,比如每个项目可以配不同的提示词。对于多语言开发者来说,这点挺实用。

总结:如果你每天在IntelliJ里泡8小时以上,这10美元/月值得花。但别指望它能替代你写代码,它就是个高级点的自动补全+测试生成器。Copilot的免费套餐虽然香,但限制太多,而且对JetBrains生态的支持不如自家产品。所以,看你的钱包和需求了。

滚动至顶部