肇鑫的日常博客

日常

AI辅助编程,使用图形还是命令行?我当前的看法

我是一名苹果设备的开发者,我开发过iOS、macOS、watchOS以及visionOS的应用。

大家可能注意到最近两周我提交到Copilot Xcode的bug变少了,这是因为我开始尝试使用命令行的方式编程。经过这段时间的使用,我发现二者各有优缺点。从长期来看,我认为图形界面的胜算更大,但是短期内它的缺点让我远离它。

下面我说的优缺点都是针对Copilot的亲自使用。一个是Copilot CLI,一个是GitHub Copilot for Xcode。

命令行方式的优点

更自由

命令行通常可以访问磁盘的全部空间,甚至可以帮助不熟悉使用的用户修改自己的配置文件。

使用命令行时,不必一直保持Xcode的窗口在最前。因此,可以利用这个时间多开几个窗口,或者干一些其他的事情。比如说刷刷X。图形界面就不行,它必须保证Xcode的在最前。如果不在最前,它就会不停的把它切换到最前。我之前反映过这个问题,开发者认为,会影响到其他的一些功能的实现。但是我觉得至少应该提供个选项来打开或者关闭这种吧。比如说让图形界面更接近命令行的方式。

更少的打断

使用图形的时候经常遇到打乱,一般是上下文不足。但是使用命令行的时候,从来没有遇到过类似的事情。命令行的中断往往是网络造成的,或者是配额超限造成的。

图形方式的优点

更简单的划定范围和指定区域

图形方式可以直接获得当前的文件,因此上下文更加简洁。AI往往可以在第一时间找到自己需要修改的内容。这一点是命位行方式无法比拟的。命令行要做到这一点,需要在复制粘贴之间反复切换。先复制文件名,然后再粘贴到命令行上。这个步骤虽然简单,但是很繁琐。远远没有通过鼠标点击那么简单。而且图形界面这种操作是自然而然的,不必特意去操作。

而如果在命令行下,你没有提供具体的文件信息,它就会在项目中整体的搜索,往往会花费更长的时间。甚至有时都找不到。

阻止我继续使用命令行,而不是图形的原因

长期以来,存在一个一直未解决的问题。就是图形界面下经常会写错文件。明明应该修改A的文件的内容,但是却将全部内容写入到了B文件中,并将B文件覆盖。这个问题我已经提交很久了,但是一直也没能修复。而这个问题可比上面提到的命令行的缺点要难以忍受的多。

以上就是我对这个问题的一些简单的看法。欢迎大家讨论,提出更好的意见和建议。

一起自建Trojan服务器经常断联问题的解决过程

这两天我的Trojan非常不稳定,经常断连。比如昨天下午开始一直到晚上都不行。今天凌晨3点多好了,结果6点多又不行了。一直到刚刚,我决定看看到底是什么原因,能否自己修复。

遇事不决问AI

我先将我的困境描述给了AI。

  • trojan服务通过nginx代理,nginx的443端口访问正常,正常的https能访问,之前trojan也一切正常。但是最近两天经常有部分时段trojan就不能用了。这是什么原因?

AI给出了五条可能的主要原因:

  1. 运营商或防火墙干扰
  2. Nginx 配置问题或代理条件变化
  3. Trojan 后端服务自身问题
  4. 证书自动续签/变更导致短暂异常
  5. 攻击或扫描压力过大

我最担心的其实是第一条,因为对于这条我自己无能为力。AI同时提供了排查的顺序。

我选择首先排查trojan的状态。很幸运,这里面就有几个错误。我把日志发给AI。

status trojan
● trojan.service - trojan
     Loaded: loaded (/etc/systemd/system/trojan.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-09-09 10:16:44 UTC; 15h ago
       Docs: https://trojan-gfw.github.io/trojan/config
             https://trojan-gfw.github.io/trojan/
   Main PID: 859 (trojan)
      Tasks: 2 (limit: 1005)
     Memory: 144.2M
        CPU: 12.064s
     CGroup: /system.slice/trojan.service
             └─859 /usr/local/bin/trojan /usr/local/etc/trojan/config.json

Sep 10 01:52:23 vultr trojan[859]: [2025-09-10 01:52:23] [INFO] 127.0.0.1:55918 authenticated as 7ac54067666
Sep 10 01:52:23 vultr trojan[859]: [2025-09-10 01:52:23] [INFO] 127.0.0.1:55918 requested connection to www.gst>
Sep 10 01:52:24 vultr trojan[859]: [2025-09-10 01:52:24] [INFO] 127.0.0.1:55928 authenticated as 7ac54067666
Sep 10 01:52:24 vultr trojan[859]: [2025-09-10 01:52:24] [INFO] 127.0.0.1:55928 requested connection to e7.i.le>
Sep 10 01:52:32 vultr trojan[859]: [2025-09-10 01:52:32] [INFO] 127.0.0.1:36566 authenticated as 7ac54067666
Sep 10 01:52:32 vultr trojan[859]: [2025-09-10 01:52:32] [INFO] 127.0.0.1:36566 requested connection to www.goo>
Sep 10 01:52:42 vultr trojan[859]: [2025-09-10 01:52:42] [ERROR] 127.0.0.1:55762 cannot resolve remote server h>
Sep 10 01:52:42 vultr trojan[859]: [2025-09-10 01:52:42] [INFO] 127.0.0.1:55762 disconnected, 0 bytes received,>
Sep 10 01:53:02 vultr trojan[859]: [2025-09-10 01:53:02] [ERROR] 127.0.0.1:55792 cannot resolve remote server h>
Sep 10 01:53:02 vultr trojan[859]: [2025-09-10 01:53:02] [INFO] 127.0.0.1:55792 disconnected, 0 bytes received,>

AI也发现了这个错误,并分析说“也就是说,Trojan 运行没问题,但访问网站时遇到了 DNS 解析失败。这点非常关键!”

AI进一步分析:

  • VPS供应商自身DNS故障(Vultr、搬瓦工等偶有发生)。
    • /etc/resolv.conf 中DNS服务器填错,或者被systemd-resolved之类自动修改导致的DNS挂掉。
    • 本地防火墙或iptables阻断了外发的53端口。
    • 系统资源紧张(低内存、负载高)可能导致系统进程异常,systemd-resolved或dnsmasq死掉。

知道了原因,解决就很简单了。重启DNS服务和Trojan,故障解决。

一例特殊的Windows笔记本变卡问题的解决

最近前同事的电脑变卡了,说是电脑的C盘太满造成的,她想把用户文件夹从C盘移动到D盘,问我可不可以我?我说不行,不能那么做。我以为是她的照片视频过多造成的,因为我记得她的iPhone里有很多照片和视频,而她不习惯删除。前同事陪女儿在加拿大念书,我和她约了她方便的时间,进行电脑连线。

因为远程协助存在延迟,并且同样不同获得需要系统权限的操作,我们选择屏幕分享的方式,她来操作,我观看她的操作,语音进行指挥。

看了一下,C盘总计200GB,剩余不到8GB,Windows显示磁盘占用为红色。

原本我想着只是磁盘空间不足的问题,但是实际使用中发现电脑速度非常慢,异乎寻常的慢,不正常的慢,在我的电脑上几秒钟就能查完的磁盘清理,在她的电脑上,需要几十秒到几分钟。我用任务管理器来看她的CPU是intel的11代的处理器,频率为2.4 GHz,但是实际运行的只有0.39 GHz。

我以为是她没有插电源,问她,她说插了,然后我让她将系统设置,电源和电池中的电池规划,从默认平衡改成性能优先,结果还是没有恢复,重启也还是依旧。

因为电脑型号是联想小新Air,于是我用“联想笔记本 0.39GHz 锁频”来搜索。搜索到了一篇知乎的文章,说是这个是Windows的休眠bug导致的。Windows 10或者11休眠之后,可能导致CPU会错误锁定较低的频率不恢复。并且即便使用Windows本身的重启功能重启系统,也没有用,因为休眠之后有残留数据被保留了。正确的解决办法是在Windows打开的时候长按笔记本上的电源按钮,强制关机,这样残留数据就会清空,故障就会消失了。

这么做之后,果然系统速度恢复了。可以在任务管理器中看到平时使用时的CPU频率恢复到了1.x GHz。

之后安装了腾讯电脑管家,用它的清理功能清理出来40G的空间。然后使用Windows自带的清理功能,又删除掉20G左右的Windows安装的临时文件。这样200G的C盘就有60G以上的剩余空间。

结论

虽然C盘过满会导致系统运行速度下降,但是如果速度异乎寻常的慢,就需要考虑是否还有其它的可能性。可以使用任务管理器或者性能监视器,观察系统每个组件的性能,比如常见的就是CPU、内存和磁盘。CPU速度,内存占用,磁盘占用和磁盘速度。我自己的七彩虹组装机,配的金士顿硬盘速度就有问题,经常占用100%,导致系统缓慢。

另外,磁盘清理软件,免费的腾讯电脑管家的清理功能就很好用了。不必再找其它第三方的软件了。

最后,Windows安装的临时文件,要清理,一定要使用Windows自带的清理,手动删除会提示缺少权限,删除不干净。不过Windows改变了清理应用的调用位置,以前从磁盘属性,工具里可以直接调用,现在需要在搜索里输入“清理”来搜索到这个工具。并且默认是不扫描windows安装的临时文件的,需要运行时选择管理员权限,然后在点击搜索系统文件,这样才会出现。