乐于分享
好东西不私藏

AI 时代软件工程师的核心开发技能

AI 时代软件工程师的核心开发技能

一、认知层:重构”工程师价值观”

1.1 核心认知转变

AI 不会取代工程师,但会用 AI 的工程师会取代不会用的工程师

更进一步的理解是——能用 AI 放大判断力的工程师,才是真正稀缺的。

过去的核心价值
AI 时代的核心价值
写代码的速度和数量
问题拆解与方案判断力
记忆 API 和语法
系统架构与边界意识
单点技术深度
技术 × 业务 × AI 的交叉能力
执行力
决策力 + 执行力

1.2 不可被替代能力的三层结构

第一层:AI 易替代
  - 样板代码生成
  - 简单 CRUD 实现
  - 已知算法实现
  - 文档翻译整理

第二层:AI 辅助,人主导(重点发展方向)
  - 架构设计
  - 性能调优
  - 系统排障
  - 技术选型

第三层:AI 基本无法替代(终极护城河)
  - 组织与人际关系处理
  - 跨团队利益协调
  - 创新性问题定义
  - 业务战略判断

核心策略:将精力集中在第二、三层,用 AI 自动化第一层。


二、技能层:必须掌握的七大核心能力

2.1 Prompt Engineering —— 与 AI 协作的语言

这是 AI 时代最基础也最被低估的技能。

好 Prompt 的五要素:

1. 角色设定 (Role)     —— "你是一名 Android 架构师"
2. 上下文 (Context)    —— "项目是一个千万级 DAU 的直播 App"
3. 任务 (Task)         —— "设计消息系统的架构"
4. 约束 (Constraints)  —— "不能引入新的第三方库,需要兼容 API 21+"
5. 输出格式 (Format)   —— "以 Markdown 格式输出,包含时序图"

进阶技巧:

技巧
说明
示例
分步拆解
复杂任务先让 AI 列出步骤,再逐步执行
“请先列出实现步骤,不要直接写代码”
自我审查
生成后追加检查指令
“请检查上述方案是否有遗漏或潜在问题”
提供反例
明确告知 AI 不能做什么
“不要使用 Handler,因为项目已全面迁移协程”
Role-play 调试
让 AI 以 code reviewer 身份审查自己写的代码
“现在请以资深工程师视角审查上面的代码”
反事实追问
主动问 AI 边界情况
“如果并发量突增 10 倍,这个方案会有什么问题?”

实践要点:

  • 把高质量 Prompt 沉淀成个人 Prompt 库
  • 在 Cursor 中配置 .cursorrules,让 AI 理解项目约束
  • 每次使用 AI 后主动 review,记录 AI 的错误模式

2.2 AI Agent 开发能力 —— 2026 最核心爆点

2.2.1 Agent 的本质

Agent 不是单次问答,而是一个循环推理 + 工具调用 + 自主决策的闭环系统:

用户目标
  ↓
LLM 规划(Plan)
  ↓
工具调用(Tools)← 搜索 / 代码执行 / 数据库 / API
  ↓
观察结果(Observation)
  ↓
继续规划 or 输出最终答案

核心范式是 ReAct(Reasoning + Acting):

Thought: 我需要先查用户余额
Action: query_balance(user_id=123)
Observation: 余额 500 元
Thought: 余额充足,可以下单
Action: create_order(...)

2.2.2 主流框架对比

框架
特点
适用场景
LangGraph
图结构状态机,精确控制流程
企业级复杂 Agent
CrewAI
多 Agent 协作,角色扮演
多智能体团队协作
AutoGen

(Microsoft)
对话驱动的多 Agent
代码生成、研究
Dify
低代码可视化
快速原型验证

2.2.3 LangGraph 核心代码示例

from langgraph.graph import StateGraph, END
from typing import TypedDict

classAgentState(TypedDict):
    messages: list
    next_action: str

# 定义图结构
graph = StateGraph(AgentState)
graph.add_node("planner", planner_node)
graph.add_node("tool_executor", tool_executor_node)
graph.add_node("responder", responder_node)

# 条件边控制流程
graph.add_conditional_edges(
"planner",
    should_use_tool,   # 判断函数
    {"tool""tool_executor""done""responder"}
)
graph.add_edge("tool_executor""planner")  # 执行完工具回到规划
graph.add_edge("responder", END)

app = graph.compile()

2.2.4 实践路径

Step 1:用 Dify/Coze 搭建一个能跑通的 Agent(感受完整流程)
  ↓
Step 2:用 LangGraph 实现同样功能(理解底层控制流)
  ↓
Step 3:用 MCP 扩展 AI 工具能力边界(接入自定义工具)
  ↓
Step 4:构建多 Agent 系统,解决复杂业务问题

2.3 MCP(Model Context Protocol)—— 工具扩展的标准协议

2.3.1 核心概念

MCP 是 Anthropic 发布的开放标准协议,解决”LLM 如何标准化地访问外部工具和数据”的问题。

┌─────────────┐     MCP Protocol      ┌──────────────────┐
│  MCP Client │ ◄──────────────────►  │   MCP Server     │
│(Claude/Cursor)│                      │  (你的业务工具)  │
└─────────────┘                       └──────────────────┘

MCP Server 暴露三类能力:

类型
说明
举例
Tools
AI 可主动调用的函数
执行 SQL、读写文件、调用 adb
Resources
AI 可读取的数据资源
文件内容、数据库记录、日志
Prompts
预设的提示模板
/analyze-crash

 命令

2.3.2 Android 工程师的 MCP 实践思路

构建 Android 开发专属 MCP Server:
  - Tool: adb_logcat()     → 直接读取设备日志
  - Tool: analyze_crash()  → 解析 ANR/Crash 堆栈
  - Tool: run_lint()       → 触发静态代码分析
  - Resource: build_output → 读取 Gradle 构建产物信息

这将成为区分是否真正掌握 AI 集成能力的关键指标。

2.3.3 MCP Server 最简实现

from mcp.server import Server
from mcp.server.models import InitializationOptions
import mcp.types as types

app = Server("android-dev-tools")

@app.list_tools()
asyncdefhandle_list_tools() -> list[types.Tool]:
return [
        types.Tool(
            name="get_logcat",
            description="获取 Android 设备实时日志",
            inputSchema={
"type""object",
"properties": {
"filter": {"type""string""description""日志过滤标签"}
                }
            }
        )
    ]

@app.call_tool()
asyncdefhandle_call_tool(name: str, arguments: dict):
if name == "get_logcat":
# 执行 adb logcat 命令
        result = subprocess.run(
            ["adb""logcat""-d""-s", arguments.get("filter""*")],
            capture_output=True, text=True
        )
return [types.TextContent(type="text", text=result.stdout)]

2.4 RAG(检索增强生成)—— 知识库问答系统

2.4.1 核心原理

用户提问
  ↓
文本向量化(Embedding)
  ↓
检索向量数据库(最相关的 Top-K 文档块)
  ↓
将检索结果注入 Prompt
  ↓
LLM 基于上下文生成准确答案

2.4.2 RAG 解决的核心问题

问题
RAG 的解决方式
LLM 知识截止日期
注入最新文档
LLM 容易幻觉
基于真实文档生成,可溯源
私有知识库问答
接入企业内部文档
长文档超出上下文窗口
分块检索,按需注入

2.4.3 为什么移动端工程师也需要懂 RAG

  • 企业内部知识库问答(接入公司文档、代码规范)
  • App 内置 AI 助手功能的实现
  • 将自己的技术文档体系构建成可问答的知识库

2.4.4 快速上手路径

Step 1:用 LlamaIndex 或 LangChain 处理文档(分块、向量化)
Step 2:存入 ChromaDB 或 FAISS 向量数据库
Step 3:实现检索 + 注入 + 生成完整流程
Step 4:优化检索策略(混合检索、重排序)
# RAG 核心代码(LlamaIndex 示例)
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

# 加载文档(你的工作区 md 文件)
documents = SimpleDirectoryReader("./").load_data()

# 构建索引
index = VectorStoreIndex.from_documents(documents)

# 查询
query_engine = index.as_query_engine()
response = query_engine.query("Android Binder 的核心原理是什么?")
print(response)

2.5 端侧 AI 推理 —— 移动端工程师的核心壁垒

2.5.1 技能树

端侧 AI 推理能力
├── 模型格式理解
│   ├── ONNX(跨框架通用格式)
│   ├── TFLite(Google 移动端格式)
│   └── CoreML(Apple 生态)
├── 推理框架选型
│   ├── MNN(阿里,性能极强,国内主流)
│   ├── ONNX Runtime(微软,跨平台通用)
│   ├── TFLite(Google,Android 官方)
│   └── MediaPipe(Google,CV 任务专用)
├── 硬件加速
│   ├── NNAPI(Android 统一硬件加速 API)
│   ├── NPU(高通 Hexagon、华为 NPU)
│   ├── DSP(数字信号处理器)
│   └── GPU(OpenCL / Vulkan)
├── 模型优化
│   ├── 量化(FP32 → INT8/FP16,体积缩小 4x)
│   ├── 剪枝(去除冗余参数)
│   └── 蒸馏(大模型指导小模型训练)
└── 性能调优
    ├── 推理延迟(Latency)
    ├── 内存占用(Memory Footprint)
    └── 功耗(Power Consumption)

2.5.2 框架选型决策树

需要最高性能 & 国内项目?
  → MNN(阿里,在快手/抖音/淘宝广泛使用)

需要跨平台(Android + iOS + PC)?
  → ONNX Runtime(微软,生态最广)

跑 TensorFlow 训练的模型?
  → TFLite(Google 官方支持)

做 CV 类任务(人脸/手势/姿态检测)?
  → MediaPipe(开箱即用的 Pipeline)

2.5.3 ONNX Runtime Android 集成示例

// 添加依赖
// implementation("com.microsoft.onnxruntime:onnxruntime-android:1.17.0")

classONNXInferenceEngine(privateval context: Context) {

privatelateinitvar session: OrtSession
privateval ortEnvironment = OrtEnvironment.getEnvironment()

funloadModel(modelPath: String) {
val sessionOptions = OrtSession.SessionOptions().apply {
// 启用 NNAPI 硬件加速
            addNnapi()
// 设置线程数
            setIntraOpNumThreads(4)
        }
        session = ortEnvironment.createSession(modelPath, sessionOptions)
    }

funinference(inputData: FloatArray, inputShape: LongArray): FloatArray {
val inputTensor = OnnxTensor.createTensor(
            ortEnvironment, 
            FloatBuffer.wrap(inputData), 
            inputShape
        )

val result = session.run(mapOf("input" to inputTensor))
return (result[0].value as Array<FloatArray>)[0]
    }
}

2.5.4 性能基准测试清单

□ 冷启动推理延迟(首次加载 + 推理总时间)
□ 热推理延迟(模型已加载后的单次推理时间)
□ 峰值内存占用(推理过程中)
□ CPU vs GPU vs NPU 各硬件的延迟对比
□ INT8 量化 vs FP32 精度损失评估
□ 低端机(骁龙 665)vs 高端机(骁龙 8 Gen 3)性能差异

2.6 Agentic Coding / Vibe Coding —— 高效 AI 协作范式

2.6.1 两种范式的区别

维度
传统编码
Vibe Coding
Agentic Coding
驱动方式
实现驱动
意图驱动
目标驱动
AI 角色
补全工具
协作伙伴
自主执行者
人类角色
编码者
引导者
决策者 + 验证者
任务粒度
函数级
功能级
项目级

2.6.2 Agentic Coding 的核心工作流

1. 定义目标(What)
"实现一个支持断点续传的文件下载模块"
     ↓
2. 描述约束(How not)
"不引入新依赖,基于 OkHttp,需要兼容 API 24+"
     ↓
3. 让 AI 规划步骤(Plan)
"请先列出实现步骤和关键技术点"
     ↓
4. 逐步执行与验证(Execute & Verify)
   每个步骤完成后,人工验证正确性
     ↓
5. 迭代修正(Iterate)
"第三步的实现有问题,因为..."

2.6.3 Cursor 高级用法

# 必须掌握的 Cursor 功能

@codebase          → 让 AI 理解整个代码库
@file              → 引用特定文件作为上下文
@docs              → 引用外部文档
@web               → 实时搜索最新信息

Composer 模式       → 多文件协同修改
Chat 模式           → 代码库问答与分析
.cursorrules       → 项目级 AI 行为规范配置
MCP 集成            → 扩展 AI 工具能力

2.6.4 .cursorrules 配置示例(Android 项目)

# Android Project Rules

## 技术栈约束
语言:Kotlin(禁止新增 Java 文件)
异步:Kotlin 协程(禁止使用 RxJava)
UI:Jetpack Compose(禁止新增 XML 布局)
架构:MVI + Clean Architecture
最低 SDK:API 24

## 代码规范
所有公共 API 必须添加 KDoc 注释
ViewModel 不得持有 View 引用
Repository 层不得直接调用 UI 相关 API
网络请求必须有超时和错误处理

## 命名规范
文件名:PascalCase
变量名:camelCase
常量:UPPER_SNAKE_CASE
协程 Flow 变量以 Flow 结尾

## 测试要求
核心业务逻辑必须有单元测试
ViewModel 逻辑必须可测试

2.7 系统架构设计能力 —— AI 无法替代的核心壁垒

2.7.1 为什么架构是最坚实的护城河

架构决策依赖以下 AI 永远无法独立掌握的信息:

✗ 团队现状与组织结构(AI 不知道)
✗ 业务约束与监管要求(AI 不了解)
✗ 历史包袱与迁移成本(AI 看不到全局)
✗ 团队技能储备(AI 无法评估)
✗ 产品未来方向(AI 无法预测)

2.7.2 必须掌握的架构能力矩阵

层次
核心知识
实战重点
架构模式
分层架构、六边形架构、事件驱动
知道什么场景用什么模式
端侧架构
MVVM / MVI / Clean Architecture
如何划分模块边界
系统设计
高并发、高可用、限流熔断
能设计出鲁棒的系统
架构原则
SOLID、依赖倒置、开闭原则
不是背诵,是实战判断
技术债管理
识别、量化、有计划地偿还
与业务节奏平衡

2.7.3 架构能力的培养方法

1. 阅读优秀开源项目的架构设计(而不只是代码)
2. 系统性学习高并发/高可用系统设计(推荐:DDIA 书籍)
3. 参与真实项目的架构评审,学习他人决策思路
4. 记录每次架构决策的背景、权衡、结果(架构日志)
5. 复盘线上故障,分析架构层面的根因

三、实践层:具体行动路线图

阶段 1:AI 工具深度集成

□ 100% 使用 Cursor 进行日常编码,掌握 @codebase、Composer 等高级用法
□ 整理个人 Prompt 模板库(至少 10 个高频场景)
□ 为当前项目配置 .cursorrules
□ 尝试让 AI 完成一次完整的功能开发任务(从需求到单元测试)
□ 每次使用 AI 后主动 review,记录错误模式

阶段 2:AI 应用开发能力

□ 使用 LangGraph 实现一个简单的 Android 开发辅助 Agent
□ 搭建基于工作区技术文档的 RAG 知识库问答系统
□ 开发一个 MCP Server,扩展 Cursor 的 Android 开发能力
□ 完成一个端侧 AI 推理 Demo(用 ONNX Runtime 或 MNN 跑一个模型)
□ 在 Android 项目中集成一个 AI 功能(如:智能搜索 / 内容理解)

阶段 3:建立专精壁垒

□ 在端侧 AI 推理方向深度专精(选择 MNN 或 ONNX Runtime 深入研究)
□ 构建一个完整的 Android AI 功能(含模型优化、硬件加速、性能调优)
□ 参与一个 AI 相关的开源项目(贡献真实有价值的 PR)
□ 输出 5 篇以上有深度洞察的技术文章
□ 在团队中推广 AI 工程化实践,成为 AI 工具布道者

四、警惕的反模式

反模式
危害
正确做法
追逐每个新 AI 工具,浅尝辄止
知道概念,没有实战能力
选定 2-3 个核心工具深度掌握
不理解 AI 生成代码就直接提交
引入 Bug、安全漏洞、架构问题
把代码审查能力作为核心技能培养
认为”有 AI 帮我就够了”
判断力退化,调试能力萎缩
用 AI 放大判断力,而不是替代思考
只学技术,忽视软技能
无法推动方案落地,影响力受限
沟通、架构决策、业务理解同等重要
对底层原理越来越模糊
无法判断 AI 生成代码的正确性
AI 时代更需要扎实基础,它是判断力的来源
技术焦虑导致浅尝辄止
看了很多教程但无实际产出
选一个方向,做完一个有真实用户的项目

五、AI 时代工程师的核心公式

顶级工程师 = 
    深厚技术根基(不可省略,是判断力的来源)
  × AI 工具放大效应(效率 10x 提升)
  + 系统架构能力(差异化竞争壁垒)
  + 跨领域协作能力(不可被替代的人类价值)
  + 持续学习适应能力(长期竞争力)

最核心的一句话:AI 不会取代工程师,但会用 AI 的工程师会取代不会用的工程师
更进一步:能用 AI 放大自己判断力的工程师,才是真正稀缺的。