在同一个循环中执行两个不同的任务是不是很糟糕?

Sco*_*ott 4 language-agnostic

我正在为我的数据库开发一个高度专业化的搜索引擎.当用户提交搜索请求时,引擎会将搜索项拆分为数组并循环遍历.在循环内部,针对几种可能的场景检查每个搜索项以确定它可能意味着什么.当搜索项与场景匹配时,会向SQL查询添加WHERE条件.某些术语可以有多种含义,在这些情况下,引擎会构建一个建议列表,以帮助用户缩小结果范围.

旁白:如果有人有兴趣知道,通过在前面添加一个关键字来改进模糊的术语.例如,1954年可能是一年或序列号.引擎将向用户建议这两种情况,并将搜索项修改为年份:1954或序列号:1954.

在同一个循环中构建SQL查询和优化建议对我来说感觉不对,但是将它们分开会增加更多开销,因为我必须循环遍历同一个数组两次并且测试所有相同的场景两次.什么是更好的行动方案?

spr*_*man 13

我可能会将这两个动作分解为自己的功能.然后你就拥有了

foreach (term in terms) {
    doThing1();
    doThing2();
}
Run Code Online (Sandbox Code Playgroud)

这很干净.


Pau*_*han 6

不,这还不错.我认为循环两次会更令人困惑.

但是,如果任务彼此分离得足够多,可能会将某些任务放入函数中.