使用Swift协议提高代码质量

因此,您正在与许多团队成员一起从事一个项目,或者您正在编写一个框架。 两者都涉及编写其他开发人员最有可能查看或以某种方式使用的代码,无论是添加新功能还是从外部访问您的功能。

如果您是独立工作,很容易养成一个坏习惯,即直接跳入编写实现并随手进行即兴创作,而只是在同一周晚些时候回来,发现您或您的任何同事都可以什么都没读。

这将导致新功能需要花费更长的时间添加,团队内部混乱,并且在某些情况下可能最终会完全重写整个功能。

请记住,评论不应该只是为自己写。 其他人会阅读您的代码,因此当您编写注释时,请确保对他们和您自己有意义,几周后再返回。 您可以通过遵循一些黄金法则来实现。

不做任何假设

不要以为其他开发人员会像您一样了解该项目。 请勿使用其他人似乎看不见的短语。 如果花时间检查外部依赖关系和潜在的副作用,则会浪费大量时间。

如果您发现自己在写小说来解释单个功能,那么您的功能可能做得太多。 也许您应该将功能分解为几个较小的功能。

保持清楚:

删除多余的单词和短语,但不要删除太多,以免短语变得模棱两可。 注释应清楚简洁地说明代码的作用。

不要说它是什么,要说它 什么

例如,我们都已经看到了注释,这些注释准确地描述了该函数的含义:但是没有解释其作用。

我们知道它会返回一个字符串数组

您可能正在看函数的实现,以查看函数实际执行的操作,但您不必这样做。 这些评论应该告诉您您需要知道的一切。

我们可以使其他开发人员更容易阅读。 使用cmd + option + /, Xcode可以让我们为此功能生成一个不错的注释结构,并且可以对其进行改进。

因此,我们现在有了一个很好的注释功能。 现在,我们想为User对象添加更多功能,因此我们创建了UserService

可以将其保留为一个初学者项目的原样,但是当您编写自己的框架或从事商业项目时,这仅仅是不够的。

代码需要是可单元测试的,也许某些实现代码需要具有受限的访问权限。

使用协议将为项目带来很多好处。 我们希望使我们的UserService更具可读性,因此让我们为其创建一个Protocol ,恰当地命名为UserServicing

如果UserService符合UserServicing ,则可以这样使用:

那么,什么使它更好呢?

  • 没有实现代码:没有干扰性的实现代码,加上高质量的注释,您可以更清楚地看到每个功能的职责以及整个Servicing的功能。
  • 依赖注入+测试:通过使用协议,这意味着我们可以更改符合UserServicing的任何内容的实现,而不会产生任何负面影响。 这意味着我们可以使用Cuckoo之类的库对协议实现进行模拟,存根和测试
  • 灵活性:如果我们的User数据提供程序发生了更改,或导致UserService内的实现发生更改的其他任何内容,都没有关系! 只要UserService的定义保持不变,就无需更改ViewModelUserService的实现。

在开始任何实施之前,请先编写注释良好并记录在案的协议。 通过让您事先考虑所有功能要求,它将确保重点,并有助于获得更好的画面。

此外,如果将代码以有组织的方式分解为协议,它还允许项目的新开发人员或使用您的框架的人员快速了解代码的工作方式。

感谢您抽出宝贵的时间阅读。 如果您有任何疑问或有兴趣阅读我的其他文章,请随时在Twitter或LinkedIn上与我联系。