На самом деле делаю выношу действия по case в длинном switch в функции, заодно их называю так, чтобы было понятно, ну и смысл комментариев немного уходит, так получается практически линейный автомат состояний, каждое их которых прописано одной-двумя строчками.