返回顶部
o

oop-coding-standardsOOP编码规范

Apply universal object-oriented programming standards derived from battle-tested engineering practices. Use this skill when the user asks to review code quality, enforce coding standards, write production-grade OOP code, design class/module structure, handle exceptions, write unit tests, design database schemas, or structure multi-layer applications. Applies to any OOP language (Python, Java, C#, Go, TypeScript, Kotlin, Ruby, Swift, PHP, etc.) without language-specific lock-in.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.0
安全检测
已通过
92
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

oop-coding-standards

技能名称: oop-coding-standards
详细描述:
该技能编码了面向对象软件的通用工程标准。应用时,Claude 会在任何 OOP 语言中强制执行这些规则——这些原则与语言无关,除非特定规则自然映射到目标语言的惯用法。

用户可能请求代码审查、生成、重构、架构设计、测试编写或数据库模式设计。应用相关部分即可。



1. 命名规范

硬性规则(始终强制执行)

  • - 公共标识符中禁止前导/尾随下划线或特殊符号。禁止使用像 name、name、$obj 这样的名称。
  • 同一标识符中禁止混合使用本地语言拼音与外语。使用全英文或全母语——绝不要使用像 getUserPingfen() 这样的混合形式。
  • 类名:使用 UpperCamelCase。例外:众所周知的领域缩写(例如 DTO、VO、BO)可保留其规范形式。
- 好的:UserAccount、OrderService、XmlParser - 差的:userAccount、XMLparser、order_service
  • - 方法、参数、局部变量:使用 lowerCamelCase。
- 好的:getUserById、localValue、inputUserId
  • - 常量:全部大写,下划线分隔。优先使用完整的描述性名称。
- 好的:MAXRETRYCOUNT、DEFAULTTIMEOUTSECONDS - 差的:MAX、TIMEOUT
  • - 抽象类:以 Abstract 或 Base 为前缀。
  • 异常类:以 Exception 为后缀(例如 PaymentException)。
  • 测试类:以被测类命名,后缀为 Test(例如 OrderServiceTest)。
  • 数据对象中的布尔字段:不要以 is 为前缀。许多序列化框架会将 isDeleted 误读为字段 deleted,导致运行时错误。
- 好的:deleted、active、enabled - 差的:isDeleted、isActive
  • - 包/模块:全部小写,每段一个语义单词,使用单数形式。
  • 禁止不透明的缩写:禁止使用 condi 代替 condition,abs 代替 abstract。名称必须不言自明。

推荐做法

  • - 在适用时,将设计模式编码到名称中:OrderFactory、LoginProxy、ResourceObserver。
  • 接口能力名称:在自然的情况下使用形容词形式(例如 Translatable、Serializable、Configurable)。
  • Service/DAO 实现类:后缀为 Impl 以区别于接口(例如 UserServiceImpl implements UserService)。
  • 枚举:后缀为 Enum;成员全部大写,下划线分隔(例如 OrderStatusEnum.PENDING_PAYMENT)。

分层命名规范
方法前缀规范
DAO/Repositoryget(单个)、list(多个)、count、save/insert、remove/delete、update
领域模型
XxxDO(数据对象)、XxxDTO(传输对象)、XxxVO(视图对象)、XxxBO(业务对象) |


2. 常量和魔法值

  • - 禁止魔法值——绝不要将未解释的字面量直接嵌入逻辑中。
- 差的:cache.put(Id#order_ + orderId, value) - 好的:将 ORDERCACHEKEYPREFIX = Id#order 定义为命名常量
  • - 长整型/整型字面量:在语言要求的地方使用大写后缀(例如 2L 而不是 2l;2.0f 而不是 2.0F 这种歧义写法)。
  • 按关注点拆分常量——不要创建一个单一的 Constants 类。将其分组为 CacheConstants、SecurityConstants、ConfigConstants 等。
  • 常量作用域级别(从最广到最窄):跨应用共享 → 应用级 → 模块级 → 包级 → 类私有。
  • 对命名值集合使用枚举——特别是当值具有超出其原始类型的语义含义时(例如星期几、订单状态)。

3. 代码格式

  • - 大括号风格:左大括号与语句在同一行;右大括号独占一行。空方法体可内联写为 {}。
  • 缩进:4 个空格。绝不要使用制表符(如果语言规范强制要求,则将制表符配置为 4 个空格)。
  • 运算符周围空格:所有二元和三元运算符两侧必须各有一个空格(=、&&、+ 等)。
  • 函数/方法名与其左括号之间无空格。左括号 ( 后和右括号 ) 前无空格。
  • 保留字(if、for、while、switch)在左括号前需要一个空格。
  • 行长度限制:120 个字符。换行时:
- 第二行缩进 4 个空格;后续续行与第二行保持相同缩进。 - 在逗号换行;在方法链的点换行。 - 绝不要在左括号前立即换行。
  • - 注释间距:注释标记与内容之间有一个空格(// comment、# comment)。
  • 文件编码:UTF-8。行尾:Unix(LF)。
  • 空行:方法内逻辑上不同的块之间有一个空行。无需使用多个空行作为分隔符。

4. OOP 原则

硬性规则

  • - 通过类名访问静态成员,而不是通过实例引用。
  • 始终为重写的方法添加注解(例如 Java/Kotlin 中的 @Override,其他语言中的显式 override 关键字)。这能在编译时暴露签名不匹配问题。
  • 数据对象字段使用包装/装箱类型——原始类型的默认值可能掩盖缺失数据(0 看起来像有效数据;null 则明确表示“未设置”)。仅在性能关键的局部变量中使用原始类型。
  • 数据对象(DTO、POJO 等):不要在声明时为字段分配默认值。默认值会隐藏缺失的赋值并导致微妙的错误。
  • 构造函数中禁止业务逻辑。使用显式的 init() 或工厂方法。
  • 所有数据对象必须实现人类可读的字符串表示repr、toString 等)以便于调试。
  • 尽可能严格限制访问权限
- 工具类/单例类使用私有构造函数。 - 除非有意让子类共享,否则字段设为私有。 - 除非方法构成继承契约的一部分,否则方法设为私有。

推荐做法

  • - 在索引访问前验证 split() / 类似 split 的结果——尾部分隔符产生的元素数量可能少于预期。
  • 在类体内将相关的构造函数和重载方法分组在一起
  • 类成员排序:公共/受保护方法 → 私有方法 → getter/setter。
  • getter/setter 中禁止逻辑——这些必须是纯访问器。
  • 循环内的字符串拼接:使用可变缓冲区(StringBuilder、列表连接等)——绝不要在循环体中使用 += 拼接字符串。
  • 大量使用 final/const/val:用于不打算被继承的类、不得重新赋值的字段、不应改变的局部变量。
  • 谨慎使用浅克隆/复制——如果语言的默认复制是浅复制,则在需要时显式实现深复制。

5. 集合处理

  • - 将对象用作映射键或集合成员时,始终同时重写相等性和哈希方法
  • 不要将子列表/子集合视图强制转换为其父集合类型——它们是视图,而不是独立的副本。
  • 在视图(subList 等)存活时修改原始集合会引发并发修改错误。避免这样做。
  • 将数组转换为可调整大小的集合时,使用能生成完全可变集合的适当 API——而不是固定大小的适配器。
  • 不要修改由 Arrays.asList() 或等效工具返回的适配器支持的集合——它们是固定大小的适配器。
  • 生产者/消费者泛型(适用时):读密集型 → 使用上界类型;写密集型 → 使用下界类型。
  • 在 for-each 循环中绝不要进行删除/添加操作——使用显式迭代器并调用 iterator.remove()。
  • 比较器契约:实现比较时,显式处理相等情况。只返回 1 或 -1(从不返回 0)的比较器违反

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 oop-dev-skill-1775894581 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 oop-dev-skill-1775894581 技能

通过命令行安装

skillhub install oop-dev-skill-1775894581

下载

⬇ 下载 oop-coding-standards v0.1.0(免费)

文件大小: 10.61 KB | 发布时间: 2026-4-12 10:47

v0.1.0 最新 2026-4-12 10:47
oop-dev-skill version 0.1.0

- Initial release: Encodes universal object-oriented programming (OOP) standards based on proven engineering practices.
- Enforces language-agnostic conventions for code review, code generation, class/module design, exception handling, unit test writing, and multi-layer architecture across any OOP language.
- Includes comprehensive guidelines for naming conventions, constants, code formatting, OOP principles, and collection handling.
- Promotes robust, readable, and maintainable production-grade OOP code.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部