ruby - 区分 gem 的外部和内部“公共”API 的正确术语是什么?
问题描述
“公共”和“私有”函数/方法之间的区别在整个编程世界中都可以找到。许多语言将这种区别形式化。Ruby 有一个可选版本,带有//public
访问修饰符。在这个框架中,一种方法是一种对可以调用它的位置没有语言强制限制的方法。private
protected
public
但是,编写良好的库 (gem) 具有不同意义上的“公共”API。gem 的公共 API 包含作者打算让 gem 的消费者使用的所有构造。文档、测试和稳定性承诺可以集中在这个公共 API 上。
这与“public”的访问修饰符意义上的公共 API 不同。例如,您的 gem 可能会A
向其用户公开某些类。A
内部使用 class B
。A
要想调用方法,必须是B
方法。但是,如果不打算由 gem 消费者直接使用,则不是 gem 的公共 API 的一部分。B
public
B
B
两个问题:
- “公共”一词的这种重载令人困惑。是否有其他公认的术语可以区分这两种含义?
- 是否有任何围绕 gem 的语言功能或工具可以形式化 gem 的公共 API(即限制对 gem 内部
public
方法的访问)?
注意:我发现了这个类似的 8 岁问题,但它在 2021 年并没有完全回答我的问题。
解决方案
推荐阅读
- reactjs - 奇怪的“TypeError:对象不是函数”错误
- reactjs - ReactJS课程文件中的额外结束脚本标记?
- scala - 如何摆脱 Akka Stream Flow 阶段中的“额外”未来?
- openssh - 如何将 ssh-agent 套接字文件放在 /tmp 以外的目录中
- ios - setViewControllers 不起作用
- reactjs - 使用 react-leaflet 的 GeoJSON 异步显示数据
- python - 纸浆编程输出
- java - 在本地模式下运行 Flink 和 Yarn 集群的不同结果
- git - git 在获取时会覆盖 refs/notes?
- matlab - 从图像中去除镜面反射