В последнее время для названий переменных я использую описание содержимого (пример: pages, currentIndex, countSteps, lastColor),
для функций описание действия (пример: createNewPicture, saveToFile, removeLastPage, getCountElements),
а для классов либо краткое описание, либо слова с приставкой -er (пример: BlockSplitter, PagesStore, ColorsManager, TextFormatter). Разумеется, часто слова повторяются. Если это для хранения, то тут Store, если для управления, то manager, controller, если для разделения/фильтрации, то Sepatator, Splitter и т.д. Если не могу подобрать ничего знакомого, лезу в переводчик, вбиваю слово и ищу наиболее простой и "красивый" вариант перевода, его и использую.
Не знаю, нормально ли это, но мне пока нравится…