尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Claude Code 环境变量进阶指南:EFFORT_LEVEL 与 ADDITIONAL_DIRECTORIES_CLAUDE_MD 深度解析

Claude Code 环境变量进阶指南:EFFORT_LEVEL 与 ADDITIONAL_DIRECTORIES_CLAUDE_MD 深度解析 1. 项目概述Claude Code 环境变量的隐藏玩法如果你正在用 Claude Code 来辅助你的编码工作大概率已经熟悉了它的基础操作在项目根目录放一个CLAUDE.md文件告诉 AI 你的项目结构、编码规范和一些特殊指令。这确实能极大提升 AI 生成代码的准确性和上下文感知能力。但今天我想聊点不一样的是两个藏在官方文档角落、却可能显著改变你工作流的环境变量EFFORT_LEVEL和ADDITIONAL_DIRECTORIES_CLAUDE_MD。很多开发者包括我自己最初都只把 Claude Code 当作一个“更聪明的代码补全工具”。我们习惯于在项目根目录维护一个CLAUDE.md然后期望 AI 能读懂它。但实际使用中你可能会遇到这样的困扰AI 在处理复杂重构或深度分析任务时似乎有点“敷衍”给出的方案不够深入或者你的项目结构是 Monorepo单体仓库包含了多个独立的子项目或包每个子项目都有自己的CLAUDE.md但根目录的 Claude Code 会话却无法有效读取这些分散的配置文件导致上下文缺失AI 的辅助效果大打折扣。这两个环境变量正是为了解决这类进阶痛点而存在的。它们不是面板上的按钮而是需要你主动去配置的“隐藏开关”。EFFORT_LEVEL直接干预 AI 在思考和分析问题时愿意投入的“算力”或“深度”而ADDITIONAL_DIRECTORIES_CLAUDE_MD则打破了CLAUDE.md只能放在会话启动目录的限制允许你指定一个额外的、全局的或跨项目的配置目录。理解并善用它们能让 Claude Code 从一个好用的工具进化成真正理解你复杂项目环境和高质量要求的智能伙伴。接下来我们就深入看看这两个变量具体怎么用以及它们背后值得玩味的细节。2. EFFORT_LEVEL控制 AI 的“思考深度”与资源分配首先我们来拆解EFFORT_LEVEL。顾名思义它用来设定 Claude Code 在处理你的请求时应该付出多少“努力”。这听起来有点抽象但它本质上是一个元指令影响着 AI 模型内部推理链的长度、检索上下文的广度以及生成答案的细致程度。2.1 EFFORT_LEVEL 的值域与行为解读这个环境变量通常接受一个整数参数。虽然不同版本或配置下可能有细微差别但普遍认可的等级划分如下EFFORT_LEVEL1 (低努力模式)这是默认模式或者说在不显式设置时的行为。AI 会进行快速的、启发式的响应。它适合简单的代码补全、语法错误修正、单文件内的小范围重构。响应速度最快消耗的 token 也较少。但代价是对于需要跨文件理解、涉及复杂算法优化或架构设计的问题它可能给出表面化的、未经过深思熟虑的方案。EFFORT_LEVEL2 (标准努力模式)AI 会进行更全面的上下文分析可能会主动检索和参考更多相关的项目文件并在生成答案前进行更长时间的“思考”推理。这是处理大多数中等复杂度任务的理想选择比如为一个模块设计接口、实现一个包含多个步骤的业务函数、或者解释一段中等复杂度的代码。EFFORT_LEVEL3 (高努力模式)在这个级别Claude Code 被明确指示要“全力以赴”。它会尝试进行最深度的分析可能模拟多种解决方案并比较其优劣最终给出它认为最优的、最详细的方案。这对于代码重构、性能优化、系统架构设计评审、复杂 bug 的根因分析等任务至关重要。响应时间会明显变长生成的答案也会更详尽可能包含步骤分解、注意事项、甚至潜在的替代方案。注意设置过高的EFFORT_LEVEL如 3 或更高并不总是“更好”。它会显著增加每次交互的延迟和计算资源消耗影响你的使用配额或本地算力。对于简单的问答使用高努力等级是一种浪费。正确的做法是根据任务动态调整。2.2 如何设置与验证 EFFORT_LEVEL设置环境变量的方式取决于你的操作系统和 Claude Code 的启动方式。在终端会话中临时设置推荐用于测试这是最灵活的方式。在启动你的 IDE如 VSCode或终端之前在命令行中设置。Linux/macOS:export EFFORT_LEVEL2 # 然后在此终端中启动你的代码编辑器或 Claude Code 相关进程 code . # 启动 VSCodeWindows (PowerShell):$env:EFFORT_LEVEL2 # 然后在此 PowerShell 中启动你的代码编辑器 code .Windows (Command Prompt):set EFFORT_LEVEL2 # 然后在此 CMD 中启动你的代码编辑器 code .在 Shell 配置文件中永久设置如~/.bashrc,~/.zshrc,~/.profile如果你希望所有会话都默认使用某个努力等级可以将其添加到配置文件中。# 编辑 ~/.zshrc (或 ~/.bashrc) echo export EFFORT_LEVEL2 ~/.zshrc # 使配置生效 source ~/.zshrc在 IDE 或编辑器配置中设置某些 Claude Code 的集成插件可能提供了设置环境变量的选项。例如在 VSCode 中你可以修改工作区或用户级别的settings.json但通常这是通过插件本身的配置项来完成而非直接操作settings.json。更通用的方法是通过 IDE 的终端集成功能确保 IDE 启动的子进程继承了正确的环境变量。验证是否生效一个简单的验证方法是向 Claude Code 提出一个中等复杂度的问题并观察其回答的详尽程度。你也可以在问题中直接询问“请以 EFFORT_LEVEL3 的深度分析当前模块的耦合度问题。” 观察其响应是否比平时更加结构化、深入并包含了更多的评估和比较。2.3 实战场景与心得我在一个微服务项目的 API 网关重构中深刻体会到了EFFORT_LEVEL的威力。最初我使用默认设置让 Claude Code 帮忙设计一个统一的错误处理中间件。它给出的方案是可行的但比较常规只是简单包装了异常。后来我将EFFORT_LEVEL设为 3并提出了同样的请求。这次AI 的响应完全不同深度分析它首先分析了项目中现有的三种错误抛出模式并指出了其中两种存在日志缺失和上下文信息不完整的问题。多方案对比它给出了两个设计方案。方案 A 是基于装饰器的侵入性小但学习成本略高方案 B 是基于中间件链的更符合当前项目架构但需要修改现有的中间件顺序。它用一个小表格对比了两种方案的优缺点。详细实现与迁移路径对于我选择的方案 B它不仅给出了中间件的完整代码还额外提供了一段脚本用于静态分析现有代码找出所有需要适配的旧错误处理点并给出了逐步迁移的建议。整个过程响应时间从平时的 2-3 秒增加到了 10 秒左右但产出的价值远超等待的时间。我的心得是将EFFORT_LEVEL视为一个“任务难度开关”。对于日常的编码辅助补全、小修小改保持默认的 1 即可流畅高效。当需要进行设计评审、复杂逻辑梳理、或解决棘手的 bug 时主动将其提升到 2 或 3相当于你告诉 AI“伙计这个问题有点复杂多花点时间想想。” 这能有效避免 AI 给出肤浅的第一反应。3. ADDITIONAL_DIRECTORIES_CLAUDE_MD打破项目配置的孤岛接下来是ADDITIONAL_DIRECTORIES_CLAUDE_MD。这个变量名很长但功能直白它允许你指定一个或多个额外的目录路径Claude Code 会在这些目录中寻找CLAUDE.md文件并将其内容纳入当前会话的上下文。3.1 为什么需要它—— 解决 Monorepo 与配置共享难题想象一下这些场景Monorepo 项目你的仓库根目录是my-monorepo/下面有packages/web-app/,packages/api-server/,packages/shared-utils/等多个子项目。每个子项目都有自己特定的技术栈、依赖和编码规范。你希望在packages/web-app/目录下工作时AI 能同时理解packages/web-app/CLAUDE.md前端 React 规范和packages/shared-utils/CLAUDE.md共享工具库规范。公司/团队级通用规范你的团队有一套所有项目都必须遵守的通用安全规范、代码提交约定或 Dockerfile 编写标准。你不想在每个新项目的CLAUDE.md里都复制粘贴一遍这些内容。个人全局配置你个人有一套偏好的代码风格、常用的工具函数说明或私有库的 API 文档希望在所有个人项目中都能被 AI 参考。在没有ADDITIONAL_DIRECTORIES_CLAUDE_MD的情况下你只能把所有这些信息都塞进当前工作目录的CLAUDE.md或者忍受上下文缺失。前者会导致文件臃肿且难以维护后者则降低了 AI 辅助的准确性。3.2 配置语法与路径解析这个环境变量的值是一个用分号;分隔的目录路径列表。路径可以是绝对路径也可以是相对于当前用户主目录~的路径。Linux/macOS 示例:export ADDITIONAL_DIRECTORIES_CLAUDE_MD~/my-global-claude-config;/project/team-rules这告诉 Claude Code除了当前目录还要去~/my-global-claude-config和/project/team-rules这两个目录下寻找CLAUDE.md文件。Windows 示例 (PowerShell):$env:ADDITIONAL_DIRECTORIES_CLAUDE_MDC:\Users\YourName\global-config;D:\TeamStandards注意在 Windows 上路径分隔符同样是分号;但路径中的目录分隔符是反斜杠\。也可以使用 Unix 风格的正斜杠/Claude Code 通常能正确处理。路径解析规则按顺序加载变量中定义的目录会按照从左到右的顺序被检查。在每个目录中Claude Code 会寻找名为CLAUDE.md的文件。内容合并所有找到的CLAUDE.md文件的内容会被合并到当前会话的上下文中。合并顺序是当前工作目录的CLAUDE.md优先级最高然后是ADDITIONAL_DIRECTORIES_CLAUDE_MD中第一个路径找到的文件接着是第二个以此类推。重复指令处理如果多个文件定义了相同的指令例如都设置了“使用 TypeScript”后加载的可能会覆盖先加载的取决于具体实现。因此通常将最通用、最基础的配置放在靠前的路径如团队规范将最具体、最特殊的配置放在当前项目目录或靠后的路径。文件不存在则跳过如果指定的目录不存在或者目录下没有CLAUDE.md文件Claude Code 会安静地跳过它不会报错。3.3 一个完整的 Monorepo 配置实例假设我们有如下项目结构/my-monorepo ├── .git ├── README.md ├── package.json ├── global-claude.md # 全局通用规范 ├── packages │ ├── web-app │ │ ├── CLAUDE.md # 前端项目特定规范 │ │ └── src/ │ ├── api-server │ │ ├── CLAUDE.md # 后端项目特定规范 │ │ └── src/ │ └── shared-utils │ ├── CLAUDE.md # 工具库规范 │ └── lib/ └── docker └── CLAUDE.md # Docker 构建规范目标当我在/my-monorepo/packages/web-app目录下工作时我希望 Claude Code 能同时参考当前目录的CLAUDE.md(前端规范)父级目录../shared-utils/CLAUDE.md(共享工具库规范)根目录的global-claude.md(全局规范)../docker/CLAUDE.md(Docker规范)配置方案你可以在你的 shell 配置文件中进行如下设置使其对所有项目生效或者仅在进入该 monorepo 时临时设置。# 方法1在 ~/.zshrc 或 ~/.bashrc 中设置一个基础路径然后按需覆盖 export DEFAULT_ADDITIONAL_DIRS$HOME/global-claude-config # 方法2为特定项目设置复杂的路径在项目目录下执行 export ADDITIONAL_DIRECTORIES_CLAUDE_MD/my-monorepo;/my-monorepo/packages/shared-utils;/my-monorepo/docker # 然后启动编辑器 code .更动态的脚本方案推荐创建一个脚本文件setup_claude_context.sh放在 monorepo 根目录#!/bin/bash # setup_claude_context.sh REPO_ROOT$(git rev-parse --show-toplevel 2/dev/null || pwd) export ADDITIONAL_DIRECTORIES_CLAUDE_MD$REPO_ROOT:$REPO_ROOT/packages/shared-utils:$REPO_ROOT/docker echo “Claude Code 额外目录已设置为: $ADDITIONAL_DIRECTORIES_CLAUDE_MD” # 提示用户现在可以启动 IDE 了在进入项目后先执行source setup_claude_context.sh再启动code .。这样无论你在 monorepo 的哪个子目录都能正确追溯到根目录的配置。3.4 使用技巧与避坑指南避免路径冲突与循环引用不要设置可能指向自身或产生循环的路径。例如在/project/a的CLAUDE.md里通过某种方式引用了/project/b而/project/b的配置又指回/project/a这可能导致未定义行为。性能考量指定过多的额外目录尤其是其中包含非常大的CLAUDE.md文件可能会增加 AI 会话初始化的上下文加载时间并消耗更多的 token 额度。只添加真正必要的路径。配置的优先级管理牢记“后来者居上”的潜在覆盖规则。将最稳定、最基础的配置如公司安全红线放在列表前面将最具体、最常修改的配置如当前项目特性放在当前工作目录或列表后面。可以在全局CLAUDE.md开头用注释说明“此为全局基础规范项目本地配置可覆盖本文件的特定章节。”内容组织建议在额外的CLAUDE.md中最好使用清晰的标题和结构。例如# 全局开发规范 (来自 ~/global-config/CLAUDE.md) ## 代码风格 - 使用 Prettier 格式化配置如下... ## 安全要求 - 禁止直接拼接 SQL 字符串... --- # 团队 API 设计规范 (来自 /team/standards/CLAUDE.md) ## 响应格式 - 所有 API 必须包裹在 { data: ..., code: 0, message: \ok\ } 结构中...这样即使合并后上下文也相对清晰。我在管理一个包含前端Next.js、后端NestJS和移动端React Native的跨平台项目时这个功能成了救命稻草。我为每个技术栈维护了一个独立的、精心编写的CLAUDE.md分别存放在~/claude-configs/nextjs/,~/claude-configs/nestjs/,~/claude-configs/react-native/。然后在任何子项目里我只需要设置ADDITIONAL_DIRECTORIES_CLAUDE_MD~/claude-configs/nextjs;~/claude-configs/sharedAI 就能立刻获得该技术栈的所有最佳实践和项目通用规范无需我再做任何复制粘贴。这极大地保证了代码风格和质量的统一也让我在切换项目上下文时无比顺畅。4. 环境变量的生效范围与优先级探秘理解了每个变量的作用后我们需要从系统层面理解它们如何工作以及如何与其他配置协同。环境变量的作用域和优先级是避免配置混乱的关键。4.1 作用域会话级、用户级与系统级环境变量的生效范围取决于你设置它的位置会话级 (Session Scope)在终端中使用export(Linux/macOS) 或set/$env:(Windows) 命令设置。该变量仅在此终端会话及其启动的所有子进程中有效。关闭终端设置即失效。这是最灵活、最推荐进行测试和临时调整的方式。用户级 (User Scope)通过修改用户配置文件如~/.bashrc,~/.zshrc,~/.profile, Windows 的用户环境变量界面来设置。每次以该用户身份登录系统或启动新的 shell 会话时这些变量会自动加载。这是为个人工作流设置默认值如默认EFFORT_LEVEL2的合适位置。系统级 (System Scope)在系统级配置文件中设置如/etc/environment或通过 Windows 的系统环境变量界面设置。对所有用户生效。通常不推荐用于 Claude Code 这类开发工具的个人化配置除非是团队服务器上的统一部署。Claude Code 如何读取Claude Code 进程在启动时会继承其父进程通常是你的终端或 IDE的环境变量。因此确保你在启动 Claude Code 或 IDE 的同一个环境中设置了这些变量是它们生效的前提。4.2 配置优先级与冲突解决当存在多种配置来源时其优先级通常如下从高到低IDE/编辑器插件本身的配置界面如果 Claude Code 插件提供了图形化设置项这里的设置通常优先级最高可能会直接覆盖环境变量。进程启动时的环境变量即当前终端会话中已设置的变量。项目本地配置文件某些工具支持在项目根目录放置.env文件来定义环境变量。如果 Claude Code 或其集成插件支持读取.env那么这里的定义会覆盖系统/用户级的环境变量但通常低于会话级因为.env需要在进程启动时被加载。用户级环境变量。系统级环境变量。对于ADDITIONAL_DIRECTORIES_CLAUDE_MD其内部的路径优先级是从左到右后扫描到的目录中的CLAUDE.md内容可能会覆盖先扫描到的目录中的同名指令部分。而当前工作目录的CLAUDE.md通常是最后被加载、因此优先级最高的。一个常见的冲突场景你在用户级配置中设置了ADDITIONAL_DIRECTORIES_CLAUDE_MD~/global-config但在某个特定项目里你临时在终端中执行了export ADDITIONAL_DIRECTORIES_CLAUDE_MD~/global-config;/some/other/path。那么在这个终端会话中启动的 Claude Code将会使用会话级变量两个路径而忽略用户级变量只有一个路径。这不是冲突而是正常的覆盖行为。4.3 诊断环境变量是否生效如果配置后感觉没有效果可以按以下步骤排查检查进程环境在启动 Claude Code 的 IDE 或终端中尝试打印环境变量。Linux/macOS:echo $EFFORT_LEVELWindows PowerShell:echo $env:EFFORT_LEVELWindows CMD:echo %EFFORT_LEVEL%确保输出与你设置的值一致。在 Claude Code 会话中直接询问你可以向 Claude Code 提问“为了确认配置请告诉我当前会话中EFFORT_LEVEL环境变量的值是多少ADDITIONAL_DIRECTORIES_CLAUDE_MD又设置了哪些路径” 一个配置正确的 AI 助手应该能读取到这些信息并回答你。注意这取决于 Claude Code 的具体实现并非所有版本都支持此查询。通过行为反推设置EFFORT_LEVEL3然后提出一个复杂的、需要多步推理的问题例如“请为这个函数设计一个完整的单元测试套件并考虑边界条件”。观察回答的深度和结构是否显著优于默认级别。设置ADDITIONAL_DIRECTORIES_CLAUDE_MD指向一个包含特殊指令如“所有回答请用中文”的CLAUDE.md目录然后看 AI 的响应语言是否改变。查看日志如果 Claude Code 或你的 IDE 有调试或日志模式开启它查看启动时加载了哪些环境变量和配置文件。5. 高级集成在 CI/CD 与容器化环境中使用这两个环境变量的价值不仅限于本地开发。在自动化流水线和容器化部署中它们能确保 AI 辅助行为的一致性。5.1 在 CI/CD 流水线中配置假设你的团队使用 GitHub Actions 进行代码审查并希望 Claude Code 在自动化代码分析环节以“高努力模式”运行同时引用团队的标准规范。 你可以在 GitHub Actions 的工作流文件中这样配置name: Code Review with Claude on: [pull_request] jobs: claude-review: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Run Claude Code Analysis env: # 设置环境变量 EFFORT_LEVEL: 3 ADDITIONAL_DIRECTORIES_CLAUDE_MD: /home/runner/work/_team-rules run: | # 假设你有一个脚本或工具来调用 Claude Code 进行分析 # 首先将团队规范文件复制到指定目录 mkdir -p /home/runner/work/_team-rules cp -r ./team-standards/* /home/runner/work/_team-rules/ # 然后运行你的分析命令 npx your-claude-analysis-tool --target ./在这个例子中我们为 CI 任务设置了EFFORT_LEVEL3确保分析足够深入。同时我们将存放在仓库team-standards/目录下的团队规范复制到ADDITIONAL_DIRECTORIES_CLAUDE_MD指定的路径使 Claude Code 在分析代码时能遵循这些规范。5.2 在 Docker 容器开发环境中使用在 Dockerfile 或docker-compose.yml中为开发容器设置这些变量可以让所有开发成员共享同一套 AI 辅助配置。Dockerfile 示例FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install # 复制全局 CLAUDE.md 配置文件 COPY global-claude.md /etc/claude-config/CLAUDE.md # 设置环境变量 ENV EFFORT_LEVEL2 ENV ADDITIONAL_DIRECTORIES_CLAUDE_MD/etc/claude-config COPY . . CMD [npm, run, dev]docker-compose.yml 示例version: 3.8 services: app: build: . environment: - EFFORT_LEVEL2 - ADDITIONAL_DIRECTORIES_CLAUDE_MD/etc/claude-config volumes: # 将主机上的团队规范挂载到容器内 - ./team-rules:/etc/claude-config:ro command: npm run dev这样任何在该容器内运行的 Claude Code 集成工具都会自动应用这些配置。这保证了从本地开发到 CI再到不同开发者机器上AI 辅助的“行为基准”是统一的。5.3 安全与维护考量在团队和生产环境中使用这些环境变量需要注意敏感信息CLAUDE.md文件里可能会包含内部 API 端点、代码结构等敏感信息。确保ADDITIONAL_DIRECTORIES_CLAUDE_MD指向的目录和文件访问权限受到控制不要意外泄露。版本控制团队共享的CLAUDE.md文件应该纳入版本控制如 Git并像对待代码一样进行评审和维护。可以考虑将其放在一个独立的“规范”仓库中作为子模块submodule或通过工具拉取。配置漂移避免在太多地方个人 shell 配置、项目.env、Dockerfile、CI 配置分散地定义这些变量。尽量集中管理例如团队项目统一在docker-compose.yml或项目 README 中说明所需的配置减少维护成本。6. 结合使用与个性化工作流构建单独使用EFFORT_LEVEL或ADDITIONAL_DIRECTORIES_CLAUDE_MD已经能带来提升但将它们结合并融入你的个性化工作流才能发挥最大效力。6.1 动态调整策略脚本与别名你可以创建 shell 别名或函数来快速切换不同的“模式”。# 在 ~/.zshrc 或 ~/.bashrc 中添加 alias claude-easyexport EFFORT_LEVEL1 echo 切换到低努力模式快速响应 alias claude-normalexport EFFORT_LEVEL2 echo 切换到标准努力模式 alias claude-deepexport EFFORT_LEVEL3 echo 切换到高努力模式深度分析 # 为特定项目设置专属上下文 alias proj-monorepoexport ADDITIONAL_DIRECTORIES_CLAUDE_MD\$HOME/global-config;/path/to/monorepo/shared-rules\ echo 已加载 Monorepo 上下文 alias proj-microserviceexport ADDITIONAL_DIRECTORIES_CLAUDE_MD\$HOME/global-config;/path/to/company/api-standards\ echo 已加载微服务上下文这样在开始一项复杂任务前只需在终端输入claude-deep和proj-monorepo然后启动你的编辑器你就拥有了一个为深度分析和当前项目架构优化过的 AI 助手环境。6.2 与 CLAUDE.md 内容的协同环境变量和CLAUDE.md文件内容是相辅相成的。你可以在CLAUDE.md中利用这些变量。 例如在你的全局CLAUDE.md开头可以这样写# 全局开发配置 **注意**本配置期望 EFFORT_LEVEL 环境变量默认设置为 2 或更高以获得最佳分析效果。 **注意**本项目为 Monorepo请确保 ADDITIONAL_DIRECTORIES_CLAUDE_MD 包含了 ../shared-config 目录。 ## 核心指令 - 当进行架构设计或代码评审时如果 EFFORT_LEVEL 2请提供至少两种备选方案并进行简要比较。 - 始终引用 shared-config/CLAUDE.md 中定义的通用工具函数规范。这相当于在配置文件中增加了对运行环境的“期望”虽然不能强制但可以引导使用者或提醒你自己进行正确配置。6.3 故障排除与效果评估即使配置正确效果也可能因任务而异。如何评估建立基线对一个典型复杂任务如“重构这个函数使其可测试”在默认配置下无额外变量让 Claude Code 执行记录其回答。应用变量配置EFFORT_LEVEL3和必要的ADDITIONAL_DIRECTORIES_CLAUDE_MD对同一个任务再次提问。对比分析从以下几个维度对比两次回答深度是否考虑了更多边界情况是否分析了潜在风险广度是否引用了更多相关文件或规范结构化回答是否更有条理如分步骤、列优缺点实用性给出的代码示例是否更完整、更贴近项目现有风格迭代优化如果效果不明显检查ADDITIONAL_DIRECTORIES_CLAUDE_MD指向的CLAUDE.md内容是否足够清晰、有针对性。尝试调整EFFORT_LEVEL的值。有时清晰、具体的提问比单纯提高努力等级更有效。我个人的工作流是为日常开发设置默认EFFORT_LEVEL2和一个包含我个人编码习惯的全局CLAUDE.md目录。每个项目有自己的CLAUDE.md。当遇到难题时我会打开终端执行claude-deep有时还会临时添加一个指向问题相关模块配置的路径然后再去提问。这个简单的习惯让我在解决复杂技术债务和设计新模块时效率提升了至少三分之一。它节省的不是打字时间而是避免了我陷入思维定势或者去重复查阅那些我已经写在规范里但容易忘记的细节。
返回列表