你的位置: 首页 > 新闻博客 > 技术博客

简单的事情……

2024-05-15 09:30:20

我最近从 github 存储库中打开了一个有趣的软件。我将不命名它,因为它是本文的触发点,并演示了我在遗留项目中经常看到的一些不良实践。

您可能认为将类型分配给变量和参数是一件简单的事情。您可能会找到更好、更明显的选择。当你简化时,你就提高了可靠性和可读性。我建议除非与某些外部程序存在接缝,否则最好使用最普通的类型:整数、双精度数和字符串。

当然有理由使用 Delphi 提供的集合中更专门的类型,但通常是因为与其他程序的接口。例如,要在 Delphi 记录中复制 C 结构体,您将需要专门的类型。对于 char 必须使用 ShortInt、Byte 或 Int8,对于短整型必须使用 SmallInt。并且您必须声明您的记录已包装好。

保持专注

但这不是我今天的重点。我们大多数人都做过这样的事情,足以了解其中的来龙去脉。相反,我想解决不常见类型的不必要声明。我提到的开源项目就是这样做的。

在我们编写的大多数应用程序中,我们可能永远不需要使用 AnsiString 而不是字符串。或者 UInt16 而不是 Integer。然而,在许多遗留模块中,当没有迫切需要时,我们会发现这样的事情。这些选择可能不会导致性能问题,但它们不必要地降低了清晰度和简单性。您将添加强制转换来消除提示和警告的激增,尤其是在较新的编译器中。

我在当前项目中看到输入是您将解析的文本文件。输出是 UI 中的信息表。没有合理的理由引入任何专门的变量类型。他们只是让读者问为什么要这样做?于是,读者就去探寻其中的原因。您可能会发现,就像在本例中一样,根本没有理由。想象一下一个充满如此神秘的大型遗留项目。您有数十万行代码,其中散布着某人的糟糕选择。

您将花费您可能需要的时间进行其他工作。尽管清理旧代码总是好的,但您可能有更高的优先级。我确实赞成清理工作,但通常是增量工作。

当您简化代码时,您就可以使其更易于维护。您还将发现并消除现有的缺陷。请让我们努力让我们的代码清楚地传达给那些必须关注我们的人。


QQ在线咨询
售前咨询
0531-66900120
售后服务
13287796906
QQ在线咨询
售前咨询
0531-66900120
售后服务
13287796906