Для моей текущей работы я пишу несколько долгосрочных (от нескольких часов до дней) сценариев, которые выполняют интенсивную обработку данных процессором. Ход программы очень прост - он переходит в основной цикл, завершает основной цикл, сохраняет выходные данные и завершается: Базовая структура моих программ имеет тенденцию быть примерно такой:
<import statements>
<constant declarations>
<misc function declarations>
def main():
for blah in blahs():
<lots of local variables>
<lots of tightly coupled computation>
for something in somethings():
<lots more local variables>
<lots more computation>
<etc., etc.>
<save results>
if __name__ == "__main__":
main()
Это быстро становится неуправляемым, поэтому я хочу преобразовать его в нечто более управляемое. Я хочу сделать это более понятным, не жертвуя скоростью выполнения.
Однако каждый кусок кода зависит от большого числа переменных, поэтому рефакторинг частей вычислений в функции может очень быстро вывести список параметров из-под контроля. Должен ли я поместить этот вид кода в класс Python и заменить локальные переменные в переменные класса? Концептуально не имеет смысла превращать программу в класс, так как класс никогда не будет использоваться повторно, и будет создан только один экземпляр для каждого экземпляра.
Какова структура наилучшей практики для такого рода программ? Я использую python, но этот вопрос относительно не зависит от языка, предполагая, что современные объектно-ориентированные языковые возможности.