https://www.donnywals.com/five-tips-to-write-better-todos-in-xcode/?utm_campaign=iOS+Dev+Weekly&utm_medium=email&utm_source=iOS+Dev+Weekly+Issue+438
在开发过程中,我们都会不时地写一些
// TODO:
和
// FIXME:
注释。有时我们这样做是因为我们知道代码可以做得更好,但暂时不确定如何做,有时由于 deadline 而没有时间编写最佳解决方案,而有时我们只是想着手处理更有趣的事情,这时我们只需在代码中标识一个
// TODO:
以便在将来某一天再处理。
在今天的帖子中,我将给你 5 个小贴士,以确保您的待办事项最终得到处理,并且最终不会在不知不觉中打乱您的代码。
1.在 todo 中加上日期和名字
在我看来,这个可能是最重要的。如果您在代码中添加 todo,可以记下你的名字和当前日期。这使您和团队中的每个人都非常清楚 todo 待了多长时间,以及是谁写的。目的不是追责,而是要问作者该待办事项是否仍然需要处理,以及在您使用的任何系统中是否有其它方式来跟踪必须完成的工作。
也可以从 git 中提取 todo 的作者和日期,但这有时可能会出现问题,尤其是在移动了有 todo 标记的代码的情况下,因为 todo 将包含整个历史记录。一目了然,可以轻松获得有关 todo 的基本信息。
2.使用 #warning
标记您的 todo
如果您的项目中的警告很少,并且会持续关注 Xcode 在项目中显示的警告,那么最好将 todo 显示为编译器警告。您可以通过以下方式来编写 todo:
#warning("TODO: donnywals, 2020-01-08 - Improve this algorithm, I'm sure we can get this to O(1) somehow.")
当您将 todo 作为
#warning
而不是注释来编写时,Xcode 会将其视为编译器警告。这使您的 todo 更加突出,当与提示 1 结合使用时,您的 todo 将很容易被注意到,因为它们显示为警告,并且您可能会在警告中看到所有可能的信息。
3.使用 SwiftLint 将 todo 标记为警告
也可以用 SwiftLint 来替代
#warning
。SwiftLint 是一个工具,可通过分析代码并在违反任何规则时显示编译器警告,帮助您和您的团队编写格式正确的 Swift 代码。SwiftLint 有一条规则,可以将
// TODO
注释标记为编译器警告。
如果您更喜欢注释,而不是
#warning
,但又想让代码中的 todo 以警告的形式呈现,那么 SwiftLint 是您的最佳选择。
4.如果 todo 暂时没有完成,请删除它们。
为了避免那些永远不会处理的 todo,请确保每隔一段时间检查一次并清理您的 todo。如果您在 todo 上标注了作者和日期,则很容易找出哪些 todo 已经存在了很长时间,您可以快速与队友联系以了解待办事项的状态以及它是否仍然需要处理。
这里的一个好方法是每两周花一个小时左右的时间来浏览正在开发的项目,以查看是否有 todo 已经超过一个月,而又不知道它们的状态。我注意到,todo 超过一个或两个月以上时,它们通常变得无关紧要,或者这些 todo 的优先级并不高。这种情况下就可以删除它。
5.完全避免 todo
处理 todo 的最佳方法就是完全避免它们。每当发现自己写 todo 时,问问自己为什么。您经常会发现答案只是您想继续进行下一件事情,或者不确定如何去做自己想做的事情,并且由于某些原因,您决定暂缓处理。在许多情况下,您也可以继续进行并立即处理需要做的事情,而不必编写 todo。
如果您正在查看一个队友的 PR,并且在他们的代码中发现了 todo,那么绝对可以问他们为什么要用 todo,并尝试说服他们现在而不是在未来某个时候处理 todo。如果 todo 合理,请尝试确定 todo 是否已添加到跟踪系统中,以确保最终确定工作的优先级,以便可以后续来处理这些 todo。
总结
我希望通过这些方法来更好地编写 todo,以改善代码。todo 在大多数代码库中都是不可避免的,但重要的是要对其进行妥善管理,以免在您的代码中出现许多没人记住或关心的隐藏 todo。