я читал когда-то что лучше идти по "увеличению парадигмы" такскать т.е. ты пишешь код когда видишь что начинаешь повторяться - блок кода оформляешь в отдельную функцию видишь что ты работаешь с одними типами-боками данных - выделяешь классы и спецфункции (методы) для работы с такими данными