乐于分享
好东西不私藏

AI观察 | 软件工程的拐点时刻:Google Cloud AI 总监 《软件工程的未来两年》解读

AI观察 | 软件工程的拐点时刻:Google Cloud AI 总监 《软件工程的未来两年》解读

引言:软件工程的拐点时刻

2026 年 1 月 5 日,Google Cloud AI 总监 Addy Osmani 发布了一篇名为《The Next Two Years of Software Engineering》的博客文章,在技术圈引发了广泛关注和深度讨论。作为一位在 Google 工作超过 25 年、领导 Chrome 开发者体验近 14 年的资深工程师,Addy Osmani 刚刚在 2024 年 12 月转型为 Google Cloud AI 总监,负责推动 Gemini、Vertex AI 和代理开发套件 (ADK) 在开发者和企业中的落地。他的这篇博客并非简单的技术预测,而是基于深厚的行业经验和对 AI 技术发展趋势的敏锐洞察,为整个软件工程行业描绘了一幅充满挑战与机遇的未来图景。

在这篇博客中,Osmani 将软件行业描述为正处于一个 "奇特的拐点"。AI 编码已经从 "强化版自动补全" 演进为能够自主执行开发任务的智能代理。与此同时,曾经推动科技行业大规模招聘的经济繁荣已经被 "效率优先" 的新指令所取代:企业更看重盈利而非增长,更偏好有经验的人才而非应届毕业生,倾向于用更小的团队配合更强的工具。这种变化不仅体现在技术层面,更深刻地影响着整个行业的人才结构、开发模式和价值体系。

本文将从多个维度深入解读这篇博客,重点关注其中提及的 AI 开发工具、自动化测试、低代码平台等关键内容,并分析这些技术趋势可能对软件开发行业带来的深远影响。通过对博客核心观点的剖析,我们将探讨在 AI 时代背景下,软件工程师如何应对角色转变、技能升级和职业发展的挑战。

一、五大关键问题:勾勒软件工程的未来图景

Osmani 在博客中提出了五个可能在 2026 年前塑造软件工程行业的关键问题,每个问题都对应两种截然不同的情景。这种 "双情景" 分析方法体现了他对技术发展复杂性的深刻理解 —— 技术变革往往不是线性的,而是充满了不确定性和多种可能性。

1.1 初级开发者的困境:机遇与挑战并存

第一个问题聚焦于初级开发者的就业前景。根据哈佛一项覆盖 6200 万名劳动者的研究,当公司采用生成式 AI 后,在接下来的六个季度内,初级开发者的就业人数下降约 9-10%,而高级开发者几乎不受影响。过去三年里,大型科技公司招聘的应届毕业生数量减少了约 50%。

这种现象背后有着复杂的成因。一位工程师直言不讳地说:"既然一个 AI 编码代理的成本更低,为什么还要花 9 万美元去雇一个初级工程师?" 然而,这并不完全是 AI 的问题。2022 年前后,利率上升和疫情后的经济调整已经对招聘造成冲击,那时 AI 工具尚未普及。但AI 确实加速了这一趋势—— 如今,一名配合 AI 的高级工程师,产出已经相当于过去的一个小团队。

然而,Osmani 也描绘了另一种截然不同的情景:AI 释放出对开发者的巨大需求,而且不仅限于科技行业。医疗、农业、制造、金融等领域开始全面嵌入软件和自动化。AI 不再是取代开发者,而是成为 "放大器",把开发工作扩展到过去从未雇佣程序员的领域。美国劳工统计局仍然预测,2024-2034 年间软件岗位将增长约 15%。

这种二元性反映了技术变革的复杂性。一方面,传统的 "学会编程→拿到初级岗位→成长为高级工程师" 路径正在动摇;另一方面,新的机会正在涌现 ——更偏向 "AI 原生" 的开发者,能够快速为特定垂直领域构建自动化和集成方案

1.2 技能的悖论:退化还是进化?

第二个问题探讨了核心编程技能的未来走向。数据显示,84% 的开发者现在经常使用 AI 辅助,面对 bug 或新功能时的第一反应已不再是从零写代码,而是编写提示词、拼接 AI 生成的片段。入门级程序员正在跳过 "艰难模式":他们可能从未亲手实现过二叉搜索树,也从未独立调试过内存泄漏。

这种现象引发了业界的担忧。一些资深工程师担心,这会造就一代无法独立高质量编程的人,形成 "去技能化"。AI 生成的代码往往包含微妙的 bug 或安全漏洞,经验不足的开发者可能察觉不到。技能重心正在从 "实现算法" 转向 "如何向 AI 提问并验证其输出",职业阶梯的第一层不再是展示纯粹的编码能力,而是展示对 AI 的引导与校验能力。

但 Osmani 也提出了相反的观点:当 AI 处理了 80% 的例行工作,人类正好专注于最难的 20%—— 架构、复杂集成、创意设计、边缘案例。AI 的普及非但没有让深度知识过时,反而让人类专业能力更加关键。这就是 "高杠杆工程师":利用 AI 放大产出,但必须对系统有深刻理解,才能真正驾驭它。

关键的洞察在于:当所有人都能使用 AI 编码代理时,区分优秀工程师的关键在于是否知道 AI 何时是错的、或次优的。一位资深工程师说得很直白:"最好的软件工程师,不是写代码最快的人,而是最懂得什么时候不该相信 AI 的人"。

1.3 开发者角色的演变:从创造者到指挥家

第三个问题关注开发者角色的根本性转变。Osmani 描绘了两种极端情景:一种是开发者的创造性职责被削弱,沦为 AI 输出的 "审计员"。在这种愿景中,AI 或 "公民开发者" 用低代码平台完成生产,人类开发者只是审查、检查错误、批准部署,创造者变成了检查员。

有工程师感叹:"我不想变成 ' 代码清洁工 ',只负责清理 AI 丢过来的东西"。确实,已有工程师反馈,他们花在评估 AI 生成的 pull request 和管理自动化流水线上的时间,已经多于从零编写代码。编程不再像创造性解题,而更像合规工作。

另一种愿景则更加振奋人心:开发者进化为高层次的编排者。在 "智能体开发" 环境中,工程师成为 "作曲家",指挥 AI 智能体和软件服务的合奏。他们不亲自写每个音符,但定义旋律:架构、接口、智能体如何协作。这种角色是跨学科的:一部分软件工程师、一部分系统架构师、一部分产品策略师。

1.4 专才与通才之争:T 型人才的崛起

第四个问题探讨了专业化与通用性的平衡。在模型、工具和框架快速更替的背景下,把职业押注在单一技术栈上是高风险的。一位深耕旧框架的专家,可能突然发现新的 AI 工具几乎不再需要人类介入。只会一种技能的人(例如只做 SQL 微调,或把设计稿切成 HTML),可能发现 AI 已经覆盖了其中 90% 的工作。

与此相对,T 型工程师—— 在一到两个领域具备深度专长(纵向),同时对多个领域有广泛理解(横向)—— 正在成为行业新宠。这类工程师往往是跨学科团队中的 "粘合剂",能与不同专长的人沟通,并在需要时填补空缺。

值得注意的是,AI 工具事实上更能放大通才的能力。后端工程师可以借助 AI 生成可用的 UI;前端专家可以让 AI 生成服务器样板代码。在 AI 丰富的环境中,个人的覆盖面更广。与此同时,深度专才可能发现自己的细分领域被部分自动化,却缺乏横向迁移能力。

1.5 教育体系的变革:传统学位的价值重构

最后一个问题聚焦于软件工程教育的未来。长期以来,四年制计算机科学学位一直是进入软件行业的主要门票,但这一传统正受到质疑。

传统大学面临着严峻挑战:课程更新周期太慢,受限于官僚审批流程。很多毕业生反映从未在学校学过云计算、现代 DevOps 或 AI 工具。等课程落地时,行业工具早已换代。如果大学要求高昂的时间和金钱投入,却提供低相关度教育,就可能被视为昂贵的 "门槛"。

与此同时,替代教育模式正在兴起:编程训练营、在线认证、自学作品集、企业自建培训学院。许多知名企业(如 Google、IBM)已在部分技术岗位取消学位要求。到 2024 年,近 45% 的公司计划在至少部分岗位中取消本科学历门槛。训练营已趋成熟,毕业生能与科班生一同进入顶级公司,这些项目周期更短(如 12 周高强度),专注实用技能。

二、AI 开发工具的革新:从辅助到自主

在 Osmani 的分析中,AI 开发工具的演进是推动整个软件工程变革的核心驱动力。他特别提到了几个关键工具,这些工具代表了从第一代到第三代 AI 编码工具的技术跃迁。

2.1 第三代 AI 编码工具的特征

Osmani 将 AI 编码工具的发展划分为三个代际:第一代是加速自动补全,只能预测下一行、填充样板代码;第二代引入了同步代理,可以通过自然语言描述任务并生成代码;而第三代则是自主代理,能够独立运行数小时甚至数天,自主完成环境搭建、依赖安装、测试编写等复杂任务。

第三代工具的革命性在于,它们可以接受一个规范说明并自主运行 30 分钟、1 小时、几小时甚至几天。这些代理能够设置环境、安装依赖、编写测试、处理失败、在线研究解决方案、修复问题、编写实现、再次测试、设置服务,并生成可供审查的工件。你只需给它们一个任务,然后去做其他事情,回来时就能看到日志、预览和拉取请求

2.2 具体工具深度解析

Osmani 在博客中特别推荐了几款 AI 编码代理工具,每款都代表了不同的技术路线和应用场景:

Cursor是基于 VSCode 深度改造的 AI 原生代码编辑器,主打自然语言写代码功能,支持中文描述直接生成项目。它具备全项目上下文理解能力,可以跨文件进行智能修改,支持 GPT-4o、Claude 3.7、通义千问等多种模型。Cursor 的 2026 年版本引入了 Composer 模型,这是一个专门为在 Cursor 内直接构建软件而定制的快速高质量编码模型,其性能大约是 Sonnet 4 的两倍。

Antigravity是 Google DeepMind 团队开发的代理式 AI 编程助手,它不仅仅是一个聊天机器人,更是一个能够与开发者结对编程、规划任务、执行代码修改并验证结果的智能代理。与传统工具不同,Antigravity 是从零开始构建的代理优先 IDE,其 AI 代理可以直接访问编辑器、终端和浏览器,实现自主规划、执行和验证整个功能。

Claude Code是 Anthropic 公司于 2025 年推出的代理式编码工具,被认为是目前最强大的 AI 开发代理之一。它使用代理式搜索来理解整个代码库,无需手动选择上下文,能够像协作队友一样推理项目并执行任务。

Gemini CLI是 Google 开源的 AI 代理,将 Gemini 大模型的能力直接带入终端。它使用复杂的推理 - 行动 (ReAct) 循环来理解复杂任务,将其分解为可操作的步骤,并使用内置工具执行。Gemini CLI 可以读取和写入文件、执行命令、搜索网络,并通过模型上下文协议 (MCP) 与外部服务集成。

2.3 智能体开发的新范式

Osmani 提出了一个极具洞察力的概念 ——"工厂模型"。他认为,最有用的思维模型是:你不再只是编写代码,而是在构建构建软件的工厂。这个工厂由大量代理组成,每个代理都有任务、工具带(仓库、测试运行器、部署脚本、文档)、上下文(规范、架构决策、先前约束)和反馈循环。

在采用这种模型的团队中,相当一部分已合并的拉取请求现在来自在云环境中自主运行的代理。这不再是理论,而是越来越多工程组织的生产现实。这种转变的意义在于,软件开发从个人活动转变为了系统工程 —— 工程师的角色从代码编写者转变为了系统设计者和协调者。

2.4 工具演进带来的影响

AI 开发工具的演进正在从根本上改变软件开发的方式和效率。根据行业数据,新网站创建量同比增长 40%,新 iOS 应用增长近 50%,GitHub 代码推送在美国增长 35%,这些指标在 2024 年底之前的几年里一直持平。这表明,创建软件的门槛确实大幅下降,这是软件工程领域的根本性转变。

然而,Osmani 也强调了一个关键洞察:强大的软件工程师从这些工具中获得的杠杆作用比弱工程师更多,而不是更少。机械的代码输入工作正在被自动化,而理解系统的认知工作正在被放大。你花在开发真正的架构理解和系统思维上的每一个小时,现在都会在整个自主工作者舰队中产生红利,而不仅仅是你自己的产出。

三、自动化测试的新篇章:从辅助到必需

在 Osmani 的分析框架中,自动化测试占据着特殊的地位。他不仅将其视为 AI 时代的关键技术,更将其提升到了 "强制性实践" 的高度。

3.1 测试在 AI 时代的战略意义

Osmani 明确指出:"好的测试和测试驱动开发 (TDD) 已经是很好的实践。在代理工作流程中,它们几乎成为强制性的"。这种观点反映了 AI 时代测试工作的根本性转变 —— 从可选的最佳实践变成了确保系统质量的关键防线。

传统的 "红 / 绿 TDD" 流程(先写测试、确认失败、再实现功能)不再是可选的仪式,而是让你确信实现真正在做你认为它在做的事情的机制。在单个开发者编写代码的情况下,跳过测试优先开发的缺点是你可能会编写一个无论实现是否正确都会通过的测试,或者错过后来作为回归被发现的边缘情况。这些都是真实的成本,但它们是可控的。

然而,在一个由代理在数十个并行任务中生成代码的舰队中,成本会严重复合。一个优化通过测试的代理会找到通过它们的方法。如果测试是在实现之后编写的,它们很可能测试的是实现碰巧做的事情,而不是它应该做的事情。你现在有了一个庞大的代码表面区域,其测试套件确认了错误的事情。

3.2 测试自动化工具的现状与趋势

根据 Gartner 2026 年的报告,全球 AI 测试工具市场规模已突破 50 亿美元(约合人民币 350 亿元),远超 "百亿" 人民币门槛,标志着 AI 驱动的测试范式正式从 "辅助工具" 跃升为 "质量基础设施"。中国作为全球增速最快的市场,贡献了超过 30% 的份额,AI 测试工具在金融、互联网、智能汽车领域的渗透率已超过 65%。

当前市场上涌现出了多款创新的 AI 测试工具:

Test Mu AI(前身为 LambdaTest)将自己定位为 AI 原生测试平台,具有全面的云测试能力。它能够基于高级目标生成和自动化测试步骤,支持一键从其他平台迁移。

Katalon提供实时 AI 帮助来编写和理解测试脚本。StudioAssist 功能可以将自然语言转换为测试用例,使测试速度更快、工作量更少。

Applitools Autonomous能够自主创建、执行和分析功能、视觉和 API 测试,具备自主测试创建和 AI 增强录制以及 NLP 编写功能。

testRigor自称是 "你唯一需要的端到端测试自动化工具",它赋能整个团队快速高效地编写端到端 UI 测试,能够无缝创建、编辑和更新任何复杂度的测试,使团队能够快速扩展测试覆盖范围。

3.3 测试验证的新挑战

Osmani 特别强调了一个关键洞察:"未解决的问题是验证,而不是生成。生成不再是瓶颈,验证才是"。代理可以产生令人印象深刻的输出,但挑战在于有信心地知道该输出是否正确。

几个因素使这比最初看起来更困难:

  1. 1. 测试的时效性问题:在更改之前通过的测试并不意味着它们会捕获更改引入的回归。
  2. 2. 代理测试的局限性:代理可以编写技术上有效的测试,但可能会错过重要的情况。
  3. 3. UI 验证的脆弱性:视觉和行为回归仍然会溜走,因为自动化工具还不够可靠,无法捕获所有问题。
  4. 4. 上下文窗口限制:在大型代码库上工作的代理可能会错过存在于它们当前推理窗口之外的重要约束或模式。
  5. 5. 环境稳定性问题:单个开发者遇到的不稳定环境作为一个烦人的边缘情况并解决,但当你有 40 个代理同时命中同一个不稳定测试时,就会成为系统性阻塞。

3.4 AI 辅助测试的最佳实践

基于这些挑战,Osmani 提出了几个关键的最佳实践:

全面的、测试优先的套件是确保自主输出实际正确的最有效杠杆,也是在代码库增长时保护现有功能的最佳方法。"红 / 绿 TDD" 是每个优秀模型都理解的速记,它捕获了一个特定的纪律:先写测试,在实现之前确认它们失败,通过正确的实现而不是通过游戏测试来使它们通过。

人类监督的重要性:代理做着令人印象深刻的工作,但它们也会犯自信的错误。输出质量足够高,可以通过随意的审查,这意味着你的审查技能的标准实际上是提高了,而不是降低了。

基础设施投资:支持这种模型在规模上运行所需的基础设施包括更好的自动回归检测、超越差异更改行的工件级验证、可靠和快速的环境供应,以及在并行工作负载下保持稳定的护栏。

四、低代码平台的崛起:民主化与专业化的平衡

在 Osmani 的分析中,低代码平台代表了软件开发民主化的重要趋势,同时也带来了专业开发者角色定位的新挑战。

4.1 低代码平台的技术演进

2026 年低代码平台的核心变化是AI 从 "辅助功能" 升级为 "底层架构",实现了从 "代码片段生成" 到 "领域模型驱动" 的跨越。这种转变的意义在于,低代码不再是简单的可视化编程工具,而是能够理解业务逻辑、自动生成完整应用的智能平台。

根据 Gartner 的预测,到 2026 年底,正式 IT 部门之外的开发者预计将占低代码工具用户基础的至少 80%,这一比例从 2021 年的 60% 大幅跃升。同时,到 2026 年,这些平台将构建 75% 的新应用,允许公民开发者创建自定义解决方案,同时让 IT 团队专注于更复杂的项目。

"可视化配置 + 全量源码生成 + 异构系统集成" 的混合模式已成为低代码平台解决 "定制化不足"" 性能瓶颈 " 的核心方案。Gartner 预测,2026 年将有 85% 的企业级低代码平台采用这种混合架构。这种架构实现了 "80% 标准化场景快速落地 + 20% 复杂场景深度定制" 的全覆盖。

4.2 公民开发者的兴起与影响

低代码平台的普及催生了 "公民开发者" 这一新角色。这些专业人员不是专业的软件开发人员,但他们可以使用这些工具创建自定义应用程序并以其他方式支持他们的个人或团队项目。

根据行业测算,2026 年新增商业应用中使用低代码 / 无代码开发的比例已超过 70%,其中 80% 的用户为非专业开发背景的业务人员。Gartner 预测,到 2026 年,公民开发者与专业开发者的比例将达到 4:1。

这种趋势对专业开发者产生了复杂的影响。一方面,它可能导致开发者的创造性职责被削弱,沦为 AI 或公民开发者输出的 "审计员"。正如一位工程师所说:"我不想变成 ' 代码清洁工 ',只负责清理 AI 丢过来的东西"。另一方面,它也为开发者创造了新的机会 —— 从执行者转变为设计者和协调者。

4.3 低代码与 AI 的深度融合

2026 年的新范式是:用低代码搭建骨架(UI、数据库、权限),用 AI 填充灵魂(复杂逻辑、脚本生成、数据分析)。这种结合正在以前所未有的方式降低软件开发的门槛,催生 "全民开发者" 时代的到来。

AI 与低代码平台的融合带来了几个重要变化:

  1. 1. 自然语言驱动开发:通过自然语言描述需求,平台可以自动生成数据表、流程、界面和权限,准确率普遍达到 80% 以上。
  2. 2. 智能流程优化:AI 能够理解业务流程,自动优化和重构应用逻辑,使开发效率提升 300%-500%,非技术人员可完成 80% 基础开发工作。
  3. 3. 自主代理协作:多个 AI Agent 可以协作完成整个低代码应用的设计、生成、测试、部署流程,人类仅需提供目标和审核。
  4. 4. 深度个性化:AI 学习特定开发者或团队的编码风格和偏好,生成高度定制化的代码。

4.4 对专业开发者的影响与应对

低代码平台的兴起对专业开发者提出了新的挑战和机遇。根据市场数据,基础编程岗需求同比下降 28%,软件测试岗 90% 面临替代风险。但同时,新兴高薪岗位如提示词工程师、AI 伦理师薪资溢价 30% 以上,算法运维、人机协作专员需求激增。

Osmani 建议开发者采取以下策略应对这一变化:

角色升级而非降级:开发者应该进化为高层次的编排者,在 "智能体开发" 环境中成为 "作曲家",指挥 AI 智能体和软件服务的合奏。他们不亲自写每个音符,但定义旋律:架构、接口、智能体如何协作。

专业化与通用化的平衡:在低代码平台普及的背景下,T 型工程师(具备深度专长和广泛理解)将更受欢迎。开发者需要在保持技术深度的同时,培养跨领域的理解能力。

价值定位的转变:专业开发者的价值不再仅仅来自编写代码,而在于设计系统架构、定义业务逻辑、确保质量和安全性,以及指导和协调 AI 工具的工作。

五、行业影响与趋势:从技术到人才的全面重塑

Osmani 的分析不仅仅停留在技术层面,更深入探讨了这些技术变革对整个软件工程行业的深远影响。

5.1 人才结构的根本性转变

根据多项研究数据,软件工程行业的人才结构正在发生从 "金字塔型" 向 "沙漏型" 或 "纺锤型" 的结构性转变。这种转变体现在多个方面:

岗位需求的两极分化:初级开发、测试、运维等基础岗位需求大幅萎缩,降幅达 28%-90%,而 AI 架构师、Agent 开发工程师等新兴岗位招聘量同比激增超 540%。初级程序员替代率超 85%,Java / 前端岗位减少 32%-50%,而 AI 相关岗位招聘需求同比暴涨 543.61%,成为市场增长最快方向。

团队规模的小型化:3-5 人精英团队的产能相当于传统 20 人团队,人力结构从 "金字塔" 变 "纺锤形"。企业团队规模可能从 5 人压缩至 1 人,所需订阅账号数量大幅减少。

技能需求的变化:65% 的开发者预计他们的角色将在 2026 年被 AI 重新定义,63% 期望新的职业机会出现,59% 预测 AI 将在 2026 年创造更多专业化角色,58% 预见自动化减少入门级任务后团队将变得更小、更精简。

5.2 开发模式的革新

技术变革正在推动开发模式的全面革新:

从编码到编排:软件开发从 "代码 + 数据库" 架构转向 "LLM+Agent + 数据 + 工具" 架构,具备自主决策、流程自动化能力。开发者的角色从编码者转变为 "代理指挥官",需要重构 DevOps 流程。

智能体协作模式:就像人类团队一样,需要 "产品经理 Agent" 拆解需求,"架构师 Agent" 设计接口,"编码 Agent" 写代码,"测试 Agent" 找 Bug。多个智能体将组成协调团体,处理单个智能体根本搞不定的复杂任务。

开发效率的飞跃:开发速度提升 5 倍,跨团队协作效率翻番。企业可以实现 "动态激增(Surge)" 式的人员调配,工程师可以随时在不同项目间无缝切换,而无需支付高昂的认知切换成本。

5.3 对不同规模企业的差异化影响

技术变革对不同规模企业的影响存在显著差异:

大型企业:面临的主要挑战是如何在保持现有系统稳定性的同时,逐步引入 AI 和低代码技术。他们需要重新培训现有员工,建立新的开发流程和质量标准。同时,大型企业也有资源进行大规模的技术投资和人才培养。

中小企业:根据 IDC 报告,2026 年全球 AI + 低代码市场规模将突破 680 亿元,中小企业应用占比达 62%,同比增长 55%。中小企业更容易接受新技术,因为它们没有沉重的遗留系统负担,但同时也面临技术人才短缺的挑战。

创业公司:创业公司在这场变革中处于最有利的位置,它们可以从一开始就采用新的开发模式,利用 AI 工具快速迭代产品。但同时也面临资金压力和技术风险。

5.4 地域和文化差异

值得注意的是,技术变革的影响在不同地区和文化背景下也有所不同:

美国市场:根据 LinkedIn 的报告,2021-2025 年美国软件工程人才市场显示出对核心编程技能的强劲需求,对 Python 和云专业知识的招聘偏好,以及 AI 相关工具的大幅增长。

中国市场:中国作为全球 AI 测试工具市场增速最快的地区,贡献了超过 30% 的份额。同时,中国企业在 AI 和低代码技术的应用上表现出了强烈的意愿和快速的接受能力。

欧洲市场:欧洲企业在采用新技术时更加注重数据隐私和合规性,这可能会影响 AI 工具的部署速度,但也推动了更加安全和可靠的技术解决方案的发展。

六、深度解读:战略视角与商业洞察

作为 Google Cloud AI 总监,Addy Osmani 的这篇博客不仅仅是技术分析,更蕴含着深层的战略考量和商业洞察。

6.1 作者的权威性与战略定位

Addy Osmani 的背景赋予了这篇博客特殊的权威性。他是一位在 Google 工作超过 25 年的资深工程师,最近刚刚从领导 Chrome 开发者体验近 14 年的岗位,转型为 Google Cloud AI 总监,负责推动 Gemini、Vertex AI 和代理开发套件 (ADK) 在开发者和企业中的落地。

这种角色转变本身就反映了 Google 的战略意图 —— 将 AI 技术深度整合到开发者生态系统中。Osmani 现在的工作横跨 Google DeepMind、工程、产品与开发者关系团队,专注于将研究与工程落地连接起来。他的博客可以被视为 Google Cloud AI 战略的重要组成部分,旨在影响开发者社区对 AI 技术的认知和采用。

6.2 博客的战略意义

从战略角度看,这篇博客具有多重意义:

技术布道:作为 Google Cloud AI 的负责人,Osmani 的首要任务是推广 Google 的 AI 技术栈,包括 Gemini、Vertex AI 和 Antigravity 等产品。通过描绘 AI 时代的美好愿景,他在为这些产品创造市场需求。

标准制定:在 AI 技术快速发展的当下,行业标准和最佳实践尚未完全建立。Osmani 通过提出 "工厂模型"、强调测试驱动开发的重要性等观点,实际上是在为行业制定技术标准。

生态构建:博客中反复强调的 "编排者" 角色、T 型人才等概念,实际上是在为 Google 的 AI 生态系统定义所需的人才类型,引导开发者向这个方向发展。

6.3 商业逻辑与技术趋势的结合

仔细分析博客内容,可以发现其中蕴含的商业逻辑:

产品策略:Google 的 AI 产品(Gemini、Vertex AI、Antigravity 等)都强调了 "自主代理" 的概念,这与博客中描述的第三代 AI 工具特征高度吻合。通过技术趋势分析来推广产品,是一种高明的营销策略。

市场定位:博客将 Google 定位为不仅仅是 AI 工具的提供者,更是整个 AI 时代软件开发范式的引领者。通过提出 "工厂模型" 等创新概念,Google 试图在这个新兴市场中占据思想领导地位。

竞争优势:通过强调 "验证而非生成" 的挑战,以及人类监督的重要性,Google 实际上是在突出其产品在安全性、可靠性方面的优势,这是与竞争对手差异化的关键。

6.4 对行业生态的影响

这篇博客对整个技术生态系统的影响是深远的:

对开发者的影响:博客为开发者提供了一个清晰的发展路径图,帮助他们理解在 AI 时代需要具备哪些技能,应该避免哪些陷阱。这种指导对开发者的职业规划具有重要意义。

对企业的影响:企业可以从中了解技术发展趋势,提前布局人才战略和技术投资。特别是对于人力资源部门,这篇博客提供了未来招聘和培训的方向。

对教育机构的影响:传统的计算机科学教育体系面临挑战,博客为教育机构提供了课程改革的思路,推动了从理论导向向实践导向的转变。

对投资机构的影响:技术趋势的分析为投资决策提供了重要参考,特别是在 AI 工具、低代码平台等领域的投资机会。

6.5 批判性思考:潜在的局限性

尽管这篇博客提供了很多有价值的洞察,但我们也需要保持批判性思维:

技术乐观主义的风险:博客可能过度乐观地描绘了 AI 技术的前景,而对潜在的风险和挑战认识不足。例如,AI 生成代码的安全性、可靠性问题可能比预期更加复杂。

商业利益的影响:作为 Google Cloud AI 的负责人,Osmani 的观点不可避免地会受到商业利益的影响。我们需要理性看待其中可能存在的夸大或偏见。

文化和地域差异:博客主要基于美国和欧洲的技术发展情况,对其他地区的适用性可能有限。特别是在文化背景、监管环境等方面存在显著差异的地区。

时间跨度的挑战:博客预测的是 "未来两年" 的发展,但技术发展往往是非线性的,可能会出现意想不到的突破或挫折。

结语:拥抱变革,重塑未来

Addy Osmani 的《The Next Two Years of Software Engineering》不仅仅是一篇技术博客,更是一面镜子,映照出软件工程行业正在经历的深刻变革。通过对 AI 开发工具、自动化测试、低代码平台等关键技术的深入分析,以及对人才结构、开发模式、行业生态的全面展望,这篇博客为我们描绘了一个既充满机遇又充满挑战的未来图景。

关键洞察总结

通过深入解读,我们可以提炼出以下关键洞察:

  1. 1. 技术演进的必然性:AI 技术正在从根本上改变软件开发的方式,从辅助工具演变为自主代理,这是不可逆转的趋势。第三代 AI 编码工具能够自主运行数小时甚至数天,完成从环境搭建到测试部署的全流程。
  2. 2. 角色转变的紧迫性:开发者必须从 "代码编写者" 转变为 "系统设计者" 和 "智能体指挥家"。传统的编程技能并未过时,反而在新的范式下变得更加重要,但重点已经从机械的代码输入转向了认知层面的系统理解和架构设计。
  3. 3. 测试工作的战略地位:在 AI 时代,自动化测试从 "最佳实践" 上升为 "强制性要求"。"验证而非生成" 成为新的瓶颈,全面的测试优先套件和严格的质量控制流程成为确保系统可靠性的关键。
  4. 4. 低代码平台的双刃剑效应:低代码平台推动了软件开发的民主化,但也对专业开发者的角色定位提出了挑战。成功的关键在于找到专业化与通用化的平衡,成为 T 型人才。
  5. 5. 人才结构的深刻变革:行业正在经历从 "金字塔型" 向 "纺锤型" 的转变,基础岗位需求萎缩,新兴岗位大量涌现。这种转变要求个人和组织都必须重新思考技能培养和人才战略。

对不同群体的行动建议

基于这些洞察,我们为不同群体提出以下行动建议:

对开发者的建议

  • • 拥抱 AI 工具,但不要依赖它们。保持学习的热情,不断提升自己的核心技术能力。
  • • 培养系统思维和架构设计能力,这是 AI 无法替代的人类优势。
  • • 成为 T 型人才,在保持技术深度的同时,拓展跨领域的理解能力。
  • • 重视测试和质量控制,这将成为你在 AI 时代的核心竞争力之一。

对企业的建议

  • • 制定清晰的 AI 战略,平衡技术创新与风险控制。
  • • 投资于员工培训,帮助现有团队适应新的开发模式。
  • • 建立新的质量标准和流程,特别是在 AI 生成代码的审查和验证方面。
  • • 采用混合模式,结合 AI 工具、低代码平台和专业开发团队的优势。

对教育机构的建议

  • • 重新设计课程体系,平衡理论知识与实践技能。
  • • 引入 AI 相关课程,但不要忽视计算机科学的基础知识。
  • • 加强校企合作,让学生能够接触到真实的工业场景。
  • • 培养学生的终身学习能力,因为技术更新的速度只会越来越快。

对投资者的建议

  • • 关注 AI 工具、自动化测试、低代码平台等领域的投资机会。
  • • 重视具有创新性和差异化的技术解决方案。
  • • 关注能够解决实际问题、创造真实价值的技术,而不仅仅是概念炒作。
  • • 注意技术发展的地域差异,寻找在不同市场具有竞争力的投资标的。

最后的思考

站在 2026 年的时间节点上,我们正处于一个历史性的转折点。正如 Osmani 所说:"预测未来的最好方式,就是亲手去构建它"。在这个 AI 驱动的新时代,每一个软件工程师都有机会成为变革的推动者,每一个企业都有机会重塑自己的未来。

技术变革是一把双刃剑,它既可能带来失业和焦虑,也可能创造新的机遇和可能。关键在于我们如何理解、适应和引领这种变革。通过保持学习的心态、培养创新的思维、建立协作的文化,我们完全有能力在这个充满不确定性的时代中找到属于自己的位置。

Addy Osmani 的博客为我们提供了一个思考的起点,但真正的答案需要我们在实践中去探索和发现。让我们以开放的心态拥抱变革,以智慧的眼光把握机遇,共同创造软件工程更加美好的明天。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-21 09:47:55 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/653383.html
  2. 运行时间 : 0.236961s [ 吞吐率:4.22req/s ] 内存消耗:4,759.37kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=bff2521e5166d599a9389d0c48191fd1
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001206s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001651s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000735s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000746s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001370s ]
  6. SELECT * FROM `set` [ RunTime:0.000619s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001430s ]
  8. SELECT * FROM `article` WHERE `id` = 653383 LIMIT 1 [ RunTime:0.001906s ]
  9. UPDATE `article` SET `lasttime` = 1779328075 WHERE `id` = 653383 [ RunTime:0.005531s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000683s ]
  11. SELECT * FROM `article` WHERE `id` < 653383 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001164s ]
  12. SELECT * FROM `article` WHERE `id` > 653383 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001040s ]
  13. SELECT * FROM `article` WHERE `id` < 653383 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007020s ]
  14. SELECT * FROM `article` WHERE `id` < 653383 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002446s ]
  15. SELECT * FROM `article` WHERE `id` < 653383 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005583s ]
0.240939s