本文是对 Swift Algorithm Club - How to contribute 翻译的一篇文章。
Swift Algorithm Club是 raywenderlich.com网站出品的用Swift实现算法和数据结构的开源项目,目前在GitHub上有23.4K⭐️,大概有一百左右个的算法和数据结构,基本上常见的都包含了,是iOSer学习算法和数据结构不错的资源。
想在Swift算法俱乐部提供帮助吗?很棒!尽管我们对每个贡献的格式没有严格的模板,但是我们确实要牢记一些指导原则:
贡献准则
可读性
我们的仓库就是学习。该README
文件是蛋糕,示例代码在最上面。很好的贡献得到了图表支持的简洁解释。最好以块的形式介绍代码,并在相关的地方加入相关解释。
在简洁和性能之间进行选择时,只要特定实现的时间复杂度相同,就可以简化。之后,您可以做笔记,以建议一种更高效的做事方式。
API设计准则
Swift API准则做出了很大贡献。考虑到这一点,我们在审查拉取请求。
Swift语言准则
我们遵循以下Swift 样式指南。
贡献类别
细化
单元测试。修正错别字。没有贡献太小。:-)
该存储库具有100多种不同的数据结构和算法。我们一直对现有实现的改进和更好的解释感兴趣。非常欢迎提出使代码更像Swift或使其更适合标准库的建议。
新的贡献
在写新东西之前,您应该做两件事:
如果您有新想法,请在提交文稿时遵循以下流程:
- 创建拉取请求以“声明”算法或数据结构。这是为了避免让多个人从事同一件事情。
- 使用此样式指南编写代码(或多或少)。
- 写一个关于算法工作原理的解释。包括大量示例供读者遵循。图片很好。看一下quicksort的解释以获得一个想法。
- 在说明中包括您的名字,类似于文档末尾的“ 按您的名字写 ”。
- 添加一个操场和/或单元测试。
对于单元测试:
- 将单元测试项目添加到,
.travis.yml
以便它们可以在Travis-CI上运行。添加一行.travis.yml
如下所示:
- xctool test -project ./Algorithm/Tests/Tests.xcodeproj -scheme Tests
配置测试项目的方案以在Travis-CI上运行:
- 打开产品->方案->管理方案…
- 取消选中自动创建方案
- 检查共享
想聊天?
这不仅仅是一堆代码的回购…如果您想更多地了解算法的工作原理或想讨论解决问题的更好方法,请打开Github问题,我们将进行讨论!