标签 程序员 下的文章

系统设计的“元素周期表”:40个横跨所有领域的通用设计原则

本文永久链接 – https://tonybai.com/2025/07/31/periodic-table-of-system-design

大家好,我是Tony Bai。

近日,一篇名为《系统设计的元素》(Elements of System Design)的论文引发社区热议。它的目标宏大且吸睛:通过梳理上百篇横跨操作系统、数据库、分布式系统等领域的经典论文,提炼出一套通用的系统设计原则“元素周期表”

这份“周期表”的价值,不在于提供一套死板的规则,而在于为我们提供一套共享的词汇和心智模型。它能帮助我们更清晰地思考、更精确地沟通、更深刻地理解不同系统设计背后的内在联系。

下面便是该论文的中译版,希望能给大家带去启发。


系统设计通常通过特定领域的解决方案来传授,例如数据库、操作系统或计算机体系结构,每个领域都有其自成一派的方法和术语。虽然这种多样性是一种优势,但它也可能掩盖了跨领域反复出现的共通原则。本文提出了一个从计算机系统多个领域中提炼出的系统设计原则的初步分类法。其目标是提供一套共享、简洁的词汇,以帮助学生、研究人员和实践者对系统结构和权衡进行推理,跨领域比较设计,并更清晰地沟通设计选择。

引言

投身于计算机系统领域的一大乐趣在于其纯粹的多样性,它涵盖了操作系统、数据库、计算机体系结构、分布式系统、编程语言、网络等众多分支,每个分支都有着丰富的历史。对于初学者来说,由于传统和词汇的多样性,要发现不同领域之间的联系可能颇具挑战:相同的设计原则可能会以不同的面貌出现在不同的领域中。

例如,思考一下 Jim Gray 等人关于数据库隔离级别的经典论文。它仔细阐述了并发控制机制以及在正确性和性能之间的权衡。然而,如果没有在操作系统或计算机体系结构领域接触过类似问题,这些思想可能看起来仅仅是狭隘地“关于数据库”的。实际上,相同的设计原则,“放宽一致性”,以不同的形式在各种系统中反复出现,从弱顺序内存层次结构到分布式系统中的最终一致性协议。当每个社区都使用自己的术语和范例时,初学者可能很难识别出底层的设计原则。这种碎片化增加了认知开销,因为同一个权衡必须在每个上下文中重新学习。

这是一个更广泛的模式:系统研究富含实践洞见,但在共享的概念性支架上则较为薄弱。在各个领域中,类似的挑战反复出现,如管理并发、确保一致性和适应变化,而其框架和词汇却常常不同。因此,看似毫不相关的领域之间的深层联系可能仍然相对模糊。

本文是朝着弥合这些差距迈出的一小步。借用门捷列夫的比喻,我们提出了一个反复出现的系统设计原则的“元素周期表”。其目标并非一个僵化的分类法,而是一个可用的词汇表:一种用以标注论文、讲座和设计文档中所采用的基本原则的简洁方式。其目的是揭示计算机系统中已经存在的结构,以便学生能形成更连贯的心理地图,研究人员能精确定位其贡献,而实践者能以更高的清晰度跨领域讨论设计选择。

方法论

我们通过回顾操作系统、计算机体系结构、数据库、网络、编程语言、安全以及计算机系统其他领域的 100 多篇有影响力的论文来识别这些原则。这些论文因其历史意义和持续的相关性而被选中,例如关于并发控制 和共识 的经典论文,以及关于在系统内部使用机器学习 和为云设计系统 的近期工作。

对于每篇论文,我们都问:其底层的高层设计原则是什么?在不同领域中,独立的系统常常不是在机制上趋于一致,而是在共享的设计原则上:例如,通过放宽一致性来提高性能,或通过提升抽象来增强可用性。

要被认定为一条系统设计原则,它必须满足两个条件:

  1. 抽象性 – 该原则必须独立于具体的技术或实现。
  2. 通用性 – 该原则必须在不同领域中出现(例如,数据库系统、操作系统、编程语言)。

本分析旨在梳理出许多具有持久、通用价值的原则,而非对所有原则进行编目。

设计原则表

我们整理了一套结构化的、包含 40 多个从系统文献中提炼出的通用设计原则。如下图所示,它们被组织成反映了系统设计中常见维度的不同主题组。

图例: Code = 唯一短符号, Name = 原则名称, Intent = 简短描述。

每个原则都带有一个简短的符号(例如,Co 代表可组合性,Op 代表乐观设计)以便快速参考。我们强调设计意图而非规定具体机制:这些原则阐述的是诸如“在并发下保持正确性”或“优先处理普遍情况”等目标,而不是“使用此锁定协议”或“优化此查询计划”,具体的实现则留给特定领域。

目录

  • Group 1: 结构: 如何用清晰的边界和扩展点来切分和连接组件。
  • Group 2: 效率: 通过将精力集中在有回报的地方,来减少工作或降低成本。
  • Group 3: 语义: 精确地指定行为和接口。
  • Group 4: 分布: 在分布式架构中协调工作和数据。
  • Group 5: 规划: 根据目标、成本和约束自动选择方案。
  • Group 6: 可操作性: 在最小化中断的情况下观察、适应和演进运行中的系统。
  • Group 7: 可靠性: 在故障、并发和部分失效下保持正确性。
  • Group 8: 安全性: 约束权限和强制隔离以保护安全和完整性。

Group 1: 结构

Si – Simplicity (简单性)

选择满足当前需求的最简单的系统设计;抵制复杂性,例如“以防万一”而增加的额外层次、服务或通用性,直到有证据表明其有益。

示例: 避免对系统进行过早的架构优化。

Mo – Modularity (模块化)

将系统划分为具有最小化接口的高内聚单元,以便每个单元都可以被独立地推理、替换或演进。该原则专注于分解:选择边界以促进关注点的清晰分离,使每个职责都位于一个模块内。

示例: OSI 模型将通信分解为具有明确边界的标准化层次,允许独立开发和替换。

Co – Composability (可组合性)

设计可被安全、灵活地重新组合的组件;依赖显式的合约和类型约束的接口,以使每个合法的组合都保持正确,让组件能像可互换的积木一样被组装。与模块化不同,该原则专注于重新组合:确保组件可以安全、灵活地结合。

示例: Unix 程序(如 grep, sort, uniq)从标准输入读取并写入到标准输出,让用户可以组合复杂的文本处理管道。

Ex – Extensibility (可扩展性)

设计系统以允许安全的用户自定义扩展,例如插件,而无需修改系统核心。当扩展来自不受信任方时,通过沙箱进行隔离以保护安全。

示例: Unix 也体现了可扩展性:用户可以添加新程序而无需更改内核。

Pm – Policy/Mechanism Separation (策略与机制分离)

通过暴露一个通用接口,将“应该做什么”(策略)与“如何执行”(机制)分离开来,使得多种策略可以插入到同一个机制中。

示例: Hydra 拥有一个通用机制的内核(调度、分页、保护),并将资源分配策略移至用户级模块。

Gr – Generalized Design (通用化设计)

设计一个具有明确变化点(如类型、可调参数或插件)的单一核心,使其可以在不产生重复的情况下服务于多种用例,但当特化能带来性能、准确性或清晰度的显著提升时,则进行特化。

示例: C++ 标准模板库是一组通过模板参数化的容器、迭代器和算法的集合。Postgres 允许用户向核心数据库系统添加类型和操作符。

Group 2: 效率

Sc – Scalability (可伸缩性)

设计系统以应对数据、流量或节点的增长,同时保持成本或延迟的近线性增长。

示例: MapReduce 通过将工作分解为并行任务并以最小的协调来聚合结果,从而在节点间进行扩展。

Rc – Reuse of Computation (计算复用)

通过缓存、物化中间结果(例如索引),或在重复或稍作修改的输入上增量更新输出来避免冗余工作,从而节省计算。

示例: B+树复用其已排序的键顺序:查找遵循现有的搜索路径,而不是每次重新扫描整个数据集,从而复用了计算。

Wv – Work Avoidance (工作规避)

跳过不会改变外部可观察结果的计算。例子包括惰性求值和谓词短路。

示例: 惰性求值将工作推迟到值被需要时才执行,从而消除了无用的计算。

Cc – Common-Case Specialization (普遍情况特化)

检测主导运行时的执行路径或数据项(“热点”),并专门为它们创建一个精简的快速路径,同时用一个较慢的通用路径来正确处理所有情况。

示例: 在首次调用时缓存接收者类的目标方法,这样后续对该普遍接收者的调用将命中快速路径;不常见的类则回退到完整的方法查找例程。

Bo – Bottleneck-Oriented Optimisation (瓶颈导向优化)

对端到端性能进行剖析,定位最紧张的资源约束,并在此处集中改进,直到另一个阶段成为限制因素。

示例: 罕见的第99百分位延迟的长尾请求是延迟瓶颈,而复制请求有助于削减尾部响应时间。

Ha – Hardware-Aware Design (硬件感知设计)

根据底层硬件的延迟、带宽、并行性和持久性特性(例如缓存层次、NUMA、SSD、GPU)来塑造算法和数据结构。

示例: BLAS 定义了经过缓存和向量优化的内核,使线性代数代码能高效利用硬件。

Op – Optimistic Design (乐观设计)

假设普遍情况会成功并继续执行,跳过协调,仅在假设被证明错误时才依赖一个(可能昂贵的)恢复路径。

示例: 乐观并发控制无锁地运行事务,然后在提交时进行验证,仅在检测到冲突时才回滚。

La – Learned Approximation (学习式近似)

用在数据上训练的模型替换手工制作的算法,以牺牲有界的不精确性来换取效率或灵活性。

示例: 感知器分支预测器在线学习权重以预测分支结果,其性能优于固定的两位计数器,且无需扩大表的大小。

Group 3: 语义

Al – Abstraction Lifting (抽象提升)

将底层操作封装在一个更高层的接口或领域特定语言之后,该接口表达的是意图而非步骤。这使得内部优化成为可能,也允许单一的定义能针对不同的后端。

示例: SQL 查询声明要检索的结果;DBMS 自动选择访问路径、连接顺序和物理操作符。

Lu – Language Homogeneity (语言同质性)

在核心组件和扩展中采用单一、良定义的中间表示(或语言),从而使语义对齐、工具可组合,并以最小的努力实现跨层优化和复用。

示例: LLVM 暴露了一个基于类型和SSA的IR,许多前端以此为目标,许多后端也共享它,从而实现了跨语言优化和相同中间端遍的复用。

Se – Semantically Explicit Interfaces (语义明确的接口)

精确地指定一个接口(涵盖效果可见性、顺序、持久性等),以便用户可以对调用的真实外部可观察状态进行推理,而无需猜测隐藏的缓冲或复制。

示例: SQL 隔离级别指定了精确的异常语义,并明确了可见性保证。

Fs – Formal Specification (形式化规约)

使用数学模型或逻辑来描述系统行为,以支持严格的推理、验证或综合。实现此原则的机制包括时序逻辑、状态机以及其他使系统属性可分析的形式化方法。

示例: TLA+展示了如何使用逻辑和集合论来规约和检查系统,以便在编码前捕获设计错误。

Ig – Invariant-Guided Transformation (不变量驱动转换)

使用形式化声明的不变量来驱动安全的重构、优化或重新配置。

示例: 在编译器中,SSA 将“每个名称只有一个定义”视为 IR 不变量;各个遍在重写代码时保持语义,然后重新建立 SSA。在查询优化器中,关系代数等价(例如,选择/投影下推)保持结果的语义。

Group 4: 分布

Lt – Location Transparency (位置透明)

隐藏资源的物理位置,以便客户端通过统一的名称或句柄进行交互。

示例: 程序可以像调用本地过程一样调用远程过程,从而掩盖了主机的地理位置。

Dc – Decentralised Control (去中心化控制)

将决策权分散到多个节点,以避免单点故障或瓶颈。

示例: Dynamo 通过一致性哈希对数据进行分区,并使用基于 gossip 的成员关系,从而避免了任何中央协调器。

Fp – Function Placement (功能放置)

将功能放置在拥有必要上下文和资源的地方,以实现正确性和效率,避免在别处进行冗余工作。

示例: 端到端论证表明,像可靠性检查这样的功能只有在端点才能实现其正确性。

Lo – Locality of Reference (引用局部性)

将相关的数据和操作在时间和空间上彼此靠近,以保持访问模式并最小化计算与状态之间的分离。

示例: 工作集模型形式化了时间局部性,以将热点页面保留在内存中。

Group 5: 规划

Ep – Equivalence-based Planning (等价规划)

在保持语义等价的通用IR上应用代数/逻辑重写规则;将最终选择推迟到后续的成本/约束阶段。

示例: Starburst 的基于规则的重写系统应用关系等价(例如,谓词下推)来生成逻辑上等价的查询。

Cm – Cost-based Planning (成本规划)

当系统必须在备选的设计、配置或执行策略中做出选择时,使用成本模型来指导搜索,以找到低成本的解决方案(能源、金钱等),而无需枚举整个空间。

示例: Selinger 查询优化器在一个成本模型下选择成本最低的计划。

Cp – Constraint-based Planning (约束规划)

将决策和硬性或软性约束进行编码,并依赖一个求解器(ILP/SMT等)来找到一个可行或最优的分配方案。

示例: Quincy 将集群调度问题建模为带有局部性和公平性约束的最小成本流问题,并求解以获得分配方案。

Gd – Goal-Directed Planning (目标导向规划)

接受对期望最终状态的声明性描述,并自动合成一个具体的操作序列来达到它,从而将用户与实现细节隔离开来。

示例: Cascades 查询优化器通过基于规则的转换和成本引导的搜索,将一个 SQL 查询(目标)转化为一个可执行的计划。

Bb – Black-Box Tuning (黑盒调优)

当分析性的成本模型不可用时,通过在目标系统上测量候选方案来搜索计划/配置空间,迭代地选择更好的方案(例如,启发式或贝叶斯搜索),并缓存胜出者。

示例: ATLAS 在目标 CPU 上凭经验对候选的 BLAS 内核配置进行计时,并固定性能最佳的参数,而无需分析性的成本模型。

Ah – Advisory Hinting (建议性提示)

提供非强制性的提示,系统可以利用这些提示来提高性能,但不会改变正确性或需要强制执行。

示例: Lampson 提倡使用可选的“提示”,这些提示有助于提高性能,但如果被忽略,绝不能影响正确性。

Group 6: 可操作性

Ad – Adaptive Processing (自适应处理)

监控运行时条件,并自动调整参数或策略。

示例: Eddies 根据反馈在运行时持续地对查询操作符进行重新排序,在不停止执行的情况下进行适应。

Ec – Elasticity (弹性)

根据不断变化的需求和成本目标,自动调整资源分配。例子包括预测性自动伸缩和负载整形。

示例: Chase 等人根据负载和效用动态地配置服务器,体现了弹性资源管理。

Wa – Workload-Aware Optimisation (负载感知优化)

持续观察工作负载的形态(倾斜、局部性、访问频率等),并调整数据布局、算法选择或资源分配以匹配当前模式。

示例: 数据库“cracking”技术根据查询谓词增量地重组列数据,从而使数据布局持续地适应观察到的工作负载。

Au – Automation and Autonomy (自动化与自治)

让系统无需人工干预即可执行常规或响应式任务,通常通过从追踪或用户提供的示例中学习来实现。

示例: AutoAdmin 从工作负载追踪中自动推荐索引/物化视图 [7]。通过示例编程的系统通过从少数用户提供的示例中进行泛化来自动化任务。

Ho – Human Observability (人类可观测性)

暴露系统的内部状态,如指标、追踪、计划,以使系统有意地变得透明;这种透明度提高了可观测性、调试、内省和控制能力。

示例: Paxson 的端到端互联网数据包动态分析展示了丰富的测量和追踪如何实现有根据的调试和调优。

Ev – Evolvability (可演进性)

设计系统使其能在最小化停机时间或重写成本的情况下进行变更,且不破坏现有客户端的外部合约或可观察行为。与让外部人员通过定义的钩子点添加新行为而不触及核心的可扩展性不同,可演进性让系统内部随时间变化而不会破坏现有的外部合约。

示例: Parnas 展示了模块化设计如何使系统更容易在不进行颠覆性重写的情况下进行扩展。

Group 7: 可靠性

Ft – Fault Tolerance (容错性)

设计系统使其在组件故障时仍能继续运行,尽管可能以一种降级的形式。

示例: Gray 对计算机为何停止运行的分析表明,复制和自动重启让服务能够在硬件和软件故障中持续运行。

Is – Isolation for Correctness (隔离以保正确)

防止组件间的意外干扰,从而使局部推理保持有效。

示例: 两阶段行级锁定阻止一个事务读取或覆盖另一个事务未提交的数据,从而保持隔离保证。

At – Atomic Execution (原子执行)

将多个操作组合在一起,使其表现为不可分割的,要么全部生效,要么全不生效。

示例: 使用事务性内存,事务内的内存操作会进行推测性执行,然后原子性地提交;如果发生任何冲突或故障,整个块将中止,不留下任何部分状态。

Cr – Consistency Relaxation (一致性松弛)

为提高性能、可用性或并发性,在有文档记录的边界内,刻意放宽强一致性或顺序约束。

示例: Bayou 允许移动客户端在断开连接时更新副本,并保证在副本重新连接时最终会趋于一致,这是用严格的一致性换取离线可用性。

Group 8: 安全性

Sy – Security via Isolation (隔离以保安全)

强制执行严格的边界,使故障或恶意代码无法影响其他组件。

示例: 一个正确的虚拟机监视器为每个客户机呈现一个完整、隔离的机器,并拦截特权操作,防止一个客户机危及其他客户机或宿主机。

Ac – Access Control and Auditing (访问控制与审计)

定义权限,并记录每次访问以备问责。

示例: Lampson 对访问控制列表、能力(capabilities)和审计追踪的分类法是现代安全机制的基础。

Lp – Least Privilege (最小权限)

只授予完成任务所必需的最小权限,以缩小爆炸半径。

示例: 对1988年互联网蠕虫的尸检报告显示,过度的权限让蠕虫得以传播,并促使了最小权限守护进程的广泛采用。

Tq – Trust via Quorum (法定人数信任)

依赖多个独立参与者的一致同意,而非单一权威。

示例: Paxos 算法将状态复制到一个多数法定人数中,这样即使少数节点崩溃或行为恶意,服务也能保持正确。

Cf – Conservative Defaults (保守默认值)

发布时采用限制性的、安全的设置;让专家选择性地进入风险更高、速度更快的模式。

示例: 采用“默认无访问”策略,每个保护机制都应只在明确授予时才允许访问。

Sa – Safety by Construction (构造即安全)

通过代码或数据的结构设计,使整类错误变得不可能发生,而不仅仅是被检测到。

示例: Rust 的所有权和借用检查器在编译时就防止了数据竞争和悬垂指针。

案例研究

为了说明多个设计原则在实践中如何交织在一起,我们以关系数据库系统中从逻辑操作符计划到物理操作符计划的映射为例。

  • 数据库系统将声明性意图转化为可执行步骤(策略与机制分离)。
  • SQL 表达了“做什么”(抽象提升),并具有精确的语义(语义明确的接口)。
  • 优化器首先使用代数等价来重写查询(等价规划)。
  • 然后它使用成本模型来选择具体的物理操作符(成本规划)。
  • 物理操作符通常针对底层硬件特性进行优化(硬件感知设计)。
  • 谓词下推体现了工作规避,而索引则实现了计算复用
  • 建议性提示可以指导优化器,而较新的数据库系统增加了运行时重优化(自适应处理)、学习模型(学习式近似)和采样(Probabilistic Design注:原文表格未列出此原则,但案例中提及)。

因此,数据库系统中从逻辑到物理操作符的映射,体现了多个设计原则如何共同作用,以高效处理声明性的SQL查询。

局限性

任何试图组织像计算机系统这样广泛的领域的尝试都涉及到权衡。此表不是一份检查清单或一个普适的理论;它是一个共享的词汇表,旨在突出反复出现的原则并鼓励进行结构性反思。话虽如此,仍有几个局限性:

  • 正交性:原则之间可能重叠、相互加强或部分冲突;设计就是关于平衡这些张力。
  • 主观性与粒度:推导和映射原则涉及判断;边界是模糊的,不同的读者可能会以不同的方式标记同一个系统,或以不同的方式解释同一个原则。
  • 非形式化分类法:这不是一个完整或最小的设计原则集合。没有尝试从一个最小的核心推导出这些原则。

最终,此表是一种帮助学生更清晰地看到反复出现的设计原则,协助系统设计师更精确地沟通权衡,并帮助研究人员认识到他们的思想在更广阔的系统设计蓝图中所处位置的手段。

结论

系统设计横跨不同的领域和词汇,这可能使共享讨论变得更加困难。我们继承机制,研究权衡,并建立直觉,然而用于描述底层思想的简洁术语并不总是唾手可得。这里提供的设计原则“元素周期表”旨在提供一种适度的通用语言,通过命名反复出现的思想,使其更容易被传授、比较和在其上进行构建。

参考文献

[1] Ron Avnur and Joseph M. Hellerstein. Eddies: Continuously Adaptive Query Processing. In SIGMOD, 2000.
[2] Rudolf Bayer and Edward McCreight. Organization and Maintenance of Large Ordered Indexes. Acta Informatica, 1972.

… (请参考原文中的详细参考文献列表) …

[48] Hubert Zimmermann. OSI Reference Model – The ISO Model of Architecture for Open Systems Interconnection. IEEE Transactions on Communications, 1980.

如何引用

如果您觉得本分析有用,请按如下方式引用:

Joy Arulraj. Elements of System Design arXiv preprint arXiv:TBD, 2025.

论文地址:https://github.com/jarulraj/periodic-table


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

Anthropic内部实践首次公开:揭秘Claude Code如何引爆全员生产力

本文永久链接 – https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code

当 AI 编程助手从简单的代码补全工具,演变为深度集成于开发者工作流核心的“终端原生 AI”(Terminal-native AI)时,一个根本性的问题浮现出来:顶尖团队究竟是如何在日常工作中驾驭这股新力量的? 理论和演示层出不穷,但真实、大规模、跨职能的实践案例却凤毛麟角。

现在,我们得到了来自源头的答案。

Anthropic 公司今天发布了一份极为详尽的内部案例研究,为我们提供了一次罕见的“幕后观察”机会,让我们得以一窥其内部团队——从最核心的产品开发、安全工程,到数据科学、乃至法务和营销团队——是如何将 Claude Code 作为其日常工作的核心伙伴。

这份案例研究的意义非凡,因为它不再是关于“AI 能做什么”的畅想,而是关于“AI 正在如何做”的实录。从数据工程师借助截图在几分钟内解决复杂的 Kubernetes 故障,到毫无编程经验的财务团队用自然语言构建起全自动的数据处理流;从新员工入职第一天就能高效导航庞大的单一代码库,到产品设计师直接将视觉稿转化为可交互的前端原型——我们看到的是一种工作范式的彻底变革以及生产力的“爆炸”!

本文就翻译自Anthropic的这篇博客文章《How Anthropic teams use Claude Code》,希望各位读者都能从中受益。


Anthropic 的内部团队正在通过 Claude Code 改变其工作流程,使开发人员和非技术人员能够处理复杂项目、自动化任务,并弥合之前限制他们生产力的技能差距。

为了了解更多,我们与以下团队进行了交谈:

  • 数据基础设施
  • 产品开发
  • 安全工程
  • 推理
  • 数据科学与可视化
  • 产品工程
  • 增长营销
  • 产品设计
  • 强化学习 (RL) 工程
  • 法务

通过这些访谈,我们深入了解了不同部门如何使用 Claude Code、它对其工作的影响,以及为其他考虑采用该工具的组织提供的建议。

Claude Code 在数据基础设施领域的应用

数据基础设施团队为全公司的团队组织所有业务数据。他们使用 Claude Code 来自动化常规的数据工程任务、解决复杂的基础设施问题,并为非技术团队成员创建文档化的工作流程,以便他们能够独立地访问和操作数据。

主要 Claude Code 用例

使用截图进行 Kubernetes 调试

当 Kubernetes 集群出现故障且无法调度新的 pod 时,团队使用 Claude Code 来诊断问题。他们将仪表盘的截图输入到 Claude Code 中,后者引导他们逐个菜单地浏览 Google Cloud 的 UI,直到发现一个指示 pod IP 地址耗尽的警告。随后,Claude Code 提供了创建新 IP 池并将其添加到集群的确切命令,从而无需网络专家的介入。

为财务团队提供纯文本工作流

工程师向财务团队成员展示了如何编写描述其数据工作流的纯文本文件,然后将其加载到 Claude Code 中以实现完全自动化的执行。没有编程经验的员工可以描述诸如“查询此仪表盘,获取信息,运行这些查询,生成 Excel 输出”之类的步骤,Claude Code 将执行整个工作流,包括询问像日期这样的必需输入。

为新员工提供代码库导航

当新的数据科学家加入团队时,他们被引导使用 Claude Code 来导航庞大的代码库。Claude Code 会读取他们的 Claude.md 文件,为特定任务识别相关文件,解释数据管道的依赖关系,并帮助新员工理解哪些上游数据源为仪表盘提供数据。这取代了传统的数据目录和可发现性工具。

会话结束时的文档更新

团队会要求 Claude Code 总结已完成的工作会话,并在每个任务结束时提出改进建议。这就创建了一个持续改进的循环,其中 Claude Code 帮助优化 Claude.md 文件。

跨多个实例的并行任务管理

在处理长时间运行的数据任务时,团队会在不同的代码仓库中为不同的项目打开多个 Claude Code 实例。每个实例都保持完整的上下文,因此当他们在数小时或数天后切换回来时,Claude Code 能准确记住他们当时正在做什么以及进行到哪里,从而实现了真正的并行工作流管理而不会丢失上下文。

团队影响

无需专业知识即可解决基础设施问题

解决了通常需要系统或网络团队成员介入的 Kubernetes 集群问题,使用 Claude Code 诊断问题并提供精确的修复方案。

加速入职流程

新的数据分析师和团队成员可以迅速理解复杂的系统,并在没有大量指导的情况下做出有意义的贡献。

增强的支持工作流

Claude Code 可以处理更大量的数据并识别异常(例如监控 200 个仪表盘),这是人类手动审查无法做到的。

实现了跨团队自助服务

没有编程经验的财务团队现在可以独立执行复杂的数据工作流。

来自数据基础设施团队的顶级建议

编写详细的 Claude.md 文件

团队表示,你在 Claude.md 文件中记录工作流、工具和期望越详尽,Claude Code 的表现就越好。这使得 Claude Code 在处理诸如根据现有设计模式建立新数据管道之类的常规任务时表现出色。

对敏感数据使用 MCP 服务器而非 CLI

他们建议使用 MCP 服务器而不是 BigQuery CLI,以便更好地控制 Claude Code 的访问权限,尤其是在处理需要日志记录或有潜在隐私问题的敏感数据时。

分享使用会话

团队举办了分享会,成员们在会上演示了各自的 Claude Code 工作流程。这有助于传播最佳实践,并展示了他们可能未曾发现的各种工具使用方法。

Claude Code 在产品开发领域的应用

Claude Code 产品开发团队使用他们自己的产品来为 Claude Code 构建更新,扩展产品的企业级功能和智能体体循环(agentic loop)功能。

主要 Claude Code 用例

使用自动接受模式进行快速原型设计

工程师通过启用“自动接受模式”(shift+tab)来进行快速原型设计,并建立自主循环,让 Claude 编写代码、运行测试并持续迭代。他们给 Claude 提出他们不熟悉的抽象问题,让它自主工作,然后在最终完善前审查那 80% 完成度的解决方案。团队建议从一个干净的 git 状态开始,并定期提交检查点,以便在 Claude 偏离轨道时可以轻松地恢复任何不正确的更改。

核心功能的同步编码

对于触及应用核心业务逻辑的更关键的功能,团队与 Claude Code 同步工作,提供带有具体实现指令的详细提示。他们在实时监控整个过程,以确保代码质量、风格指南合规性和正确的架构,同时让 Claude 处理重复性的编码工作。

构建 Vim 模式

他们最成功的异步项目之一是为 Claude Code 实现 Vim 键位绑定。他们要求 Claude 构建整个功能,最终实现的约 70% 来自 Claude 的自主工作,只需几次迭代即可完成。

测试生成与错误修复

团队在实现功能后,使用 Claude Code 编写全面的测试,并处理在代码审查中发现的简单错误修复。他们还使用 GitHub Actions 让 Claude 自动处理 Pull Request 中的评论,如格式化问题或函数重命名。

代码库探索

在处理不熟悉的代码库(如单一代码库或 API 端)时,团队使用 Claude Code 快速理解系统的工作方式。他们不再等待 Slack 上的回复,而是直接向 Claude 询问解释和代码引用,从而在上下文切换中节省了大量时间。

团队影响

更快的特性实现

Claude Code 成功地实现了像 Vim 模式这样的复杂功能,其中 70% 的代码由 Claude 自主编写。

提高开发速度

该工具可以快速地为功能制作原型并迭代想法,而不会陷入实现细节的泥潭。

通过自动化测试提升代码质量

Claude 生成全面的测试并处理常规的错误修复,在减少手动工作的同时保持了高标准。

更好的代码库探索

团队成员可以迅速熟悉单一代码库中不熟悉的部分,而无需等待同事的回复。

来自 Claude Code 团队的顶级建议

创建自给自足的循环

设置 Claude,让它通过自动运行构建、测试和代码检查来验证自己的工作。这使得 Claude 能够更长时间地自主工作并发现自己的错误,在要求它在编写代码之前生成测试时尤其有效。

培养任务分类的直觉

学会区分适合异步处理的任务(外围功能、原型设计)和需要同步监督的任务(核心业务逻辑、关键修复)。产品边缘的抽象任务可以用“自动接受模式”处理,而核心功能则需要更密切的监督。

形成清晰、详细的提示

当组件具有相似的名称或功能时,在你的请求中要极其具体。你的提示越好、越详细,你就越能相信 Claude 能独立工作,而不会意外地更改代码库的错误部分。

Claude Code 在安全工程领域的应用

安全工程团队专注于保障软件开发生命周期、供应链安全和开发环境安全。他们广泛使用 Claude Code 进行代码编写和调试。

主要 Claude Code 用例

复杂的基础设施调试

在处理事故时,他们向 Claude Code 提供堆栈跟踪和文档,要求它在代码库中追踪控制流。这大大缩短了生产问题的解决时间,使他们能够在大约 5 分钟内理解通常需要 10-15 分钟手动代码扫描才能发现的问题。

Terraform 代码审查与分析

对于需要安全审批的基础设施变更,团队将 Terraform 计划复制到 Claude Code 中,并提问“这会做什么?我会后悔吗?”。这创建了更紧密的反馈循环,使安全团队能更快地审查和批准基础设施变更,减少了开发过程中的瓶颈。

文档合成与操作手册(runbooks)

Claude Code 能消化多个文档源,并创建 Markdown 格式的操作手册、故障排除指南和概述。团队使用这些浓缩的文档作为调试实际问题的上下文,创建了比搜索完整知识库更高效的工作流程。

测试驱动的开发工作流

他们不再遵循以前“设计文档 → 粗糙代码 → 重构 → 放弃测试”的模式,而是要求 Claude Code 提供伪代码,引导它完成测试驱动的开发,并在其卡住时定期介入以引导方向,从而产生更可靠和可测试的代码。

上下文切换与项目入职

在为像“dependant”(一个用于安全审批工作流的 Web 应用)这样的现有项目贡献代码时,他们使用 Claude Code 编写、审查和执行用 Markdown 编写并存储在代码库中的规范,使得在几天内(而非几周)就能做出有意义的贡献。

团队影响

缩短事故解决时间

通常需要 10-15 分钟手动代码扫描的基础设施调试,现在大约只需要 5 分钟。

改进的安全审查周期

用于安全审批的 Terraform 代码审查速度更快,消除了开发者在等待安全团队批准时的阻塞。

增强的跨职能贡献

团队成员可以在几天内为项目做出有意义的贡献,而无需数周的上下文构建。

更好的文档工作流

从多个来源合成的故障排除指南和操作手册,创建了更高效的调试流程。

来自安全工程团队的顶级建议

广泛使用自定义斜杠命令

安全工程团队使用了整个单一代码库中 50% 的自定义斜杠命令实现。这些自定义命令简化了特定的工作流程并加速了重复性任务。

让 Claude 先说

他们不再是提出针对性问题以生成代码片段,而是告诉 Claude Code “边做边提交你的工作”,让它在定期检查的情况下自主工作,从而得到更全面的解决方案。

充分利用其文档能力

除了编码,Claude Code 在合成文档和创建结构化输出方面表现出色。团队提供写作样本和格式偏好,以获得可以立即在 Slack、Google Docs 和其他工具中使用的文档,从而避免界面切换的疲劳。

Claude Code 在推理领域的应用

推理团队管理着在 Claude 读取你的提示并生成响应时存储信息的内存系统。团队成员,尤其是那些刚接触机器学习的人,可以广泛使用 Claude Code 来弥补知识差距并加速他们的工作。

主要 Claude Code 用例

代码库理解与入职

团队严重依赖 Claude Code 在加入复杂代码库时快速理解其架构。他们不再手动搜索 GitHub 仓库,而是要求 Claude 找到调用特定功能的文件,在几秒钟内得到结果,而不是询问同事或手动搜索。

带边缘案例覆盖的单元测试生成

在编写完核心功能后,他们会要求 Claude 编写全面的单元测试。Claude 会自动包含被忽略的边缘案例,在几分钟内完成通常需要大量时间和脑力的工作,就像一个他们可以审查的编码助手。

机器学习概念解释

没有机器学习背景的团队成员依赖 Claude 来解释特定模型的功能和设置。以前需要一个小时谷歌搜索和阅读文档的事情,现在只需要 10-20 分钟,研究时间减少了 80%。

跨语言代码翻译

在测试不同编程语言的功能时,团队会解释他们想要测试的内容,然后 Claude 会用所需的语言(如 Rust)编写逻辑,从而无需为了测试目的而学习新语言。

命令记忆与 Kubernetes 管理

他们不再需要记住复杂的 Kubernetes 命令,而是向 Claude 询问正确的语法,比如“如何获取所有 pod 或部署的状态”,并获得他们基础设施工作所需的确切命令。

团队影响

加速机器学习概念学习

通过 Claude Code,他们的研究时间减少了 80%,以前需要一个小时谷歌搜索的事情现在只需要 10-20 分钟。

更快的代码库导航

该工具可以帮助团队成员在几秒钟内找到相关文件并理解系统架构,而不用依赖同事分享知识,后者通常需要几天时间。

全面的测试覆盖

Claude 自动生成带有边缘案例的单元测试,在保持代码质量的同时减轻了脑力负担。

消除语言障碍

团队可以在不熟悉的情况下,在像 Rust 这样的语言中实现功能,而无需学习它。

来自推理团队的顶级建议

首先测试知识库功能

尝试问各种问题,看看 Claude 的回答是否比谷歌搜索更快。如果它更快、更准确,那么它就是你工作流程中一个宝贵的时间节省工具。

从代码生成开始

给 Claude 具体指令,要求它编写逻辑,然后验证其正确性。这有助于在将其用于更复杂的任务之前,建立对该工具能力的信任。

用它来编写测试

让 Claude 编写单元测试可以显著减轻日常开发工作的压力。利用这个功能来保持代码质量,而无需花费时间手动思考所有测试用例。

Claude Code 在数据科学与机器学习工程领域的应用

数据科学和机器学习工程团队需要复杂的可视化工具来理解模型性能,但构建这些工具通常需要不熟悉的语言和框架的专业知识。Claude Code 使这些团队能够构建生产质量的分析仪表盘,而无需成为全栈开发人员。

主要 Claude Code 用例

构建 JavaScript/TypeScript 仪表盘应用

尽管对“JavaScript 和 TypeScript 知之甚少”,该团队仍使用 Claude Code 构建了完整的 React 应用,用于可视化强化学习 (RL) 模型的性能和训练数据。他们让 Claude 控制从零开始编写完整的应用程序,比如一个 5000 行的 TypeScript 应用,而无需自己理解代码。这至关重要,因为可视化应用上下文相对较低,不需要理解整个单一代码库,从而允许快速原型设计工具来理解模型在训练和评估期间的性能。

处理重复的重构任务

当面临合并冲突或半复杂的文件重构时——这些任务对于编辑器宏来说过于复杂,但又不足以进行大规模开发——他们会像使用“老虎机”一样使用 Claude Code:提交他们的状态,让 Claude 自主工作 30 分钟,然后要么接受解决方案,要么在不成功时重新开始。

创建持久的分析工具而非一次性笔记本

团队现在让 Claude 构建可以跨未来模型评估重用的永久性 React 仪表盘,而不是构建用完即弃的一次性 Jupyter 笔记本。这很重要,因为理解 Claude 的性能是“团队最重要的事情之一”——他们需要了解模型在训练和评估期间的表现,而“这实际上非同小可,简单的工具无法从一个上升的数字中获得太多信号。”

零依赖任务委托

对于完全不熟悉的代码库或语言中的任务,他们将整个实现委托给 Claude Code,利用其从单一代码库中收集上下文并执行任务的能力,而无需他们实际参与编码过程。这使得他们能够在专业领域之外提高生产力,而不是花时间学习新技术。

团队影响

实现 2-4 倍的时间节省

过去繁琐但可手动管理的常规重构任务现在完成得更快了。

在不熟悉的语言中构建复杂的应用程序

尽管 JavaScript/TypeScript 经验最少,也创建了 5000 行的 TypeScript 应用。

从一次性工具转向持久性工具

不再使用一次性的 Jupyter 笔记本,现在构建可重用的 React 仪表盘进行模型分析。

直接的模型改进洞察

第一手的 Claude Code 经验为未来模型迭代中更好的内存系统和用户体验改进提供了信息。

实现了可视化驱动的决策

通过先进的可视化工具,更好地理解 Claude 在训练和评估期间的性能。

来自数据科学与机器学习工程团队的建议

像玩老虎机一样对待它

在让 Claude 工作之前保存你的状态,让它运行 30 分钟,然后要么接受结果,要么重新开始,而不是试图纠正错误。从头开始通常比试图修复 Claude 的错误有更高的成功率。

在需要时为了简单而中断

在监督时,不要犹豫,停下来问 Claude “你为什么这么做?试试更简单的方法。” 模型默认倾向于更复杂的解决方案,但对更简单方法的请求反应良好。

Claude Code 在产品工程领域的应用

产品工程团队致力于 PDF 支持、引用和网络搜索等功能,这些功能为 Claude 的上下文窗口带来了额外的知识。跨越大型、复杂的代码库工作意味着不断遇到不熟悉的代码部分,需要花费大量时间来理解要检查哪些文件,并在进行更改前建立上下文。Claude Code 改善了这种体验,它作为一个向导,可以帮助他们理解系统架构、识别相关文件并解释复杂的交互。

主要 Claude Code 用例

第一步工作流规划

团队将 Claude Code 作为任何任务的“第一站”,要求它确定要检查哪些文件以进行错误修复、功能开发或分析。这取代了在开始工作前手动导航代码库和收集上下文的传统耗时过程。

跨代码库的独立调试

团队现在有信心在不向他人求助的情况下,处理代码库中不熟悉部分的错误。他们可以问 Claude “你认为你能修复这个 bug 吗?这是我看到的行为”,并且通常能立即取得进展,这在以前由于所需的时间投入而不可行。

通过内部测试进行模型迭代测试

Claude Code 自动使用最新的研究模型快照,使其成为体验模型变化的主要方式。这为团队在开发周期中提供了关于模型行为变化的直接反馈,这是他们以前在发布时没有经历过的。

消除上下文切换的开销

他们不再需要将代码片段复制和拖动到 Claude.ai 中,同时还要详细解释问题,而是可以直接在 Claude Code 中提问,无需额外的上下文收集,大大减少了脑力开销。

团队影响

增强了处理不熟悉领域的信心

团队成员可以独立地在不熟悉的代码库中调试错误和调查事件。

在上下文收集中节省了大量时间

Claude Code 消除了将代码片段复制和拖动到 Claude.ai 的开销,减少了上下文切换的负担。

更快的轮岗入职

轮岗到新团队的工程师可以迅速导航不熟悉的代码库,并在没有大量同事咨询的情况下做出有意义的贡献。

提升了开发者的幸福感

团队报告说,在日常工作流程中减少了摩擦,感觉更快乐、更有效率。

来自产品工程团队的顶级建议

将其视为迭代的伙伴,而非一次性的解决方案

不要期望 Claude 能立即解决问题,而是把它当作一个你与之迭代的合作者。这比试图在第一次尝试中就获得完美的解决方案效果更好。

用它来建立在不熟悉领域的信心

不要犹豫,去处理你专业领域之外的错误或调查事件。Claude Code 使得在通常需要大量上下文构建的领域独立工作成为可能。

从最少的信息开始

从你需要的最基本信息开始,让 Claude 引导你完成整个过程,而不是预先加载大量的解释。

Claude Code 在增长营销领域的应用

增长营销团队专注于在付费搜索、付费社交、移动应用商店、电子邮件营销和 SEO 方面建立效果营销渠道。作为一个非技术背景的单人团队,他们使用 Claude Code 来自动化重复性的营销任务,并创建传统上需要大量工程资源的智能体工作流。

主要 Claude Code 用例

自动化 Google Ads 广告创意生成

团队构建了一个智能体工作流,该工作流处理包含数百个现有广告及其效果指标的 CSV 文件,识别表现不佳的广告进行迭代,并生成符合严格字符限制(标题 30 个字符,描述 90 个字符)的新变体。使用两个专门的子智能体(一个用于标题,一个用于描述),该系统可以在几分钟内生成数百个新广告,而无需跨多个活动进行手动创建。这使他们能够大规模地进行测试和迭代,这是以前需要大量时间才能实现的。

用于大规模创意制作的 Figma 插件

他们开发了一个 Figma 插件,而不是为付费社交广告手动复制和编辑静态图像。该插件能识别框架并以编程方式通过替换标题和描述生成多达 100 个广告变体,将过去需要数小时的复制粘贴工作减少到每批次半秒。这使得创意产出提高了 10 倍,让团队可以在关键社交渠道上测试更多样化的创意变体。

用于活动分析的 Meta Ads MCP 服务器

他们创建了一个与 Meta Ads API 集成的 MCP 服务器,以直接在 Claude 桌面应用内查询活动表现、支出数据和广告效果,从而无需在不同平台之间切换进行性能分析,节省了关键时间,而每一个效率的提升都转化为更高的投资回报率(ROI)。

带记忆系统的高级提示工程

他们实现了一个基本的记忆系统,记录跨广告迭代的假设和实验,使系统在生成新变体时能够提取以前的测试结果作为上下文,从而创建了一个自我改进的测试框架。这使得系统性的实验成为可能,而这在以前是无法手动追踪的。

团队影响

在重复性任务上节省了大量时间

Claude Code 将广告文案创作时间从 2 小时减少到 15 分钟,为团队腾出更多时间进行战略性工作。

创意产出增加 10 倍

通过自动化广告生成和 Figma 集成,团队现在可以在各个渠道测试更多的广告变体,以获取最新的视觉设计元素。

像一个更大的团队一样运作

团队可以处理传统上需要专门工程资源的大型开发任务。

战略焦点的转移

团队可以花更多时间在整体战略和构建智能体自动化上,而不是手动执行。

来自增长营销团队的顶级建议

识别支持 API 的重复性任务

寻找涉及使用带有 API 的工具(如广告平台、设计工具、分析平台)进行重复性操作的工作流。这些是自动化的主要候选者,也是 Claude Code 提供最大价值的地方。

将复杂工作流分解为专门的子智能体

不要试图在一个提示或工作流中处理所有事情,而是为特定任务创建单独的智能体(例如标题智能体 vs. 描述智能体)。这在处理复杂需求时使调试更容易,并提高了输出质量。

在编码前进行彻底的头脑风暴和提示规划

花大量时间预先使用 Claude.ai 来思考你的整个工作流,然后让 Claude.ai 为 Claude Code 创建一个全面的提示和代码结构以供参考。此外,要循序渐进地工作,而不是要求一次性的解决方案,以避免 Claude 被复杂的任务压垮。

Claude Code 在产品设计领域的应用

产品设计团队支持 Claude Code、Claude.ai 和 Anthropic API,专注于构建 AI 产品。即使是非开发人员也可以使用 Claude Code 来弥合设计和工程之间的传统鸿沟,使他们能够直接实现其设计愿景,而无需与工程师进行大量的来回迭代。

主要 Claude Code 用例

前端润色和状态管理变更

团队不再创建详尽的设计文档,并与工程师就视觉调整(字体、颜色、间距)进行多轮反馈,而是直接使用 Claude Code 实现这些更改。工程师们注意到,他们正在进行“通常不会看到设计师做出的大的状态管理更改”,这使他们能够达到他们所设想的确切质量。

GitHub Actions 自动化工单处理

利用 Claude Code 的 GitHub 集成,他们只需提交描述所需更改的问题/工单,Claude 就会自动提出代码解决方案,而无需打开 Claude Code,为他们持续积压的润色任务创建了一个无缝的错误修复和功能优化工作流。

快速交互式原型制作

通过将模型图像粘贴到 Claude Code 中,他们可以生成功能齐全的原型,工程师可以立即理解并在此基础上进行迭代,取代了传统的静态 Figma 设计周期,后者需要大量的解释和到工作代码的转换。

边缘案例发现和系统架构理解

团队使用 Claude Code 来绘制错误状态、逻辑流和不同的系统状态,使他们能够在设计阶段识别边缘案例,而不是在开发后期才发现,从而从根本上提高了他们初始设计的质量。

复杂的文案更改和法律合规

对于像在整个代码库中移除“研究预览”消息这样的任务,他们使用 Claude Code 查找所有实例,审查周围的文案,与法务部门实时协调更改,并实施更新,这个过程只需要两个 30 分钟的电话会议,而不是一周的来回协调。

团队影响

转变了核心工作流

Claude Code 成为主要的设计工具,Figma 和 Claude Code 的使用时间占到了 80%。

2-3 倍的执行速度

以前需要与工程师大量来回沟通的视觉和状态管理更改现在可以直接实现。

周期时间从数周缩短到数小时

像发布 Google Analytics 消息这样需要一周协调的复杂项目,现在可以在两个 30 分钟的电话会议中完成。

两种截然不同的用户体验

开发者获得了一种“增强的工作流”(更快的执行),而非技术用户则获得了“天哪,我现在也能像开发者一样工作了!”的工作流。

改善了设计与工程的协作

Claude Code 改善了沟通和问题解决速度,因为设计师在不必与工程师紧密合作的情况下,就能理解系统的约束和可能性。

来自产品设计团队的顶级建议

从工程师那里获得正确的设置帮助

让工程团队的同事帮助进行初始的代码仓库设置和权限配置——对于非开发人员来说,技术入职具有挑战性,但一旦配置完成,它将为日常工作流带来变革。

使用自定义记忆文件来引导 Claude 的行为

创建具体的指令,告诉 Claude 你是一个编码经验很少的设计师,需要详细的解释和更小、增量的更改,这会显著提高 Claude 响应的质量,并使其不那么令人生畏。

利用图像粘贴进行原型制作

使用 Command+V 将截图直接粘贴到 Claude Code 中。它在读取设计和生成功能代码方面表现出色,对于将静态模型转化为工程师可以立即理解和构建的交互式原型非常有价值。

Claude Code 在 RL 工程领域的应用

RL 工程团队专注于 RL 中的高效采样和跨集群的权重传输。他们主要使用 Claude Code 编写中小型功能、进行调试,以及理解复杂的代码库,采用一种包含频繁检查点和回滚的迭代方法。

主要 Claude Code 用例

有监督的自主功能开发

团队让 Claude Code 编写大部分中小型功能的代码,同时提供监督,例如为权重传输组件实现认证机制。他们以交互方式工作,允许 Claude 主导,但在其偏离轨道时进行引导。

测试生成与代码审查

在自己实现更改后,团队会要求 Claude Code 添加测试或审查他们的代码。这种自动化的测试工作流在常规但重要的质量保证任务上节省了大量时间。

调试和错误调查

他们使用 Claude Code 调试错误,结果好坏参半。有时它能立即识别问题并添加相关测试,而其他时候它难以理解问题,但总的来说,在它起作用时提供了价值。

代码库理解和调用栈分析

他们工作流程中最大的变化之一是使用 Claude Code 快速获取相关组件和调用栈的摘要,取代了手动阅读代码或生成大量调试输出。

Kubernetes 操作指导

他们经常向 Claude 询问 Kubernetes 操作,这些操作通常需要大量的谷歌搜索或询问基础设施工程的同事,从而获得配置和部署问题的即时答案。

开发工作流影响

启用了实验性方法

他们现在使用一种“尝试并回滚”的方法,频繁提交检查点,以便测试 Claude 的自主实现尝试,并在需要时恢复,从而实现更具实验性的开发。

加速了文档工作

Claude Code 自动添加有用的注释,节省了大量的文档时间,尽管他们注意到它有时会在奇怪的地方添加注释或使用有问题的代码组织方式。

有局限性的提速

虽然 Claude Code 可以在“相对较少的时间”内实现中小型 PR,但他们承认,它只有大约三分之一的时间能在第一次尝试时成功,需要额外的指导或手动干预。

来自 RL 工程团队的顶级建议

为特定模式定制你的 Claude.md 文件

在你的 Claude.md 文件中添加指令,以防止 Claude 犯重复的工具调用错误,比如告诉它“运行 pytest 而不是 run,不要不必要地 cd – 只需使用正确的路径。” 这显著提高了一致性。

使用检查点密集的工作流

在 Claude 进行更改时定期提交你的工作,以便在实验不成功时轻松回滚。这使得开发能够采用更具实验性的方法,而没有风险。

先尝试一次性完成,然后协作

给 Claude 一个快速的提示,让它尝试完成整个实现。如果成功了(大约三分之一的时间),你就节省了大量时间。如果没有,那就切换到更具协作性的、引导式的方法。

Claude Code 在法务领域的应用

法务团队通过实验和了解 Anthropic 产品供应的愿望,发现了 Claude Code 的潜力。此外,一名团队成员有一个个人用例,涉及为家庭和工作创建可访问性工具原型,展示了该技术为非开发人员提供的力量。

主要 Claude Code 用例

为家庭成员定制的可访问性解决方案

团队成员为有医疗诊断导致说话困难的家庭成员构建了沟通助手。在短短一个小时内,一个人使用原生的语音到文本功能创建了一个预测性文本应用,该应用能建议回复并使用语音库说出它们,解决了语言治疗师推荐的现有可访问性工具中的空白。

法务部门工作流自动化

团队创建了原型“电话树”系统,以帮助团队成员在 Anthropic 与合适的律师联系,展示了法务部门如何在没有传统开发资源的情况下为常见任务构建自定义工具。

团队协调工具

经理们构建了 G Suite 应用,可以自动化每周的团队更新,并跨产品跟踪法律审查状态,使律师能够通过简单的按钮点击而不是电子表格管理来快速标记需要审查的项目。

用于解决方案验证的快速原型制作

他们使用 Claude Code 快速构建功能原型,可以向领域专家展示(比如向 UCSF 的专家展示可访问性工具),以验证想法并在投入更多时间之前识别现有解决方案。

工作风格与影响

在 Claude.ai 中规划,在 Claude Code 中构建

他们使用一个两步流程,首先在 Claude.ai 中进行头脑风暴和规划,然后转移到 Claude Code 进行实现,要求它放慢速度并逐步工作,而不是一次性输出所有内容。

视觉优先的方法

他们经常使用截图向 Claude Code 展示他们想要的界面外观,然后根据视觉反馈进行迭代,而不是用文字描述功能。

原型驱动的创新

他们强调克服分享“傻瓜式”或“玩具式”原型的恐惧,因为这些演示能激励他人看到他们以前没有想到的可能性。

安全与合规意识

MCP 集成问题

产品律师使用 Claude Code 立即识别深度 MCP 集成的安全影响,指出随着 AI 工具访问更敏感的系统,保守的安全态势将构成障碍。

合规工具的优先级

他们倡导随着 AI 能力的扩展迅速构建合规工具,认识到创新与风险管理之间的平衡。

来自法务部门的顶级建议

首先在 Claude.ai 中进行详尽规划

在转向 Claude Code 之前,使用 Claude 的对话界面充实你的整个想法。然后要求 Claude 将所有内容总结成一个分步的实现提示。

增量和可视化地工作

要求 Claude 放慢速度,一次实现一个步骤,这样你就可以复制粘贴而不会被淹没。大量使用截图来展示你想要的界面外观。

尽管不完美也要分享原型

克服隐藏“玩具”项目或未完成工作的冲动。分享原型有助于他人看到可能性,并激发通常不互动的部门之间的创新。

立即开始使用 Claude Code吧。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats