




















我们天生对速度有着无法抗拒的迷恋。当AI能在三秒内,为我们抛出的一个复杂问题,瞬间生成三百行代码时,那种“即时满足感”是极其强烈的。我们的大脑会分泌多巴胺,我们会惊叹于它的神速,我们会觉得自己拥有了全世界最强大的生产力工具。
这种对速度的沉迷,正是AI编程中最危险、也最具欺骗性的陷阱。
一个初级工程师,拿到需求后的第一反应是“马上动手写代码”。而一个资深的工程师或架构师,拿到同一个需求后,他的第一反应是“等一下,让我先想一想”。他会花上数小时,甚至数天的时间,去调研、画图、比较方案、评估风险。他知道,在键盘上敲下第一个字符之前,战争的胜负,多半已经在他脑中的沙盘推演里决定了。
AI,天生就是一个“初级工程师”。它的底层机制,决定了它永远倾向于用“最快的速度”给出“概率最高的答案”,而这个答案,往往就是直接生成代码。
如果我们放任这种天性,我们就永远只能得到“初级”水平的产出。而流程约束的核心,就是要逆转这种天性。我们要做的,就是从AI手中“剥夺”它最擅长的“立即执行代码的权力”,强迫它“慢下来”,模仿一个资深工程师的思维流程,先“思考”,再“行动”。
本章,我们将学习一套标准化的“三步走”工作流。这套流程将像一个“思维脚手架”,强制AI在面对任何一个非凡琐的需求时,都必须先进行“调研”、再进行“谋局”、最后才能“落地”。通过这种方式,我们把AI的强大算力,从“低质量的快速响应”,引导到“高质量的深度思考”上来。
让我们先来解剖一下,“直接写代码”这种做法,到底错在哪里。为什么这种看似最高效的方式,在处理复杂问题时,反而成了最愚蠢、最昂贵的选择?
当你不加引导地直接抛出一个问题,比如“如何实现一个支持插件化的系统?”,AI并不会真的去“理解”你业务中“插件化”的深层含义。它的神经网络,会在它庞大的训练数据中,光速进行模式匹配。
它会找到上千个与“插件化系统”这个关键词相关的代码片段、教程和设计模式。然后,它会选择其中最常见、出现频率最高的一种模式(比如,一个简单的“观察者模式”或“策略模式”的实现),把它“翻译”成代码,呈现给你。
这个过程,缺少了最关键的一环:问题澄清与需求分析。
这些决定了最终架构走向的、至关重要的问题,AI一个都不会问。它只会给你一个“最通用”、“最标准”的答案。而这个“标准答案”,有极大的概率,根本不适合你独特的、具体的业务场景。
结果就是,你要么得到一个过于简陋、无法满足未来扩展的“玩具”,要么得到一个过度设计、引入不必要复杂度的“航空母舰”。无论哪种,你都浪费了时间,并在一开始就走上了错误的技术道路。
一旦AI生成了第一版代码,你的注意力就会立刻被代码本身所吸引。你会开始思考:
这种对“实现细节”的过早关注,是架构设计的大忌。它会让你失去全局视角。在你还没想清楚整个系统的“骨架”应该是什么样子的时候,你就已经开始纠结于某一块“砖头”的花纹了。
这在心理学上被称为“锚定效应”。AI给出的第一版代码,无论好坏,都会成为你后续思考的“锚点”。你会不自觉地在这个“锚”的基础上,进行修修补补(即我们反复强调的“确认偏误”),而很难再跳出来,去思考是否存在一个完全不同、但更好的顶层设计。
直接写代码,相当于AI主动为你抛下了一个“思想之锚”,将你和它自己,一同困在了某一个具体的、狭隘的实现路径上。
我们在第一章就确立了,人类在AI协作中的核心角色是“决策者”。而决策的价值,体现在对不同方案的权衡与取舍上。
软件工程中,几乎不存在“唯一的正确答案”。
选择哪一个方案,不完全是一个技术问题,它更是一个结合了项目周期、团队能力、业务风险、未来规划等诸多因素的商业决策。
当你直接让AI写代码时,你实际上是把这个至关重要的“决策权”,不负责任地让渡给了AI。而AI,作为一个没有商业意识、不懂你公司战略的概率模型,它会替你做出什么选择?它只会选择那个在它的训练数据中最“平庸”、最“常见”的方案。
这是一种极其危险的权力真空。你放弃了自己最有价值的工作,却让一个最不适合做决策的“实习生”,替你决定了整个项目的命运。
结论: “快”,是AI编程中最廉价的副产品,也是最昂贵的诱惑。一个专业的AI协作者,必须建立起对这种“即时满足感”的免疫力。
我们的第一原则是:在问题没有被充分理解、方案没有被充分评估、决策没有被明确做出之前,严禁AI生成任何一行实质性的业务代码。
我们要剥夺它的“执行权”,直到我们——作为总指挥官——对整个战役的地图、目标和行军路线,都了然于胸。而要做到这一点,我们需要一个标准化的作战流程。
为了强制AI(以及我们自己)进行“慢思考”,我设计了一套不可逾越的“三步走”标准工作流。对于任何一个中等复杂度以上(比如,需要花费超过半天时间)的需求,都必须严格遵循这个流程。
这个流程,本质上是对一个资深工程师大脑中隐性的“问题解决模型”的显性化和流程化。
目标:在这一阶段,我们的唯一目标是收集信息、澄清需求、识别约束。禁止讨论任何具体的实现方案。我们要像一个侦探一样,勘察案发现场,而不是过早地断定凶手是谁。
核心活动:
产出物:一份简短的、结构化的“需求分析与风险评估”文档。
AI的角色:在这个阶段,AI不是“程序员”,而是你的“超级研究助理”。它极其擅长快速地检索信息、总结文档、对比技术。
目标:基于第一阶段收集到的信息,开始设计和比较多种可能的解决方案。注意,是“多种”,而不是“一种”。我们的目标是产出选项,并进行权衡。
核心活动:
产出物:一份包含“方案对比表”和最终“技术方案与任务清单”的文档。
AI的角色:在这个阶段,AI是你的“架构设计顾问”。它擅长根据你的约束,生成不同风格的方案,并为你填充对比表格的细节。但最终的决策,必须由你来做。
目标:只有在第二阶段的“技术方案”和“任务清单”被最终确认后,我们才进入这个阶段。此阶段的目标是高效、精确地将设计转化为代码。
核心活动:
CHANGELOG.md)。产出物:可工作的、经过测试的、符合规范的代码。
AI的角色:在这个阶段,AI才终于可以扮演它最被大家所熟知的角色——“高速代码生成器”。因为所有的“思考”和“决策”工作,都已经在前两步完成了。此时的AI,是在一个极其确定的、无歧义的“轨道”上行进,它的速度优势才能被安全、高效地发挥出来。
这个“三步走”流程,就像一个强制性的“阀门”,它确保了:
理论是灰色的,生命之树常青。让我们来看一下,在实战中,如何通过具体的提问,来引导AI走完这“三步走”的每一步。
以下模板,是我在实践中千锤百炼打磨出来的,你可以根据自己的需求进行调整,但其背后的“思维结构”是通用的。
目标:榨干AI作为“信息检索器”的价值,构建对问题的全面认知。
核心句式:“扮演一个XX角色”、“为我分析/拆解/列出”、“识别风险”、“不要提供任何解决方案”。
【模板 7.1:需求澄清与分解】
你的提问:
Context: We have received a new feature request from our product manager. The original request is: "
[粘贴产品经理的原话,比如:我想要一个'智能推荐'功能,根据用户的浏览历史,向他们推荐相关的文章。]"Your Role: Act as a Senior Business Analyst. Your task is to break down this high-level, ambiguous requirement into a list of specific, answerable questions that we need to clarify before any technical work can begin.
Task:
- Deconstruct the Requirement: Break the core request into smaller, functional components.
- Identify Ambiguities: For each component, list the key questions we need to ask the product manager to define the scope and success criteria. Examples: What defines "recent" history? What does "related" mean? How many recommendations to show?
- Define Boundaries: List what is explicitly out of scope for this feature's first version.
Constraint: Do not, under any circumstances, suggest any technical implementation or solution at this stage. Your entire focus is on clarifying the "What", not the "How".
【模板 7.2:技术选型预研】
你的提问:
Context: For our "Article Recommendation" feature, we need to choose a method to calculate the "relatedness" between articles. Let's assume articles have tags.
Your Role: Act as a Research Engineer. Your task is to conduct a preliminary investigation into common techniques for this problem.
Task:
- Identify Techniques: List at least three common algorithms or techniques for calculating similarity based on tags (e.g., Jaccard Similarity, TF-IDF with Cosine Similarity, etc.).
- Summarize Pros and Cons: For each technique, provide a brief, 2-3 sentence summary of its core idea, and list its main advantages and disadvantages in a bulleted list. Focus on aspects like computational complexity, ease of implementation, and quality of results.
- Find Libraries: For each technique, identify one popular and well-maintained library in
[你的技术栈,比如:Python]that implements it.Constraint: Do not recommend a "best" option. Your goal is to provide an objective, neutral summary of the available options for my review.
目标:让AI生成多个平行方案,并强制它进行“自我辩论”,最终由你来裁决。
核心句式:“设计方案A/B/C”、“创建一个对比表格”、“根据以下标准进行评估”、“我决定选择方案X,请为我制定执行计划”。
【模板 7.3:多方案设计与对比】
你的提问:
Context: Based on our research, we have the necessary information to design the architecture for the "Article Recommendation" feature. Our core constraints are: the calculation must be fast (under 50ms), and it must run on our existing
[比如:Python/Flask]backend.Your Role: Act as a Solutions Architect. Your task is to propose and compare three distinct architectural approaches.
Task:
- Propose Three Solutions:
- Solution A (Simple & Fast): An approach based on pre-calculating and caching similarity scores. Describe how and when this pre-calculation would happen.
- Solution B (Real-time & Flexible): An approach that calculates similarity on-the-fly with every request. Describe how to optimize this.
- Solution C (Hybrid): A combination of the two, e.g., using a faster, simpler algorithm for real-time and a more complex one for offline batch processing.
- Create a Comparison Table: Generate a markdown table that compares these three solutions across the following criteria:
- Performance (Latency)
- Data Freshness (How up-to-date are the recommendations?)
- Implementation Complexity
- Infrastructure Cost
- Scalability
- Provide a Recommendation: After the table, briefly state which solution you would recommend and why, explicitly stating the trade-offs it makes.
【模板 7.4:决策确认与任务拆解】
你的提问:
Context: I have reviewed the options. My Decision: We will proceed with Solution A (Pre-calculation). The trade-off of slightly less fresh data is acceptable for the gain in performance and simplicity.
Your Role: Act as a Tech Lead. Your task is to take this architectural decision and break it down into a concrete, step-by-step implementation plan.
Task:
- Define Data Models: Specify any new database tables or data structures needed (e.g., a
article_similaritytable).- Outline Key Modules/Functions: List the main new functions or classes we will need to create. For each, give it a clear name and a one-sentence description of its responsibility (e.g.,
calculate_similarity_matrix(),get_recommendations_for_article(article_id)).- Create a Sequential Task List: Generate a numbered list of development tasks in the logical order they should be completed. This should be a checklist an engineer can follow. Example:
DB: Add 'article_similarity' table migration.Backend: Implement the Jaccard similarity calculation logic.Backend: Create a background job (e.g., cron) to run the calculation nightly.Backend: Create the API endpoint GET /articles/:id/recommendations.Tests: Write unit tests for the similarity logic.Constraint: All tasks should be small enough to be completed in a single coding session.
目标:在完全确定的轨道上,最大化AI的代码生成效率。
核心句式:“根据我们的计划,执行任务X”、“为这个函数编写代码”、“为这段代码编写测试”。
【模板 7.5:聚焦式编码指令】
你的提问:
Context: We are now implementing the plan. Our current task is: "
[从任务清单里复制一项,比如:Backend: Implement the Jaccard similarity calculation logic.]"Your Role: Act as a Senior Pair Programmer.
Task: Write the Python function
calculate_jaccard_similarity(tags1: set, tags2: set) -> float.Constraints:
- The function must be pure, with no side effects.
- It must handle cases where one or both sets are empty (return 0.0).
- Include a clear docstring explaining the formula.
After you provide the function, immediately provide a second code block with three unit test cases for it using the
unittestframework.
通过这套模板,你将原本一次性的、模糊的“给我代码”,变成了一场结构化的、由你主导的、层层递进的“深度工作坊”。你不再是AI的“用户”,而是它的“流程管理者”。
为了让你对这个流程有一个更直观的理解,下面是一张流程图,清晰地展示了信息和决策是如何在这三个阶段之间流转的,以及人类决策者在其中的关键“门禁”作用。
graph TD
A[需求输入 - 模糊] --> B{阶段一: 调研};
B -- "提问模板7.1 & 7.2" --> C[AI: 生成需求分析 & 技术预研报告];
C --> D{人类审查};
D -- "信息是否充分?" --> |否| B;
D -- "是" --> E{阶段二: 謀局};
E -- "提问模板7.3" --> F[AI: 生成多种方案对比];
F --> G{人类决策};
G -- "选择方案A/B/C" --> H["提问模板7.4"];
H --> I[AI: 生成最终方案 & 任务清单];
I --> J{人类最终确认};
J -- "计划是否清晰?" --> |否| E;
subgraph "思考区 (No Code Zone)"
direction LR
B; C; D; E; F; G; H; I; J;
end
J -- "是, 批准执行!" --> K{阶段三: 落地};
subgraph "执行区 (Coding Zone)"
direction LR
K -- "提问模板7.5 (逐个任务)" --> L[AI: 生成代码 & 测试];
L --> M{人类审查 & 集成};
M -- "任务完成?" --> |是| N((完成));
M -- "否" --> K;
end
style G fill:#f9f,stroke:#333,stroke-width:4px
style J fill:#f9f,stroke:#333,stroke-width:4px
图解说明:
G - 人类决策:在比较了多个方案后,你必须做出选择。没有你的拍板,流程无法进入下一步。J - 人类最终确认:在AI生成了最终的执行计划后,你必须做最后一次审查和批准。这是“开工”前的最后一道安全阀。请把这张流程图,作为你与AI协作的“作战地图”。它将时刻提醒你,在复杂的需求面前,纪律、流程和耐心,远比单纯的速度更重要。通过强制AI像一个资深工程师一样“慢思考”,你最终得到的,将是真正高质量、高效率的“快结果”。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。