SwiftLint入门教程

与团队的开发人员在项目中保持代码库的一致性和可维护性有时可能会非常困难,不同的约定和样​​式,以及跨开发人员使用该语言的不同层次的经验,可能会导致应用程序在大多数情况下很难调试和对于加入团队的新开发人员而言,大多数情况很难理解。

在研究一个项目的CI时,该项目将对我的团队有帮助,并且我避免了bug并保持代码的清洁。我发现了Swiftlint,这是一种用于执行Swift样式和约定的工具,它很好地遵循了Swift准则,由Realm团队维护,开源,这意味着Swift社区会不断对其进行更新。

首先,我将逐步向您展示如何将Swiftlint集成到您的项目中,这样它将在每次构建它时运行,然后,如果您不想在计算机上下载Swiftlint,则如何使用Hound CI,

我将使用我的一个存储库向您展示,但是如果您有任何小型应用程序或小型项目可以使用它,则必须使用自己的存储库,步骤相同,因此应该可以使用。

如果您没有安装Brewlin,我将使用Brew来安装Swiftlint,您可以按照其网站上的步骤进行操作。

安装完成后,打开终端并运行

 酿造安装swiftlint 

安装完成后,导航到您的项目文件夹,您可以按照此处的说明将其添加到您的项目中,但让我向您展示它,复制它…

 如果哪个swiftlint> / dev / null; 然后 
swiftlint
elseecho“警告:未安装SwiftLint,请从https://github.com/realm/SwiftLint下载”
科幻

我们将向您的Xcode项目添加一个新的“运行脚本阶段”,因此,如果您不知道如何添加脚本,则打开您的项目,选择目标并转到“构建阶段”,请检查此链接。

像这样粘贴代码段…

构建您的应用程序,您应该有很多错误和警告,主要是如果您的项目安装了Pod,所以不用担心,很酷的事情是,我们可以配置使用Swiftlint时要检查或不检查的规则,我建议继续到其仓库中的Swiftlint规则文件,并查看所有这些文件。

要配置它非常简单,您要做的就是在项目文件夹中创建一个名为…的新文档。

  .swiftlint.yml 

就我而言,我是这样使用终端做的……

 触摸.swiftlint.yml 

打开文件…

 打开.swiftlint.yml 

添加您想要或不包含的内容,此处的“配置”部分提供了一个示例。

不知道您的警告是什么样子,但是在我的项目中我可以看到很多Trailing_whitespace警告,这意味着行之间不应有任何空格,警告看起来像这样:“ Trailing Whitespace Violation:行不应包含尾随空格。 (trailing_whitespace)”

我没有在代码中保留空白的乐趣,但是我确实喜欢在签名和函数主体之间保留一个空格,因此我将禁用该规则,即默认情况下启用该规则,我怎么知道? 很好,规则库中的规则文件包含您需要的所有信息,请将其复制并粘贴到新文件中以禁用该规则,并避免检查吊舱中的代码。

  disabled_rules: #排除运行中的规则标识符 -Trailing_whitespace 
排除:
#掉毛期间要忽略的路径。 优先于“ included”。 -迦太基
-豆荚

保存并构建后,您将看到警告和错误的数量现在大大减少了。

Swiftlint的一个很棒的事情是它还可以通过在终端上运行来自动纠正某些违规行为…

  swiftlint自动更正 

在使用自动更正功能之前,只需做一个注释,磁盘上的文件就会被更正的版本覆盖。

请注意,运行前请确保已备份这些文件,swiftlint会自动更正,否则重要数据可能会丢失。

好吧,现在,如果您希望可以运行自动更正,我做到了,并且在我的终端上,它说“完成36个文件的修正!”,现在警告的数量从250降为46,对我来说更容易一个并决定我要保留什么样的规则并重构我需要的规则; 将来,我的代码将遵循这些规则。

在第一部分中就差不多了,现在让我向您展示如何使用Hound CI自动执行代码审查。 无需本地下载Swiftlint

我将为此使用另一个项目,并且我邀请您也使用您的另一个项目。

因此,首先在https://houndci.com中创建一个免费的公共存储库帐户。

快速免责声明,我仍在确定Hound是否是完成这项工作的最佳工具,但是因为它使与Swiftlint的合作变得如此容易,所以我很喜欢它。

现在您已经拥有一个帐户,您将能够看到所有存储库激活了您要查看的存储库。

既然您有一个“活动”项目,请在本地导航到其文件夹并创建一个新分支,我们将进行修改以提交它并创建PR。

将PR推送到您的远程存储库,您将在PR上看到它。

Hound CI现在正在审查您的PR,看看它是否符合标准惯例,看来我需要在合并之前进行修复…

很好,现在我可以看到我做错了什么而没有要求其他队友对其进行审查,并且让我们所有人都在同一页面上,而且,您还可以配置要应用的规则。

我发现Swiftlint非常适合在开发人员之间编写干净且一致的代码,而Hound CI非常适合自动代码审查,您认为呢? 您还推荐其他哪些工具?

我强烈建议在这里观看有关Swiftlint的精彩演讲。

JagCesar大喊大叫, 因为它非常易于理解。