andrej-karpathy-skills让代码更简洁的10个技巧
andrej-karpathy-skills是一个基于Andrej Karpathy观察结果开发的代码指南项目,旨在帮助开发者避免常见的LLM编码陷阱,写出更简洁、高效的代码。本文将分享使用andrej-karpathy-skills让代码更简洁的10个实用技巧,帮助新手和普通用户提升代码质量。## 1. 编码前先明确假设与目标在开始编写代码前,花时间明确项目的假设和目标是让代码简洁的第一
andrej-karpathy-skills让代码更简洁的10个技巧
【免费下载链接】andrej-karpathy-skills 项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
andrej-karpathy-skills是一个基于Andrej Karpathy观察结果开发的代码指南项目,旨在帮助开发者避免常见的LLM编码陷阱,写出更简洁、高效的代码。本文将分享使用andrej-karpathy-skills让代码更简洁的10个实用技巧,帮助新手和普通用户提升代码质量。
1. 编码前先明确假设与目标
在开始编写代码前,花时间明确项目的假设和目标是让代码简洁的第一步。andrej-karpathy-skills强调"Think Before Coding"原则,要求开发者在实现前明确列出假设,当遇到不确定的地方时,不要默默猜测,而是提出问题寻求澄清。
例如,在开发一个简单的折扣计算功能时,先明确折扣的计算方式、适用范围等假设,避免后续因理解偏差导致的代码臃肿。
2. 坚持简单优先原则
andrej-karpathy-skills的核心原则之一是"Simplicity First",即使用最少的代码解决问题,不添加未请求的功能或过度抽象。这意味着只实现当前需要的功能,避免为单一用途创建复杂的抽象层。
以下是一个过度工程化和简单实现的对比:
❌ 过度工程化的实现
from abc import ABC, abstractmethod
from enum import Enum
from typing import Protocol, Union
from dataclasses import dataclass
class DiscountStrategy(ABC):
@abstractmethod
def calculate(self, amount: float) -> float:
pass
class PercentageDiscount(DiscountStrategy):
def __init__(self, percentage: float):
self.percentage = percentage
def calculate(self, amount: float) -> float:
return amount * (self.percentage / 100)
# ... 30多行代码只为简单计算
✅ 简单优先的实现
def calculate_discount(amount: float, percent: float) -> float:
"""计算折扣金额,百分比应为0-100"""
return amount * (percent / 100)
# 使用
discount = calculate_discount(100.0, 10.0) # 10美元折扣
3. 精准修改,只触碰必要代码
"Surigical Changes"原则建议在修改现有代码时,只触碰必要的部分,不做无关的"改进"或重构。即使你不喜欢现有代码的风格,也要尽量匹配它,避免因格式或风格修改造成的不必要变更。
当你的修改导致某些代码变得无用时,只清理你自己造成的遗留问题,不要删除预先存在的死代码,除非明确要求这样做。
4. 采用目标驱动的开发方式
"Goal-Driven Execution"要求将任务转化为可验证的目标,而不是模糊的指令。例如,将"修复bug"转化为"编写一个重现bug的测试,然后修复它"。
对于多步骤任务,可以制定一个简单的计划:
1. [步骤] → 验证:[检查点]
2. [步骤] → 验证:[检查点]
3. [步骤] → 验证:[检查点]
5. 避免推测性功能和过度设计
andrej-karpathy-skills强调不要添加未被请求的功能或"灵活性"。很多开发者会陷入"以防万一"的思维,添加一些可能永远不会用到的功能,导致代码臃肿。遵循"够用就好"的原则,只实现当前需要的功能。
6. 明确成功标准,循环验证
在开始编码前,定义清晰的成功标准。强而明确的成功标准可以让你独立循环工作,而不需要不断地寻求澄清。例如,"添加表单验证"可以转化为"编写测试用例覆盖所有无效输入,然后实现验证逻辑使测试通过"。
7. 不要隐藏困惑,及时寻求澄清
当遇到不明确的需求或技术问题时,不要试图猜测或隐藏你的困惑。明确指出不清楚的地方,寻求澄清,这可以避免因误解导致的返工和复杂代码。
8. 遵循现有代码风格
在修改现有项目时,即使你不认同现有的代码风格,也要尽量匹配它。不要在完成主要任务的同时进行大规模的代码风格重构,这会使变更难以 review,也可能引入不必要的错误。
9. 定期回顾和简化代码
养成定期回顾自己代码的习惯,问问自己:"一位高级工程师会认为这过于复杂吗?"如果答案是肯定的,就简化它。如果200行代码可以用50行实现,那就重写它。
10. 合理使用工具和文档
andrej-karpathy-skills项目提供了多种使用方式,可以通过Claude Code插件安装,也可以直接在项目中添加CLAUDE.md文件。合理利用这些资源可以帮助你在日常开发中始终遵循简洁代码的原则。
安装Claude Code插件的方法:
/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills
或者在项目中直接添加CLAUDE.md文件:
curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md
通过遵循andrej-karpathy-skills的这些原则和技巧,你可以显著提高代码质量,写出更简洁、更易于维护的代码。记住,好的代码是简单解决今天的问题,而不是过早解决明天的问题。
四大原则对比表
| 原则 | 核心思想 | 常见错误 | 正确做法 |
|---|---|---|---|
| 编码前思考 | 不要假设,不要隐藏困惑,展示权衡 | 默默选择一种解释并继续 | 明确列出假设,询问澄清,展示多种方案 |
| 简单优先 | 用最少的代码解决问题,不要推测 | 为单一用途添加抽象层,添加未请求的功能 | 只实现请求的功能,需要时再重构 |
| 精准修改 | 只修改必要内容,只清理自己的问题 | 重构相邻代码,改变格式风格,删除无关代码 | 只修改与任务直接相关的行,匹配现有风格 |
| 目标驱动执行 | 定义成功标准,循环直到验证通过 | "我会改进代码"的模糊方法 | "编写测试重现bug → 修复 → 验证无回归" |
【免费下载链接】andrej-karpathy-skills 项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
更多推荐




所有评论(0)