下面是我编码风格的一个例子。有时我最终得到50行方法。
def make_juice
wash_fruits()
cut_fruits()
while(true) do
if electicity_available?
turn_on_lights()
break
else
pay_electricity_bill()
sleep(60)
end
end
mix_fruits_in_mixer()
add_sugar()
end
# ---------- function definitions ----------
def wash_fruits
# ...
end
def cut_fruits
# ...
end
def electricity_avalable?
# return true if available
end
def turn_on_lights
# turn on
end
def pay_electricity_bill
# pay
end
def create_juice
# steps for creating juice
end
def add_sugar
# steps for adding sugar
end
编写长方法并不是ruby惯例,我想知道重构ruby程序的标准方法。我试着重构代码并得到以下结果:
def wash_fruits
# ...
cut_fruits
end
def cut_fruits
# ...
turn_on_lights
end
def turn_on_lights
while(true) do
if electricity_avalable?
turn_on_lights
break
else
sleep 1.hour
end
end
mix_fruits_in_mixer
end
def mix_fruits_in_mixer
# ...
add_sugar
end
def turn_on_lights
# ...
end
def add_sugar
# ...
# ... program exits
end
第二种风格的方法名称不是很有意义。这是重构程序的正确方法吗?
答案 0 :(得分:1)
我倾向于写下以下 1 。
def make_juice
wash_fruits
cut_fruits
turn_on_lights
mix_fruits_in_mixer
add_sugar
end
def turn_on_lights
until electricity_available?
pay_electricity_bill()
sleep(60)
end
flip_switch_on
end
1逻辑表明,洗涤和切割可能在黑暗中进行,人们可能需要多次支付电费以获得电力。 ¯\ _(ツ)_ /¯