Напишите основную функцию минимально, в ней почти ничего нет. В большинстве программ с графическим интерфейсом, игровых программ sdl, open gl или чего-либо еще с любым пользовательским интерфейсом основная функция должна быть не более чем циклом обработки событий. Должно быть, или всегда будут большие промежутки времени, когда компьютер кажется не отвечающим, и операционная система думает, что может отключить его, потому что он не отвечает на сообщения.
Как только вы получите свой основной цикл, быстро заблокируйте его, чтобы его можно было модифицировать только для исправления ошибок, а не для новой функциональности. Это может привести к тому, что проблема будет перенесена на другую функцию, но, в любом случае, в приложении, основанном на событиях, сделать монолитную функцию довольно сложно. Вам всегда понадобится миллион маленьких обработчиков событий.
Может быть, у вас есть монолитный класс. Я сделал это Основным способом решения этой проблемы является попытка сохранить ментальную или физическую карту зависимостей и отметить, где есть ... скажем, перфорации, трещины, где группа функций явно не зависит от какого-либо общего состояния или переменных с другие функции в классе. Там вы можете раскрутить этот кластер функций в новый класс. Если это действительно огромный класс, и он действительно запутался, я бы назвал это запахом кода. Подумайте о том, чтобы изменить такую вещь, чтобы она была менее масштабной и взаимозависимой
Еще одна вещь, которую вы можете сделать, когда вы кодируете, учтите, что когда функция увеличивается до размера, когда она больше не помещается на одном экране, она, вероятно, слишком велика, и в этот момент начинайте думать о том, как ее сломать. вниз на несколько небольших функций.