Хотя я согласен с тем, что наиболее распространенной практикой является группирование файлов по типам (например, ViewControllers, Models и т. Д.), Я бы добавил, что в некоторых бизнес-случаях полезнее организовывать код с помощью предоставленных функций. Например, если вы работаете в компании, которая предлагает несколько комбинаций услуг, обычно упакованных в разные приложения, которые совместно используют некоторые элементы, например, - Адресную книгу, Сообщения, Управление документами и т. Д. *
В моих проектах у меня обычно есть папка Common, в которую я помещаю вещи, которые я часто использую, например, помощники по дате, писатели ввода-вывода и т. Д.
Другие вещи я разделяю по функциональности.