mcpField
M
modularization

modularization

github.com/rcosteira79开发165114 次安装6 周前更新
代码仓库

关于 modularization

面向 Kotlin 多模块项目开发者的模块化参考,说明如何根据实际使用范围设置符号可见性。重点是将公开 API 与模块内部实现分开,避免不必要地扩大 API 表面。

主要功能

  1. 01按最低可用范围声明可见性
  2. 02区分公开接口与内部实现类
  3. 03模块内辅助代码使用 internal
  4. 04成员仅在类内使用时设为 private
  5. 05跨模块使用者决定是否公开

适用场景

  1. 01定义模块对外接口
  2. 02收窄 Mapper 和扩展函数的可见范围
  3. 03整理多模块项目的 API 表面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rcosteira79/android-skills --skill modularization

安装后在 Claude Code 中输入/modularization确认已加载。

详细介绍

模块化

在不影响编译的前提下,将所有内容声明为尽可能低的可见性。 从 private 开始;只有当同一模块中的另一个文件需要使用时,才提升为 internal;只有当其他模块实际使用时,才提升为 public。Kotlin 默认使用 public,在多模块项目中,这个默认值通常并不合适——public 符号会成为模块 API 的一部分:它会让实现细节跨越模块边界泄露出去,因此你有义务保持其稳定。

  • 作为模块 API 的公共接口 → 接口为 public;其实现类保持为 internal(通过 DI 绑定,绝不从其他模块中直接引用其名称)。
  • 仅在模块内部使用的映射器 / 辅助程序 / 扩展 / 常量 / UI 状态持有者 → 使用 internal(如果只有单个文件使用,则用 private)。“由本模块中的可组合项渲染”并不要求使用 public——internal 对整个模块可见。
  • 仅在所属类内部使用的成员 → 使用 private。

将符号提升为 public 是一项决策,而不是默认选择:先确认确实有其他模块使用,再做决定。

评论

支持 Markdown