Loops 方法在循环中使用查找表

Loops 方法在循环中使用查找表,loops,methods,lookup-tables,Loops,Methods,Lookup Tables,背景: 我自学成才,编写代码供自己使用。正因为如此,我的代码经常是丑陋的。虽然我仍然不想在复杂的错误处理上花费太多的时间,因为我将是唯一的用户,但我已经决定修改我的方式,并朝着“最佳实践”编码迈出一小步。在查看meta时,我发现这显然是一个不好的词,不仅如此,在任何网站上都是如此。出于似乎可以归结为“愚蠢的人通常使用它”的原因,强烈建议不要使用它。然而,如果有人必须维护我的代码,我相信他们会很快决定“最佳实践”有一些价值,并且希望我至少考虑过它。有了这些信息,我的问题是: 问题: 我经常遇到这样

背景: 我自学成才,编写代码供自己使用。正因为如此,我的代码经常是丑陋的。虽然我仍然不想在复杂的错误处理上花费太多的时间,因为我将是唯一的用户,但我已经决定修改我的方式,并朝着“最佳实践”编码迈出一小步。在查看meta时,我发现这显然是一个不好的词,不仅如此,在任何网站上都是如此。出于似乎可以归结为“愚蠢的人通常使用它”的原因,强烈建议不要使用它。然而,如果有人必须维护我的代码,我相信他们会很快决定“最佳实践”有一些价值,并且希望我至少考虑过它。有了这些信息,我的问题是:

问题: 我经常遇到这样一种情况(如果有帮助的话,我可以发布最近出现的代码,但代码还不能正常工作),我的过程过于臃肿,我希望将其分解为更小的过程/方法。问题是:我的大部分过程都在一个循环中(使用VBA,因此我无法访问某些.NET替代方案),并且使用了1)许多不同的变量,或者2)大型查找表。我的困境:

  • 让代码保持原样会导致代码臃肿、非模块化,并且难以维护
  • 将大量的变量/表传递给该方法似乎很笨拙,并且很难读取
  • 由于循环的存在,重新加载表将对性能造成巨大的影响
  • 有人告诉我,如果我使用全局变量,上帝会攻击我
  • 那么,我应该如何处理这种情况呢

    示例:导入/分析投资交易。对于每笔交易:

  • 查找最大上一个ID#&分配下一个ID#
  • 搜索以前的事务以查找前置事务(如果有)
  • 查找帐户
  • 查找交易代码(买入/卖出/分红等)以确定会计规则
  • 搜索基金名称的描述,直到找到匹配项
  • 按基金名称和股票类别查找股票代码
  • 按股票代码、日期和费用类型列出的查找费用
  • 按股票代码和账户查找股票余额和基数
  • 使用费用、股份、账户类型、基础、交易代码、日期和美元金额执行计算
  • 添加交易记录

  • 正如您所看到的,这涉及到多个查找,传递这些查找会很麻烦,并且会对每个事务将表重新读入内存造成性能影响

    首先:你想要改进你的代码,并且扩展你的知识,这对你很好。然而:我认为这个问题不太适合这个网站,因为它是相当广泛和理论性的。它可能更适合,但在发布之前,请查看该网站上的帮助中心。@IMSoP-谢谢!我试着在meta上查找要发布的站点,但最上面的答案只是说“不要询问最佳实践”。在软件工程上发表文章是个好主意。交叉投递的规则是什么?(@IMSoP在引用其他网站时,指出这一点通常是有帮助的)@gnat我不知道政策是什么,所以等待有人(像你一样!)回答OP的问题。这将是一个更好的解释,虽然它集中了很多关于你不应该做什么,而不是你应该做什么。在这种情况下,我认为实际的建议是“如果你想在另一个网站上提问,请先在这里删除”。我认为堆栈交换作为一个网络存在一个缺陷,即没有一个更明确的系统来解决这个问题。那么,大家是否一致认为,我应该删除它,转而在软件工程中询问它?