AI 技能AI 插件【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,445 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/gh_mirrors/an/agentic-awesome-skills点击查看免费下载本指南以 clean-code-guard 技能的核心参考文档 naming-and-functions.md 为主体系统讲解罗伯特·马丁《代码整洁之道》Clean Code第 2 章有意义的命名与第 3 章函数在 AI 代码生成与代码审查场景下的落地准则。读完本文你将掌握命名六戒N1–N6与函数十律F1–F10的完整判据、可复制的正反例以及如何在 guard-pass守卫检查、live实时书写、review审查三种模式下用这些规则给生成的代码把关并最终通过交付前自检清单。一、这份文档在仓库中的角色naming-and-functions.md位于技能目录plugins/agentic-awesome-skills-claude/skills/clean-code-guard/references/下是该技能六份参考文档之一另有 comments-and-formatting.md、solid.md、dry-kiss-yagni.md、ai-failure-modes.md、review-checklist.md。从 SKILL.md 的 frontmatter 可以看到这个技能的定位是name:clean-code-guarddescription: Review generated or changed production code with Clean Code, SOLID, DRY, KISS, YAGNI, and LLM-specific failure-mode checks.risk:critical技能本身是一个可移植的指令型技能portable instruction skill不需要 MCP 服务器、网络访问、API Key、shell 命令或本地可执行脚本任何支持SKILL.md加直接链接的references/文件的运行时都能使用。它不替代项目的 linter、格式化器、类型检查器或测试运行器——那些负责机械校验而本技能负责代码质量的判断层。三种使用模式Guard-pass 模式守卫检查推荐代码被生成、编辑、重构或修复之后对照硬性戒律检查 diff 或目标文件在呈现、提交或合并之前修复违规。Live 模式实时书写用户在做高风险代码编辑前显式调用书写过程中应用同一套戒律交付前跑自检清单。Review 模式审查模式用户要求审查、审计、评判或评分代码时按 review-checklist.md 走查目标文件并产出结构化发现报告未经要求不修改代码。本指南聚焦其中与命名和函数直接相关的规则体系——也就是下面要讲的 N1–N6 与 F1–F10。二、有意义的命名六条戒律N1–N6命名的核心原则一句话一个名字应该告诉你它为什么存在、它做什么、它如何被使用。如果需要一个注释来解释某个名字那这个名字就是错的。N1. 意图自明Intention-revealing名字必须直接揭示意图而不是描述类型或位置。以下写法全部不合格d // elapsed time in days —— 需要注释解释名字不合格 ts [] // 无法判断是 timestamps 还是别的什么 fn(xs) // 函数名不表达任何行为参数也不表达含义合格写法elapsedDays timestamps filterOverdueInvoices(invoices)从 SKILL.md 的硬性戒律第 1 条可以印证这条规则在技能中的强制地位Names reveal intent.… A name must answerwhy it exists and what it does.名字必须回答它为什么存在、做什么。N2. 不传播错误信息、不使用编码No disinformation, no encodings禁止匈牙利命名法strName、iCount、接口前缀IIUserService、成员前缀m_。同时除非类型真的是 list否则不要加 List 后缀——accountList实际存的是set这就是传播错误信息disinformation。Bad:strFirstName、IUserRepo、m_count、userArray当它不是数组时Good:first_name、UserRepo、count、users_by_idN3. 有意义的区分Meaningful distinctions不要用噪音词来区分名字。ProductInfo、ProductData、Product三者区别是什么getActiveAccount与getActiveAccountInfo又有什么不同如果区分是真实的那就命名这个区分本身例如getActiveAccountById与getActiveAccountByEmail。N4. 可搜索、可发音Searchable, pronounceable单字母名字只在短循环作用域内可接受如for i in range(...)其他任何地方都会伤害 grep。MAX_RETRIES是可搜索的而裸数字7不是。如果名字在代码评审中无法读出声它就是坏名字。书中经典反例genymdhms——正解是generation_timestamp。N5. 类名是名词方法名是动词User、Invoice、Account——类是事物saveInvoice、computeTotal、notifyUser——方法是动作。命名为ProcessInvoice的类和命名为Invoice的方法都是错误的。N6. 禁用通用名Banned generic names没有限定词时以下名字永远违反意图自明原则data、data2、data_finalresult、result_finalitem、value、temp、obj、infohelper、manager、utils、commonhandle_*、process_*、do_*当*本身也很通用时带限定词的版本则是合格的raw_csv_bytes、parsed_invoice、dedup_by_email。限定词把通用名词变成了能回答它代表什么的自明名字。这一禁令在 SKILL.md 的硬性戒律第 1 条中被原样复述并延续到了 review-checklist.md Section A 的审查第一步Scan all identifiers. Flag generic ones:data,result,item,temp,value,obj,info,helper,manager,utils,handle_*,process_*,do_*without qualifier.三、函数十条戒律F1–F10F1. 小。然后更小。目标函数不超过 20 行。Uncle Bob 更严格的版本是 2–4 行。如果一个函数在一屏内放不下说明它做了太多事——提取。SKILL.md 的硬性戒律第 2 条将≤20 行、单一抽象层级、只做一件事固定为强制项并在自检清单中要求对新函数计数行数 ≤ 20参数 ≤ 4复杂度感觉 ≤ 10名字是否揭示意图F2. 只做一件事Do one thing判断标准当你无法从该函数中提取出另一个、且名字不是对函数体重述的函数时它才只做一件事。如果compute_invoice里有一段 10 行、可以合理命名为apply_discount的代码块那么原函数就在做多件事。F3. 每个函数一个抽象层级One level of abstraction per function混用抽象层级是最常见的隐蔽缺陷。不要把 HTTP 调用、SQL 查询、正则解析和业务规则放进同一个函数——那是四个层级。Bad混了四个层级连接、查询、格式化、展示renderUserReport(userId): connection openDatabaseConnection() row queryUserRow(connection, userId) displayName row.firstName row.lastName markup h1 displayName /h1 return markupGood每层一个函数逐级下沉renderUserReport(userId): user userRepository.findById(userId) return userReportView.render(user)F4. 步降规则Step-down rule文件应能自上而下阅读每个函数之后紧跟抽象层级低一级的函数调用方在 Callee 之上。这正是 comments-and-formatting.md 中 Fmt3 Caller above callee 所引用的同名规则两份参考文档互相呼应。F5. 少参数Few arguments零个最好一个可以两个尚可。三个应当避免四个或更多需要非常特殊的理由——通常意味着应该传入配置对象。到五个参数时立即停下来提取 request/config 对象record、struct、DTO 或等价物。在 SKILL.md 中这条被收紧为硬性戒律第 3 条Four arguments is the hard ceiling.At five, stop and introduce a request/config object (record, struct, DTO, or equivalent).四个参数是硬上限。review-checklist.md 的 Section A 也要求逐一检查每个函数lines ≤ 20? params ≤ 4? one thing? one level of abstraction?F6. 无标志参数No flag arguments切换行为的布尔参数永远是错的——拆成两个函数。Bad:render(invoice, asHtml): if asHtml: ... else: ...Good:renderInvoiceHtml(invoice) renderInvoicePdf(invoice)同理适用于modex这类字符串枚举——当 mode 改变的是行为时。区分标准很关键如果mode参数化的是数据locale、currency那是合理的如果它参数化的是执行哪个函数请拆分。F7. 无输出参数 / 命令查询分离Command-Query Separation一个函数要么返回值查询要么有副作用命令二者不可兼得CQS由 Fowler 提出来源见 sources.md 中的 CommandQuerySeparation 条目。Badbool 含义不明是保存成功还是记录存在调用方无法判断save(record) - boolean // Returns true if saved, false if record was not found.Good命令与查询彻底分离save(record) recordExists(recordId) - booleanSKILL.md 的硬性戒律第 4 条将其固定为No output arguments. A function either returns a value (query) or has a side effect (command). Never both. Command names use verbs; query names use nouns or getter-style names.F8. 查询函数无副作用No side effects in queriesgetter 风格、finder 风格或谓词风格的函数绝不能修改状态。如果它确实需要缓存把缓存写入记录在 debug 级别日志即可不得改变可观察行为。F9. 优先异常而非返回码Prefer exceptions to return codesif save(x):是代码坏味。要么 save 成功不返回任何值要么它抛出异常如InvoiceSaveError。返回码会在调用栈中层层传播然后被遗忘异常则无法被静默忽略。F10. 重复是万恶之源Duplication is the root evil如果两个函数共享一段非平凡代码块提取它。但——这条有一个重要的例外参见 dry-kiss-yagni.md即 Sandi Metz 的错误抽象比重复更糟糕wrong abstraction告诫。这份交叉引用值得展开DRY 的准确定义来自 Hunt Thomas 的《程序员修炼之道》——系统中的每一条知识都必须有单一、无歧义、权威的表示。它针对的是知识knowledge的重复而非文本text的重复两个看起来相似但编码了不同规则不同知识的函数并不违反 DRY而同一条规则同时写在代码、数据库 schema 和文档里才是违反。因此 F10 的提取动作之前必须回答这段重复背后能否命名出真正的共享知识命名不出来就保留重复——这是 dry-kiss-yagni.md 给出的铁律Do not introduce an abstraction to eliminate three lines of duplication unless you can name the underlyingknowledgethe lines represent.四、审查模式下的落地Section A 走查流程命名与函数规则在 Review 模式中并非零散应用而是被组织成 review-checklist.md 的Section A — naming and functions固定走查流程扫描所有标识符标记无限定词的通用名data、result、item、temp、value、obj、info、helper、manager、utils、handle_*、process_*、do_*。对每个函数行数 ≤ 20参数 ≤ 4只做一件事单一抽象层级违规即标记。标记布尔标志参数。标记既返回值又模糊地修改可观察状态的函数CQS 违规。标记会修改状态的 getter 风格或谓词风格函数。审查产出遵循固定模板发现按严重度分级Critical安全、正确性、数据丢失、吞异常、硬编码成功返回、Important设计缺陷SOLID 违规、过早抽象、参数爆炸、通用命名、Nit风格、循环外的单字母名、公共 API 缺少契约文档。每条发现必须引用违规代码文件 行号、命名所违反的原则或 AI 失败模式、给出修复方案并给出严重度——没有引用就没有发现没有修复就没有发现。五、交付前自检清单命名与函数专项原文档在结尾给出了交付前必须逐条通过的专项自检与 SKILL.md 的全局自检走查戒律 1–24配套使用。发布代码前逐条回答所有名字能否不需要注释就回答它代表什么函数是否都 ≤ 20 行函数是否只做一件事能否提取出名字不重述函数体的另一个函数若能就是在做多件事。是否消除了混用抽象层级是否存在参数超过 4 个的函数提取配置对象。是否存在布尔标志参数拆分。是否存在既返回值、又以调用方依赖的方式修改状态的函数拆分。全局层面SKILL.md 还要求守卫通过后向用户汇报格式为逐条file[:line] — what changed并以一行收尾clean-code-guard: N fixed, M flagged for author或clean-code-guard: clean。注意只报告实际做出的修改绝不可估算质量分数或百分比——因为没有基线存在任何数字都是编造的。六、规则被质疑时怎么办当用户对某条规则提出异议时技能的处理方式见 SKILL.md是引用相关references/文件中的来源名称Uncle Bob、Fowler、Hunt Thomas、McCabe、Metz 等一手来源以及 2024–2026 年已发表的 LLM 代码生成研究需要 URL 时才查阅 sources.md 的集中书目。如果用户有上下文相关的正当理由需要覆盖规则例如一个配置 DTO 的构造函数确实需要 8 个参数则把例外记录成代码注释注明被覆盖的原则、原因和复查触发条件revisit trigger。没有复查触发条件的例外注释本身就会成为下一次审查的发现——没有退出机制的权衡只是拖延的债务。延伸阅读naming-and-functions.md — 本文主体原文命名与函数规则全集SKILL.md — 技能入口三种模式、24 条硬性戒律与全局自检dry-kiss-yagni.md — F10 的例外DRY/KISS/YAGNI 与错误抽象告诫comments-and-formatting.md — 第 4、5 章注释纪律与排版含步降规则的呼应solid.md — 五大原则的现代表述与检测坏味review-checklist.md — Review 模式的完整走查流程与发现报告模板sources.md — 集中书目经典文献与 LLM 代码生成研究赞分享AI 技能AI 插件【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,445 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/gh_mirrors/an/agentic-awesome-skills点击查看免费下载相关推荐Agentic Awesome Skills 中的 SOLID 五原则clean-code-guard 参考文档深度解读Agentic Awesome Skills 中的 SOLID 五原则clean code guard 参考文档深度解读 导读 SOLID 是面向对象设计中最AI 技能AI 插件Agentic Awesome Skills 架构模式实战Clean Architecture、Hexagonal 与 DDD 实施手册Agentic Awesome Skills 架构模式实战Clean Architecture、Hexagonal 与 DDD 实施手册 本手册以 agentAI 技能AI 插件agentic-awesome-skills 中的 Karpathy 指南为 LLM 编码行为设定四条纪律性护栏agentic awesome skills 中的 Karpathy 指南为 LLM 编码行为设定四条纪律性护栏 本文以 agentic awesome skAI 技能AI 插件上一篇GPT Image 2提示词库 awesome-gpt-image-2 完全指南16000精选AI绘图Prompt一次看懂下一篇终极指南用虎符台彻底解决全面战争MOD管理难题打造完美游戏体验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
基于 ANTLR v4 的 OCL 2.4 文法解析:OCL.g4 与 UML-RSDS 集成实战指南 基于 ANTLR v4 的 OCL 2.4 文法解析:OCL.g4 与 UML-RSDS 集成实战指南 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4
本文以… · 2026/9/24 13:44:35
Ceph 安全机制深度解析:漏洞报告流程、CVE 管理实践与近期高危漏洞修复指南 存储分布式文件系统对象存储后端高可用 【免费下载链接】ceph Ceph is a distributed object, block, and file storage platform 项目地址: https://gitcode.com/gh_mirrors/ce/ceph 点击查看 免费下载 本篇技术指南以 Ceph 官方安全文档(doc/securit… · 2026/9/24 13:44:35
Jackett索引器分类管理:影视/音乐/游戏资源分离 Jackett索引器分类管理:影视/音乐/游戏资源分离
你是否还在为各类 torrent 资源混杂在一起难以筛选而烦恼?使用 Jackett 的索引器分类功能,能轻松实现影视、音乐、游戏等资源的精准分离,让资源管理井然有序。读完本文,… · 2026/9/24 14:22:31
12_激活函数 [pytorch框架与神经网络基础] 激活函数
激活函数用于对 每层 的输出数据进行变换, 进而为整个网络注入了非线性因素。此时, 神经网络就可以拟合各种曲线。
常用的激活函数
1. sigmoid
常用于解决二分类问题,其函数及导函数表达式如下 f(x)11e−xf′(x)f(x)(1−f(x))\begin{align} &f(x) \frac{1} {… · 2026/9/24 14:22:31
告别手动更新!Jackett智能调度系统让种子索引器永远保持最新 告别手动更新!Jackett智能调度系统让种子索引器永远保持最新
你是否还在为种子索引器(Indexer)失效而烦恼?频繁手动更新软件版本、修复配置错误、同步Tracker列表——这些重复操作不仅浪费时间,还会导致下载中断。本文… · 2026/9/24 14:22:31
企业智能体迈向生产级:跳出Agent工具思维,构建可规模化落地的AI平台底座 随着 AI 智能体技术快速普及,不少企业已经完成 Demo 概念验证,开始尝试将智能体投入真实生产业务。IDC 在《新型企业级 AI 平台正在兴起》报告中提出重要判断:新型企业级 AI 平台并不是大模型与智能体工具的简单叠加。想要让智能体从演示玩具… · 2026/9/24 14:22:31
告别资源混乱:Jackett索引器优先级设置完全指南 告别资源混乱:Jackett索引器优先级设置完全指南
你是否曾经历过这样的困扰:在使用Jackett搜索资源时,大量重复或低质量的结果淹没了真正需要的内容?多个索引器同时返回结果,却无法按照你的偏好排序?本文将… · 2026/9/24 14:22:24
Delta 模拟器金手指使用指南:5 个平台格式对照 + 3 步启用流程 Delta 模拟器金手指使用指南:5 个平台格式对照 3 步启用流程 【免费下载链接】Delta Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices. 项目地址: https://gitcode.com/GitHub_Trending/delt/Delta
Delta 是一款运行在… · 2026/9/24 14:22:24
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44