☰
连Linux之父都在用AI编程:顽固派开发者的真实工作流与避坑指南
2026/10/13 12:29:06 网站建设 项目流程

最近社区里最热闹的话题,不是哪个新框架又发布了,而是一则听起来有点"打脸"的消息:连Linux之父这种级别的"顽固派",都公开承认自己在用AI编程工具了。我说"打脸"完全是中性描述,没有嘲讽的意思。因为这件事确实颠覆了不少人的认知——在很多人的印象里,Linux内核开发者是一群连变量命名都要反复争论、代码审查严格到近乎偏执的人,AI编程这种"自动生成代码"的东西,他们应该是最后一批接受的人才对。

可现实偏偏反过来了。消息传开之后,我身边不少原本对AI编程嗤之以鼻的同事也开始重新审视手里的工具。这篇文章想认真聊三件事:所谓"顽固派"大佬到底是怎样一群人,他们用AI编程时到底在解决什么问题,以及我们这些普通开发者能从他们的用法里借鉴到什么。我会尽量少谈"AI时代来了,不学就淘汰"这类正确但没用的话,多讲一些实在的工作流细节和可复现的操作方法。

如果你也是一个曾经对AI编程半信半疑的开发者,或者已经在用但总觉得用不到点子上,这篇文章应该能给你一些新的思路。

1. "顽固派"三个字的含金量:他们拒绝的不是工具,是垃圾输入

1.1 内核维护者凭什么被称为"顽固派"

先说说为什么Linux之父会被外界贴上"顽固派"的标签。这里说的"顽固"不是不懂技术、拒绝进步的顽固,而是对工程质量有极高要求的"保守"。Linux内核的代码审查文化在业界是出了名的:代码风格有专门的手册,补丁要按固定格式提交,任何一行改动都要能说清楚理由,维护者在邮件列表里的讨论往往锱铢必较。

这种环境会塑造出什么样的人?答案是:一群对"代码从哪里来"极其敏感的人。他们不会因为一段代码碰巧能运行就接受它,而是要确认每一行都符合规范、都有明确意图。对"自动生成、来源不明"的代码,他们天然带有警惕。这不是傲慢,而是职业本能。

这种警惕在早期完全是对的。早几年的AI编程工具,或者说更早的代码生成工具,输出质量确实一言难尽。能写"Hello World",能糊弄教程级的增删改查,一碰到真正的工程边界——错误处理、并发安全、跨平台兼容——就原形毕露。一个长期跟内核代码打交道的人,看过几次这种输出后把工具丢进垃圾桶,是完全合理的反应。

所以"顽固派"这个标签背后,藏的其实是一个很理性的行为逻辑:他们拒绝的不是工具,而是"垃圾输入"。任何工具,只要产出的代码经不起审查,在他们眼里就是负资产——不仅不省时间,还要花更多时间擦屁股。理解了这一点,再回头看他们今天开始用AI编程这件事,分量就不一样了:这说明工具的默认输出质量,真的到了一个足够高的水位线。

1.2 为什么这则消息比一百个网红的推荐都有分量

网上天天有人吹AI编程,为什么偏偏Linux之父表态这事儿值得单独拎出来说?因为他的立场跟流量博主完全不同。一个做技术的自媒体说"AI真香",你还要掂量一下他是不是收了赞助、是不是为了追热点;但一个把几十年时间都砸在操作系统内核上的人,没有任何商业动机去吹嘘一个工具。他说"我用了,还行",那大概率就是真实的使用体验。

我自己的体感是:当一个群体里最保守、最挑剔、最没有动力换工具的人开始说"这工具能省时间",说明工具已经越过了"可用"和"好用"之间的那道坎。用生活里的例子类比:就像家里最不爱用智能手机的长辈,某天突然主动问你"线上缴费怎么弄"。不是手机突然变聪明了,而是某个功能真的解决了他长期以来的痛点。AI编程对这批"顽固派"来说,也是同样的逻辑——他们是尝到了甜头才开口的,不是被潮流裹挟。

所以这一节先把结论放在这里:我们接下来要聊的,不是"AI编程到底行不行"这种空泛的问题,而是"连最挑剔的人都愿意用的AI编程,到底是怎么用的"。搞清楚这个问题,比争论一百遍"AI会不会取代程序员"都有价值。

2. 大佬拿起AI到底在写什么:三个让我意外的场景

消息传开后,我花了不少时间翻能找到的访谈、讨论和演讲记录,也跟几个做底层开发的资深朋友聊了聊。有个发现让我挺意外:这些"顽固派"用AI编程,绝大多数不是在让AI写什么高深的算法,也不是让AI一口气生成几百行核心逻辑,而是集中用在三类看起来"不太起眼"的场景上。这个发现本身,就很有信息量。

2.1 场景一:生成补丁模板和格式校验脚本

第一个场景是补丁提交的格式处理。社区对补丁有非常严格的要求:邮件标题要带[PATCH]前缀,变更说明要按固定模板写,签名行要统一。资深开发者对这些规则当然门儿清,但每次都要手工敲这些格式,真的很烦。我认识的一位做嵌入式开发的前辈,现在的做法是让AI根据提交说明草稿直接生成一封符合社区规范的补丁邮件,他只需要检查签名和内容是否准确。

这类活我试着复现过,逻辑不复杂,但很能说明问题。比如让AI写一个校验补丁说明格式的脚本,它很快就能给出这样的初稿:

import re patch_prefix = re.compile(r'^\[PATCH(?: v\d+)?\]\s+.+', re.MULTILINE) signoff = re.compile(r'^Signed-off-by: .+ <.+@.+>$', re.MULTILINE) def validate_patch_message(text): errors = [] if not patch_prefix.search(text): errors.append("缺少 [PATCH] 标题前缀") if not signoff.search(text): errors.append("缺少 Signed-off-by 签名行") return errors

这种代码让AI来写,比人写还稳。它就是一堆规则匹配,没有任何需要价值观判断的地方。对老手来说,把这种机械劳动外包出去,省下来的时间可以拿去干真正需要经验的事。别小看这点时间,内核开发者的时间颗粒度是按小时算的,能省一小时是一小时。

2.2 场景二:自动补齐测试用例脚手架

第二个场景是测试用例脚手架。底层项目对测试的重视程度远超普通业务项目,但测试代码里有大量重复结构:初始化环境、构造输入、准备断言、清理资源。一个资深开发者给我看过他让AI生成的测试骨架,效果相当不错。

这里的关键是:老手不会让AI直接写测试逻辑,而是先自己把核心断言和目标行为描述清楚,再让AI补全那些"围绕核心逻辑的壳"。比如描述一个内存池分配器的测试意图,AI生成的脚手架长这样:

def test_pool_allocator_reuses_freed_blocks(): pool = MemoryPool(capacity=1024) block_a = pool.alloc(256) pool.free(block_a) block_b = pool.alloc(256) # 核心断言:释放过的块应该被复用 assert block_b.address == block_a.address

注意看里面的分工:断言部分是人写的,框架部分(构造、清理、流程编排)是AI补的。这个分工非常讲究。判断"什么行为是正确的",是测试的灵魂,必须由人来定;怎么搭建测试环境、把流程串起来,这些是体力活,交给AI毫不心疼。这也解释了为什么他们用AI的产出质量高——他们把AI放到了最合适的位置上,没让它干它干不了的事。

2.3 场景三:批量重构时的脚本初稿

第三个场景更接地气:批量重构时的文本处理脚本。改底层库或者内核代码,经常要一次性对几百个文件做同样的事,比如给所有导出的符号加前缀,或者把旧的错误码枚举换成新的命名。这种活本质就是"找规律、批量替换",但盲改又容易出错。

传统的做法是手写一堆正则和脚本,每次都要调试半天边界情况。现在不少老手的做法是:把几个典型样本扔给AI,让它生成脚本初稿,再人工审查边界条件。我试过一次类似的任务,确实比从零开始写快不少,尤其是在处理正则转义、排除注释块这类细节上,AI能一次性考虑得比较全。

# 批量替换示例:给 .c 文件中的导出符号统一加前缀 find . -name '*.c' | xargs sed -i \ -e 's/EXPORT_SYMBOL(\(.*\));/EXPORT_SYMBOL(foo_\1);/g'

当然,脚本生成完不是结束。老手一定会做接下来的动作:在仓库副本上跑一遍,用版本控制工具的差异对比逐个核对改动,确认每一处都符合预期后才提交。这套验证流程我会在第五部分展开说——它是"安全使用AI"的最后一环,也是最重要的一环。

2.4 共同点:AI负责"费力不费脑",人负责"费脑不费力"

把三个场景放在一起,规律就很清晰了。这批"顽固派"用AI,真正追求的不是"让AI替我做决定",而是"让AI替我省力气"。凡是规则明确、重复度高、不需要价值判断的工作——格式整理、模板拼接、脚本初稿——都可以丢给AI;凡是涉及"这个功能到底应该是什么行为""这个边界要不要处理"的判断——全部牢牢握在自己手里。

这个用法,和很多新手把AI当成"万能答题机"的用法有本质区别。新手希望AI直接给出最终答案,老手则是把AI当成效率极高的打字员和资料整理员。理解这个区别,是这篇文章最重要的一课。接下来第三部分讲态度转变的原因,第四部分讲普通人最容易踩的坑,都是围绕这个核心区别展开的。

3. 从"嗤之以鼻"到"真香",态度转变的三个真实原因

"顽固派"不会因为某个工具火就跟着用。他们的态度转变,一定是在实际收益面前被说服的。我梳理下来,原因可以归纳成三个,每个背后都有非常具体的工程逻辑。

3.1 AI输出的质量跨过了"专业可用"的门槛

第一个原因最直接:AI生成的代码质量,真的到了专业可用的水平。十年前你说"让工具自动写代码",写出来的大概率是玩具;现在的编程助手,至少能做到语法正确、命名合理、结构清晰。对普通业务代码来说,这个水平已经够用了;对内核这种高要求的项目来说,还到不了直接采纳的程度,但作为"初稿"完全合格。

别小看"初稿合格"这四个字。它带来的是效率层面的质变。以前写一个改动,从构思到落盘可能要半天;现在有了高质量初稿,人只需要做审查和修改,时间直接砍半。对时间极其值钱的资深开发者来说,这个收益是实打实的,不是"锦上添花"而是"雪中送炭"。

我自己也有同样的体感:以前写一个不太熟悉的脚本,得先查半天文档,对着示例改半天;现在让AI先出一版,我再对着文档核实逻辑,整体时间至少省一半。省下来的时间不需要多,每天都省一点,一个季度积累下来就很可观了。

3.2 工作流变了:从"要盯着的学徒"到"懂行的副驾"

第二个原因和工作流形态有关。早期AI编程工具的使用方式,基本是"你给它一个任务,它给你一段代码,然后你逐行检查"。这个过程其实很累,因为AI生成的代码经常埋着奇怪的坑,你省下的时间又被检查成本吃掉了。所以很多老手试用过一轮之后觉得不划算,这是非常真实的体验。

但现在的工具形态已经变了。编程助手能读懂你正在编辑的文件,能理解项目的上下文,甚至能根据你的修改意图给出下一步建议。你写代码,它补全;你重构逻辑,它顺手把关联的调用点也改了。这个体验非常像开车时副驾坐了一个熟悉路况的向导——你没把方向盘交给它,但它帮你看了很多本来要自己分神去看的路况。

这种"副驾式"的协作,才是"顽固派"愿意接受的形态。它没有剥夺人对代码的所有权,人依然是最终决策者,只是多了一双帮你盯着细节的手。对一个把代码当作品看的工程师来说,这种安全感至关重要。工具再强,也不能让他觉得自己不是作者了。

3.3 老手的判断力,反而让AI的风险变得可控

第三个原因,是最容易被忽略的一点:资深开发者之所以敢用AI,恰恰因为他们有能力审查AI的输出。一个不了解内核的人拿到AI生成的补丁,可能看都不看就提交了;一个内核维护者拿到同样的补丁,五分钟内就能发现其中有一行破坏了引用计数。同样的工具,在不同人手里的风险是完全不一样的。

这句话反过来说更扎心:如果你没有足够的判断力,用AI编程的风险其实很高。AI生成的代码乍看都对,但往往在错误处理、极端输入、并发边界这些地方埋着雷。有些开发者用AI写了一年业务代码,功能好像都正常,但代码里积累了多少自己都说不清的隐患?这是非常现实的问题。

所以"顽固派"用AI编程这件事,本质上不是"他们终于放下了戒心",而是"他们的戒心足够强,所以能安全地拥抱工具"。这个辩证关系值得记住:AI编程的适用性,永远和开发者本人的审查能力绑定。工具越强,对你的判断力要求反而越高,而不是越低。

4. 借鉴"顽固派"用法,但先避开三个坑

聊完了大佬们为什么转变,聊聊更实在的问题:我们普通人怎么把他们的用法迁移到自己身上?我的建议是,先别急着换工具、背快捷键,先避开我在实践中看到的三个最常见的坑。

4.1 坑一:把AI当"外包",而不是"实习生"

第一个坑,是把AI生成代码当成外包:需求一扔,代码一到,直接拿去用。这种用法的问题在于,外包你还要验收呢,AI生成的代码你连验收都省了。你自己写代码时会考虑边界条件、会做错误处理、会想清楚数据流,但AI不会主动替你想这些,它只会按照你给的描述生成一段看起来合理的代码。

我整理过一张对比表,把"外包式用法"和"实习生式用法"放在一起看,区别非常直观:

环节外包式用法(不推荐)实习生式用法(推荐)
需求交代一句话说个大概写清目标、边界、验收标准
代码验收跑通就算过逐行审查,确认理解每一行
发现问题让AI自己改自己改,改完才知道错在哪
质量负责AI负责你自己负责

用"实习生"的姿势对待AI,还有一个额外的好处:当过审查者之后,你对代码的理解会比以前更深。因为你要对别人的输出负责,就必须真正读懂它。这比我以前自己闷头写代码学到的东西多得多。

4.2 坑二:省略上下文,反复试错反而更慢

第二个坑,是给AI的上下文严重不足。很多人用AI编程只丢一句话:"写个函数解析日志文件。"AI给出一个泛泛的版本,完全不贴合实际需求,然后你来回补充十几次,最后花的时间比自己写还长。这不是AI不行,是你没给它干活的条件。

老手用AI有一个共性:他们会一次性给足上下文。文件路径、数据结构、调用方的期待、性能约束、异常处理的偏好……这些信息齐全时,AI的第一次输出就已经接近可用状态。我把这个习惯总结成一句口诀:"你希望接手你代码的人知道什么,就让AI知道什么。"

举个具体的对比。你说"写个函数解析日志",AI只能给你一个玩具;如果你把日志格式、字段含义、输出要求、性能约束一次说清,AI给出来的版本通常直接就能进代码审查流程。上下文给足,一次对话就能顶十次试错。

4.3 坑三:用AI掩盖基本功缺失

第三个坑,也是最要命的一个:拿AI编程当掩盖基本功不足的遮羞布。我见过一些刚入行的开发者,依赖AI工具之后连基本语法都快忘了,更别提调试、性能分析、代码审查这些深层技能。短期看产出好像不低,但一旦工具水土不服,或者遇到AI死活搞不定的老代码,就彻底抓瞎。

"顽固派"恰恰相反。他们用AI的前提是:就算没有AI,我也有十足把握把这件事做好。AI对他们来说是放大器,放大的是原本就具备的能力;对基本功不扎实的人来说,AI放大的是侥幸心理。这两种状态,短期看不出差别,三个月、半年之后差距会越来越大。

所以我会建议所有刚开始用AI编程的人,把一句话贴在屏幕上:AI可以帮你写代码,但不能帮你理解代码。如果某一天你发现自己离开了AI就不会写代码了,那问题不在AI,而在你自己的学习节奏出了问题。

5. 我按"内核审查"标准改造了自己的AI编程流程

最后一部分,分享我自己的实操。看到Linux之父用AI编程的消息后,我没有急着换工具,而是花了一个月时间,认真借鉴"顽固派"的用法,把手里的AI编程流程彻底重写了一遍。如果你想要一个可以直接上手的起点,这套流程应该能给你不少参考。

5.1 五步流程的具体样子

我的流程拆成五个环节,每个环节都有明确的产出标准。

第一步:写清需求说明。动笔写任何代码之前,先花几分钟用自然语言描述清楚这个改动要解决什么问题、边界条件是什么、不希望出现什么行为。这一步很多人省掉,但恰恰是整个流程里性价比最高的一步。需求说明写清楚了,后面所有环节都会顺。

第二步:让AI生成初稿。把需求说明连同相关文件片段一起交给AI,要求它生成代码初稿。注意这里的目标不是"最终答案",而是让它先把搬砖的活干了:结构、命名、流程框架都可以让它先铺出来。在这一步,AI输出质量的上限,基本由第一步需求说明的质量决定。写得越具体,初稿越接近可用,后面审查要改的地方就越少。

第三步:逐行审查代码。这一步模仿内核代码审查:不放过任何一行AI生成的代码,遇到不懂的语法就查文档,遇到可疑的逻辑就打断点验证。审查不是走形式,而是要抱着"这代码是我写的,出问题我要负责"的心态去读。

第四步:修改与重构。审查中发现的问题,全部强制手动修改,不让AI代劳。原因很简单:手动修改的过程,就是你真正理解这段代码的过程。AI帮你改了,你下次遇到同样的坑还是踩。

第五步:跑测试与差异审查。做完整的测试验证,再用版本控制工具的差异对比功能,逐一确认每个改动点都符合预期,之后才提交。这套"提交前审查"的习惯,长期带来的收益远超那几分钟的成本,尤其当改动涉及公共接口或者底层数据结构时。

5.2 实测一个月的收益和代价

这套流程我跑了一个月,最大的感受是:产量没有指数级提升,但心理负担小了很多。以前最消耗能量的不是写代码本身,而是那些机械、重复、没有创造性的部分——写测试脚手架、调格式、整理文档。现在这些都能快速交付,我把精力集中到了真正需要思考的地方。

代价也很明确:逐行审查本身很耗时间,有时候审查AI代码花的时间比自己写还长。但有意思的是,即使总时长一样,我的心态完全不同。自己写是从零到一的构思消耗,脑力一直在运转;审查只是核对性质的注意力消耗,身体累但脑子有余量。这一点的差别非常大,直接决定了一天下来还能不能干别的。

另外一个意外收获是:因为越来越习惯"给AI写需求说明",我现在跟同事沟通需求也变得更清楚了。以前大家开会聊半天,回去写出来的东西跟理解的对不上;现在我把需求说明的模板用到日常沟通里,信息损耗明显少了很多。这算是这套流程带来的"外溢收益"。

5.3 给你的实践起点

如果你想按这个思路改造自己的AI编程流程,我的建议是从小处入手。不要一上来就拿核心业务系统开刀,先找一个重复性高、逻辑简单的小任务,完整走一遍上面的五步流程,体会一下"需求说明→AI初稿→人工审查"这个节奏。跑顺一个任务,再逐步扩大到更复杂的场景。

用AI编程从来不是一道"用还是不用"的选择题,而是一道"怎么用"的论述题。"顽固派"大佬的态度转变告诉我们的是:当最保守的工程师都开始认真对待AI工具时,我们这些普通开发者也该放下情绪,把这套工具用出它应有的价值。工具是别人的,工作流是你自己的;AI能替你省多少时间,最终还是取决于你愿意为"审查"这件事投入多少。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询