我最近遇到了一个建议,将我们的应用程序代码库中使用的正则表达式模式汇集到一个查找表中,并从那里检索,而不是在程序逻辑中显式硬编码。
任何人都可以分享任何关于这个智慧的想法吗?
我最初的想法是,它使模式更容易改变,这既有优点也有缺点。但是,从根本上说,我将正则表达式字符串本身视为(有效)执行的逻辑实体,因此将它们存储在查找表中只会让我感到有点不安。
有人想吗?
谢谢
我最近遇到了一个建议,将我们的应用程序代码库中使用的正则表达式模式汇集到一个查找表中,并从那里检索,而不是在程序逻辑中显式硬编码。
任何人都可以分享任何关于这个智慧的想法吗?
我最初的想法是,它使模式更容易改变,这既有优点也有缺点。但是,从根本上说,我将正则表达式字符串本身视为(有效)执行的逻辑实体,因此将它们存储在查找表中只会让我感到有点不安。
有人想吗?
谢谢
我认为这是一个好主意,如果你设法改进正则表达式模式(甚至解决它的问题),你将在一个地方而不是任何地方更改它(可能是这样做的动机) .
这将减少程序中潜在错误的数量(或增加它们,如果你不正确地改变它。然而,这“应该”在测试中几乎立即表现出来,你仍然只需要在一个地方修复它,而不是到任何地方……再一次,更容易出错)。
关于将其视为逻辑实体,如果您将其视为保存在参考库中的一组指令,而不是逻辑本身,会有所帮助吗?逻辑本身由正则表达式处理器执行,而不是您在代码中键入的模板,所以我认为它是存储在查找表中的一个很好的候选者。
如果它会导致不必要的 SQL 连接,我会说,不。不要这样做。逃到山上。
但除此之外,如果它们经常重复,请考虑如何重构您的代码。您是否应该在包含在多个页面中的函数或类中使用它们?如果答案是否定的,那就继续吧,我看不出有什么问题。