Мое общее правило: я создам новый проект для каждого компонента многократного использования. Так, например, если у меня есть отдельные изолированные функции, которые можно упаковать, например, в jar-файл, я бы создал новый проект, чтобы я мог самостоятельно собирать, упаковывать и распространять компонент.
Кроме того, если есть определенные проекты, в которые вам не нужно вносить частые изменения, вы можете создавать их только при необходимости и держать их «закрытыми» в затмении, чтобы сэкономить время на индексации и т. Д. Даже если вы считаете, что определенный компонент не может быть повторно использован, если он отделен от остальной части кода с точки зрения логики / проблем, которые могут быть вам полезны, просто выделив его. Иногда, казалось бы, определенный код может быть многократно использован в другом проекте или в будущей версии того же проекта.