该项目将对不同文件的集合(在ruby中)执行相同的分析。用几个参数调用main.rb(包含文件的文件夹的路径等等)。因此,main.rb包含解析器并收集给定文件夹中的所有文件,并调用函数find_spikes
来收集文件。然后为所有分析的文件生成一份报告。包装函数和代码结构的命名
所以, main.rb的:
options = { }
optparse = OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-f", "--folder FOLDER", "Path to folder", String) { |v| options[:folder] = v }
end
optparse.parse!
files = Dir.entries(options[:folder]).select { |entry| !(entry.start_with?('.') || entry.start_with?('..')) }
files.map! { |entry| File.join(options[:folder], entry) }
results = find_spikes(files)
generate_report(results)
run_steps.rb包含了真正的函数的包装。
def find_spikes(file_names)
files_alarm = {}
file_names.each do |file|
input = File.read(file)
alarm = find_spike(input, files_alarm)
files_alarm[file] = alarm unless alarm.nil?
end
return files_alarm
end
真正的分析是find_spike
功能执行,而find_spikes
对每个文件适用find_spike反复。
对于短期的项目,我有几个问题:
是否有在main.rb的代码组织的任何好的做法?其实主要文件应该包括哪些内容?
find_spikes和find_spike能够区分包装函数和真正的分析函数的最佳名称是什么?因为为了测试,我不得不将文件路径传递给函数,而是传递文件的上下文。