本文是对 Swift Algorithm Club - How to contribute 翻译的一篇文章。

Swift Algorithm Clubraywenderlich.com网站出品的用Swift实现算法和数据结构的开源项目,目前在GitHub上有23.4K⭐️,大概有一百左右个的算法和数据结构,基本上常见的都包含了,是iOSer学习算法和数据结构不错的资源。

想在Swift算法俱乐部提供帮助吗?很棒!尽管我们对每个贡献的格式没有严格的模板,但是我们确实要牢记一些指导原则:

贡献准则

可读性

我们的仓库就是学习。该README文件是蛋糕,示例代码在最上面。很好的贡献得到了图表支持的简洁解释。最好以块的形式介绍代码,并在相关的地方加入相关解释。

在简洁和性能之间进行选择时,只要特定实现的时间复杂度相同,就可以简化。之后,您可以做笔记,以建议一种更高效的做事方式。

API设计准则

Swift API准则做出了很大贡献。考虑到这一点,我们在审查拉取请求。

Swift语言准则

我们遵循以下Swift 样式指南

贡献类别

细化

单元测试。修正错别字。没有贡献太小。:-)

该存储库具有100多种不同的数据结构和算法。我们一直对现有实现的改进和更好的解释感兴趣。非常欢迎提出使代码更像Swift或使其更适合标准库的建议。

新的贡献

在写新东西之前,您应该做两件事:

  1. 检查主页以了解现有实施
  2. 检查请求请求中“已声明”主题的请求。下面的更多信息。

如果您有新想法,请在提交文稿时遵循以下流程:

  1. 创建拉取请求以“声明”算法或数据结构。这是为了避免让多个人从事同一件事情。
  2. 使用此样式指南编写代码(或多或少)。
  3. 写一个关于算法工作原理的解释。包括大量示例供读者遵循。图片很好。看一下quicksort的解释以获得一个想法。
  4. 在说明中包括您的名字,类似于文档末尾的“ 按您的名字写 ”。
  5. 添加一个操场和/或单元测试。

对于单元测试:

  • 将单元测试项目添加到,.travis.yml以便它们可以在Travis-CI上运行。添加一行.travis.yml如下所示:
  1. - xctool test -project ./Algorithm/Tests/Tests.xcodeproj -scheme Tests
  • 配置测试项目的方案以在Travis-CI上运行:

    • 打开产品->方案->管理方案…
    • 取消选中自动创建方案
    • 检查共享

**
【译】Swift算法俱乐部-如何贡献 - 图1

想聊天?

这不仅仅是一堆代码的回购…如果您想更多地了解算法的工作原理或想讨论解决问题的更好方法,请打开Github问题,我们将进行讨论!