同事离职,其中一个项目被塞到我手里,说是主要逻辑都是用 AI 写的,然后有需求要改。我一看代码就想骂这个 AI:这一个代码文件一千多行,业务层和 api 层混在一起,你是怎么脸不红心不跳写成这样子的?生气之余不由得想到一个问题,就是如果程序员完全不关注设计,任由 AI 想怎么写就怎么写,全盘接受(当然也只有全盘接受,程序员才能表现出产出的明显提升),作为技术负责人会是什么看法?如果技术负责人也全盘接受,那是不是说明技术负责人这个岗位也被 AI 拉下去,变得更容易被替换了?
同事离职,其中一个项目被塞到我手里,说是主要逻辑都是用 AI 写的,然后有需求要改。我一看代码就想骂这个 AI:这一个代码文件一千多行,业务层和 api 层混在一起,你是怎么脸不红心不跳写成这样子的?生气之余不由得想到一个问题,就是如果程序员完全不关注设计,任由 AI 想怎么写就怎么写,全盘接受(当然也只有全盘接受,程序员才能表现出产出的明显提升),作为技术负责人会是什么看法?如果技术负责人也全盘接受,那是不是说明技术负责人这个岗位也被 AI 拉下去,变得更容易被替换了?
1
413420 5h 23m ago
要么按照你的古法编程偏好来,要么适应 ai 的工作风格,这是在接下来 36 天所有人都需要适应的过程
|
2
bojue 5h 6m ago
感觉现在很正常了,前端+接口+后端 流程交互流程还是没有大概得情况下
大概率变成了:前端( AI 黑盒子)+接口+后端( AI 黑盒子) 用不完的 token 可以慢慢重构下:提示优化代码逻辑,提高可维护性或者整理好模版模块,让 AI 参考重构 |
3
tomchen 4h 56m ago via Android
可以不判断把控,但你要判断把控一下你要不要判断把控:
AI 有好有坏,写出来的质量差别巨大。你可以不对生成的结果进行大幅度的判断把控,但是在此之前,你至少综合是什么 model 写的,代码、架构和产品设计的总体观感等,来判断一下你要不要判断 顶楼的文字看起来楼主就显然已经判断出了,对这个项目,这个 AI 不怎么样,必须进行判断把控。假如用 fable/astra 弄个中小型的不算太复杂的项目,通常可以不进行大幅把控 |
4
zuokanyunqishi 4h 53m ago
果程序员完全不关注设计,任由 AI 想怎么写就怎么写 .那程序员就该淘汰了....
|
5
meetyuan 4h 47m ago 新型不可能三角: ( AI ) (快) (质量)
|
6
winnerczwx 4h 37m ago 这显然是人的问题, 也是管理问题. 现在的 AI 作为实施者已经足够了, 但系统设计和系统架构还是需要由人来把控. 能把这种后端代码提交上去说明 review 层面是有问题的. 后端作为系统业务的核心搞的如此草率?
总说 AI 会带来失业, 这种没责任心的人不失业谁失业? 换句话说, 这种人还能有工作才是对有责任心的人最大的不公平 |
7
keenkiller 4h 29m ago
你可以让 AI 重构啊
|
8
7opkk 4h 25m ago
哈哈,代码洁癖, 我也喜欢将代码输出成我想象的样子。 共勉
|
9
cabing 4h 19m ago
程序员要做的就是做好设计和审查了。。
|
10
Chengyunlai 4h 11m ago
AI 很听劝,人不是
|
11
hack765643729 3h 53m ago
用 ai 写代码先提供架构设计文档, 没有的话 ai 编写出意大利面式的代码很正常
|
12
ldy619354397 3h 51m ago
你可以让 AI 重构,不过能跑起来就不要去动了
|
14
meteora0tkvo 3h 44m ago
而且这种不注重设计的代码,往往藏有很多隐患,你稍微改一点逻辑,它就会引发很多 bug (即使你用地表最强 ai 去改)
|
15
413420 3h 41m ago
@xusp 这个帖子的 17 楼会回答你的疑惑 https://v2ex.com/t/1242441
|
17
helloworld19 3h 39m ago
代码是 AI 写的,但是审美是自己的
|
18
xue777hua 3h 28m ago
"我关注的是这个情况是怎么产生的" 大部分,只是糊口混个饭吃。
如果你是基于这个想法,你也会这样的,因为这就是 "糊口" 对于你的建议是: - 不要随便接手来路不明的代码,就像不要接陌生人的电话一样。 - 如果真的要接了,不要看代码,而是搞清楚需求,直接重写。 |
19
renyijiu 3h 27m ago
我们技术栈约束了使用 proto 定义接口,所以 proto 和 model 层定义我会 review ,具体的实现代码已经基本不看了。算是真的实现了老板以前的要求,接口是对外的,要有规范,代码实现可以随便替换😂
|
20
faceRollingKB 3h 24m ago
现阶段必须把控,AI 还不能理解每个项目在设计上的取舍边界,放任下去一堆用不着的过度设计,要么就是完全不看现有设计,迟早有一天它修不了的 bug 丢给我我得崩溃
|
21
cuihua 3h 22m ago
我完全不看代码如何写的了。
我现在是只跟 ai 讨论,并用 OpenSpec 记录已经明确的需求和设计。有时候 ai 太过严谨,反复 grill 我,我就会让它自行实现。等发现问题再修订 openspec |
22
meteora0tkvo 3h 21m ago
@bojue #2 如果不是很熟悉业务功能,基本没人敢去重构整个系统或者某个大功能模块的代码。
|
23
panlatent 3h 21m ago
目前算是独立开发吧,功能基本全交给 AI 了,只把控设计,定期收束整理代码。
|
24
zhaoziling 3h 20m ago
去年,我还 review 一下 AI 写的代码,一点点打磨
今年我大部分时候只 reviewAI 写的文档,基本文档合意,就直接让实施了,让他自测/用别的 AI 复测,只把控能实现需求了 |
26
SoyaLeaf 3h 13m ago
我个人感觉只有玩具级的项目可以全盘交给 AI ,持续迭代的产品如果完全交给 AI ,一定会失控的。
AI 的注意力有限,有时候局部最优解并不是全局最优解,一味信任 AI 可能最后会走进死胡同,频繁的拆东墙补西墙。 |
27
foryou2023 3h 10m ago
用的什么 ai 写的?
|
28
NoKey 3h 7m ago
典型的,放任 ai 来写,完全不 review ,只要能跑,只要能过用例就行,有问题,直接告诉 ai 什么问题,ai 自己改,也就是开发从头到尾没有看过代码是怎么实现的
也就是现在 ai 出现了,拯救了部分这类开发人员,说白了,在这个过渡期,不是 ai 革了程序员的命,是 ai 救了不少人~ |
31
V2Try 2h 46m ago via iPhone
随着 AI 的不断发展与进步,这种恶性事件会越来越少
|
32
jackerbauer 2h 41m ago
但是可以确定是 AI 比大部分程序员都要写的好
|
33
woodfizky 2h 41m ago
你很容易就能发现,在 AI 出现之前,这些问题就已经存在了,只不过一般不是程序员大头兵的视角能够发现的。
从技术经理或者项目经理的视角出发,经理本身有些情况也是完全不参与技术实现过程,技术实现是靠带的整个团队去做的。 那时候的管理人员面对技术团队跟现在的程序员用 AI 的时候面对 AI 产出的项目的心态是一样的。 所以程序员用 AI 遇到的问题并不是凭空产生的,原来就有这些问题,只是原来不是程序员这个角色去处理这些问题罢了。 那程序员遇到了那怎么解决呢?不还是软件工程那套流程? 关键在于是不是有人或者人带着 AI 在老老实实执行这些流程罢了。 AI 出来之前一样有管理带着技术团队一拍大腿搞出依托答辩然后后续不断重构/史上雕花的。 AI 出来之后,使用 AI 的人没有老老实实按照软件工程的那套流程去做事情,犯的错就跟 AI 出来之前整个团队不老老实实执行软件工程流程犯的错是一样的。 所以到底要不要把控设计?就比如你手头这个项目,业务上有很大的提升空间,需要频繁的根据反馈去改,那你就要设计出一套能够承担这个频繁变更的一个健壮的项目框架,甚至你要反过头来去质疑需求到底合不合理,到底项目的商业逻辑合不合理等。 但是如果你只是糊弄领导,按照需求把东西做出来了,我反正不管后续,项目的商业逻辑跟我无关,我就拿个工资而已,那我觉得你还是别重构了,摆烂吧。 |
34
yidinghe OP PRO @woodfizky 以前代码写得很烂,但还是有人可以兜底。我以前有个同事写 java 之前是写 C 的,他的风格就是所有变量都在开头定义,并反复赋值,其他人看不懂,但他还能维护。现在 AI 写的代码水平都还过得去,但能兜底的“人”已经没了。这个风险可高可低,看企业愿不愿意经历一次。
|
35
Clannad0708 2h 3m ago
@NoKey #28 wc 我就 是这样的,一模一样.....
|
36
xiangxiangxiang 1h 56m ago
@413420 #15 pv uv+1
|
37
tommyZZM 1h 43m ago
程序员完全让 AI 写的代码,没有把关,代表开发人员的水平
|
38
wanguorui123 1h 31m ago
AI 和你有一个能跑就行
|
39
bojue 1h 27m ago
@meteora0tkvo #22 看工作方式吧,我们现在一个人负责一个项目,最近打算把几个前端迭代了 6 年的 MES 产品 从 Angular20 重构成 Vue3 ,领导拍板了,我还在小范围测试
|
40
z1645444 1h 21m ago
> 程序员完全让 AI 写的代码,代表的是 AI 的水平,还是程序员自己的水平;程序员是否愿意拿这份代码当自己的产出,让这份自己都不理解的代码为自己的能力代言。
以及 #37 说得非常好。 #26 和 #28 描述的就是完全放任收获的新型技术债。 |
41
evilHa 1h 15m ago
我觉得到了大模型时代,这种长度很正常。
首先是代码大多不需要人类读,只需要将功能模块分好就好了,有些代码很长问题不大,大模型读起来很快。 第二个是大模型写的代码明显是要比人类啰嗦的多的,很容易就写长了,如果强制他分文件,分模块,会过度冗余,更不易读。 |
42
Dolov 1h 5m ago
在没有 ai 的时候也是有人代码写的好,有人写的差,有人觉得需要把代码打磨到自己满意的程度,有人认为能跑就行。在 ai 时代这种问题更明显了,但是我觉得还有有人愿意去把 ai 生成的代码打磨成自己喜欢的样子的。简单可追溯的数据流,合理可读的拆分,不单对人友好,也对 ai agent 友好。
|
43
furlxy 58 mins ago
@yidinghe 你也知道之前写 c 的人转到 java ,那风格一言难尽
AI 时代怎么就变成维护不动了呢,这不解决了很多沟通成本? 更何况,你让它重构它就重构,你让它加新 feature 它也任劳任怨 我觉得 AI 时代到了,思维要转变一下,不要死抠细节,人要来驾驭 AI ,说白了就是知道方向在哪里,写好文档、注释,比死扣这个算法这样写的价值是什么要好。 从这个角度看,这不是好事么 |
44
XuDongJianSama 57 mins ago
把自己代入成 leader ,ai 相当于 100 个手下,要对这 100 个人负责,不可能一点点看,只把握关键
|
45
kingfire 50 mins ago
看产品的目的啊,如果是自己要长期维护的,自然对大框架和关键步骤要有把控,后续才知道如何指挥 ai 。oneshot 的话那就随便了
|
46
BeautifulSoap 46 mins ago
现在已经不用看 AI 每一行代码了,我代码已经完全交给 AI 来生成,但是我有 100%把握,所有我用 AI vibe 出的项目我都掌握着项目结构,整体框架,内部实现的核心细节。因为这些东西全都是我手动设计的(虽然具体代码实现并不是我来实现)。AI 只是将我的设计落实的工具
我现在的看法是,如果完全放弃对代码的设计、理解和顶层的掌控,那么“你”作为程序员将完全没有任何价值 说难听点,既然都是对 AI 许愿那你干的活和随便拉个路人然后培训下就开始对 AI 许愿有什么区别。啥?遇到专业问题不会编程没法解决?可一天到晚吹现在 AI 这么强大已经完全不用写代码完全不关心底层的不也是“你”吗? 未来怎么发展不知道,现在变化太快了,但至少我觉得现在程序员还是必须得控制代码设计的 |
47
JZen 6 mins ago
现在我要求 AI 遵循最佳实践并且不要过度设计,发现写出来的代码比我写的漂亮太多,还有一些非常复杂的性能优化,过去我要转耳挠腮调好几天的事情,用 AI 调半个下午就能实现,被降维打击后,我就开始不在乎代码了。。。
|
48
zkiwis 5 mins ago
如果 token 越来越便宜,你说的情况可能是无所谓的,和上面楼说的一堆黑盒暴露 API ,能跑就行。
但是如果 token 并没有便宜或者说公司裁掉太多人深度转向 AI ,过于深度使用 AI 导致 token 费用研发占大头,那么这个时候良好架构设计的人应当是会有一定的竞争力的,良好的架构设计显而易见的在后续迭代开发中会消耗更少的 token 。 |