Комментарии 5
Все хорошо и интересно, но как-то названия файлов типа app.routing-routing.module.ts
отдают шизофренией. Не совсем понятно почему было выбрано такое , на мой взгляд, плохо сформулированное название.
Спасибо за обзор. Дискуссия по структуре Ангулар проекта частая тема)
Вопрос 1: Где вы храните шаред модели? И где хранятся модели какого-то шаред компонента/сервиса, который как бы нужно импортировать в разные pages но является частью одного компонента.
Вопрос 2: Есть ли у вас взаимодействие между компонентами/сервисами внутри шаред папки?
Рады, что зашло)
Вопрос 1: под shared-модели создается папка models (можно даже алиас создать @models в тсконфиге). Модели shared-компонентов хранятся в папке с компонентом
Вопрос 2: каждый shared-компонент лежит в отдельном минимодуле, которые импортирует себе такие же минимодули, если оные нужны. Переиспользование кода возможно, главное не скидывать все в один глобальный Shared-модуль. Чтобы построить правильно зависимости между модулями, можно посмотреть упомянутый в статье материал про DI & IoC
Стандартная структура проекта, многие так делают. Недостаток в том, что на каком-то этапе папка shared превращается в помойку. Вы сделали разделение в папке shared на компоненты, модули, директивы, пайпы. Я думаю лучше все таки делать разделение по функциональному принципу. Мы вообще UI выносим в библиотеку, так удобнее, а в shared у нас в основном какие-то компоненты, связанные с бизнес-сущностями.
И еще: в shared частая ошибка, что делают один shared модуль и в него все запихивают компонентами, директивами, пайпами итд. Лучше каждую фичу запихивать в свой модуль.
Разработка Angular-приложений и построение их архитектуры