Я собираюсь использовать другой подход к критике этого вопроса, кроме того, является ли он «слишком процедурным» или нет.Я надеюсь, что вы найдете это несколько полезным.
Во-первых, я не вижу никаких параметров функции или возвращаемых значений.Это означает, что вы, вероятно, используете все виды глобальных данных, чего следует избегать по многочисленным веским причинам, о которых вы можете прочитать здесь, если хотите: Являются ли глобальные переменные плохими?
Второе,Я не вижу никакой логики проверки ошибок.Допустим, резюмеY завершается с ошибкой, может быть, проблема в возобновлении, но оно также может быть выше при pauseY или настолько высоко, как loadDataSources, и проблема проявляется только позже как исключение.
Не знаюзнаю, является ли это производственный код или нет, но это хороший кандидат для перефакторинга в несколько этапов.На первом этапе вы можете пройти и заставить каждую функцию возвращать логический успех или нет, и в теле каждой функции проверять известные случаи ошибок.После того, как вы обнаружите ошибки, начните избавляться от глобальных данных, передавая аргументы функции и возвращая данные результата;Вы можете заставить свои функции возвращать нулевые значения в случае сбоя или перейти к обработке исключений, я предлагаю исключения.После этого подумайте о том, чтобы сделать отдельные части тестируемыми изолированно;например, чтобы вы могли тестировать downloadFeeds отдельно от функции обработки данных и наоборот.
Если вы пройдете и проведете некоторый ре-факторинг, вы увидите очевидные места, где вы можете модулировать свой код и улучшать его.ИМО, вам следует меньше беспокоиться о том, достаточно ли вы ООП, и больше о том, можете ли вы это сделать 1. Эффективно отладить, 2. Эффективно протестировать и 3. Понять, оставив его в покое и вернувшись через 6 месяцев, чтобы поддерживать его..
Этот ответ закончился довольно долго, я надеюсь, что вы нашли его части полезными.: -)