为你的 Swift Packages 命名

作者:Erica Sadun,原文链接,原文日期:2016-02-08
译者:Cee;校对:小锅;定稿:千叶知风

于是乎,在整理我大量 Swift 代码中的一小部分时,我决定利用一下 Swift Package Manager 的优势,将其中的一下推到 GitHub 上。这些都是

在此之后,我突然意识到我的命名太糟糕了。我本应该用一种更加符合逻辑、可读性好的方式去命名。

包(Package)命名需要简洁易懂。是的,同样它们也需要避免重名情况的发生,因为当你有个叫做 SwiftString 的包时,可能 Bob、Jane、Harry 都会有同样名称的这个包。命名冲突是不可避免的。

再比如你的 SwiftString.doSomethingMeaningfulWithAString() 方法会和其他人的 SwiftString.doSomethingMeaningfulWithAString() 难以分辨。这时,也没有内置的解决办法来告诉我如何处理模块间的命名冲突。

今后的一种解决思路是提供命名空间(namespace)。例如,包声明的格式可能会加上 Origin 字段:

import PackageDescription

let package = Package(
    name: "SwiftString"
    origin: "com.sadun"
)

有了这个,你可以通过使用命名空间来避免冲突:

import com.sadun.SwiftString
import com.LeeJason.SwiftString

以及:

com.sadun.SwiftString.doSomethingMeaningfulWithAString()

众所周知,这样会在你只需要引入一到两个包的时候变得复杂一些,但是这样却能够很好地避免了引用上的歧义。

现在,虽然这些都还没有被公开认可,同时也没有官方的 SPM 包,但是你要知道我们的这些自我组织的包即将要登上历史舞台了。确保以一种清晰明了的方法来使用多个、可能在命名上有冲突的包将会是一件好事情。

从现在开始,使用 SadunSwiftString 而不是 SwiftString 来避免这些问题吧。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 嗯哼嗯哼蹦擦擦~~~ 转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 ...
    philiha阅读 5,218评论 0 6
  • 暑假回到老家,不经意翻起被遗忘在角落里的旧笔记本。妈妈说,看到上面的画,不舍得扔。——2017年8月26日 年少时...
    夏雨尤川阅读 414评论 2 6
  • 分析案例:94鲜妹子——柠檬佳 一、身体 具体不明,应该是身体健康 二、心智 爬楼不会的记下来,一个一个研究。 别...
    大清快跑阅读 414评论 0 1
  • 文 / 尘世低眉 清晨带着寒凉 听凭一丝暖风的呼唤 打开了闸门 桃李争相展露芬芳 一场冻雨 瘦了希望 一次阳光 鼓...
    尘世低眉阅读 171评论 0 6

友情链接更多精彩内容