Проблемы с новыми приложениями
В реальном проекте, когда мы создадим новое приложение, с какими проблемами мы столкнемся?
- Процесс создания приложения громоздкий, и многое из содержимого на самом деле похоже, но его приходится переписывать. Некоторые могут сказать, используйтеSpring Initializr, это хорошо для вашего собственного тестирования, но все еще не очень удобно для реальных проектов. Во-первых, в каждой компании должны быть соответствующие спецификации по уровням приложений.В настоящее время проект включает в себя несколько модулей.С этой точки зрения,Spring InitializrНе поддерживается, то у некоторых компаний есть свои сторонние пакеты, и нет возможности их быстро процитировать
- Проблема модуля: для некоторых сложных бизнес-систем действительно много модулей.Если вы систематически не изучали соответствующий контент или не сталкивались с таким сложным развитием бизнеса, нам может быть трудно понять, почему существует так много модулей. . ? Но нельзя отрицать, что многие проекты настолько сложны
- Проблема зависимостей: одна — это зависимости от различных открытых исходных кодов, другая — некоторые общедоступные компоненты, разработанные самой компанией, или компоненты, разработанные на основе некоторых компонентов с открытым исходным кодом. При цитировании компонентов с открытым исходным кодом вы, как правило, ссылаетесь на соответствующие официальные документы, а собственная разработка компании, как правило, также имеет соответствующие документы доступа. Но если задействовано слишком много зависимостей, стоимость доступа на самом деле очень велика. Одна — проблема управления версиями между зависимостями, другая — проблема начальной настройки каждого компонента. Для старых одноклассников решается проще, ямы, на которые следует наступить, уже наступили, а вот для новичков это очень болезненное дело: в середине могут быть разные проблемы, много тратится время, экологические проблемы Это был сложный вопрос
- Проблема с конфигурацией: у каждой компании должно быть разное управление конфигурацией, что на самом деле является головной болью; документация в порядке, но если документация не подробная, это будет очень раздражать. Если здесь отсутствует конфигурация, то нужно ввести это пространство имен, а если там отсутствует конфигурация, то следует ввести пространство имен.Откуда новички так много знают? Или как вы узнали об этом, если вы не знали этого раньше? В настоящее время я очень зависим от документации, и тогда я хочу спросить вас, довольны ли вы документацией, которую вы ведете? Приложение может зависеть от множества технологических стеков, и документы, соответствующие каждому технологическому стеку, разбросаны по разным местам, что затрудняет
- Для некоторых проектов строительных лесов с открытым исходным кодом на рынке они обычно объединяют множество функций, которые не очень полезны. Какой в этом смысл, если он не соответствует собственному стеку технологий компании? Некоторые приложения вообще не используют так много функций, и им приходится удалять это содержимое самостоятельно, и у них больше шансов получить проблемы в конце.
как решить эти проблемы
- Процесс создания приложения громоздкий, и приходится каждый раз писать много однотипных вещей: мы можем предоставить соответствующие шаблоны, а потом есть соответствующий скаффолдинг для быстрого создания приложения на основе этих шаблонов.
- Проблема модуля: строительные леса должны поддерживать несколько модулей, которые могут быть основаны наSpring InitializrЭто творение также можно реализовать самостоятельно, но оно должно поддерживать несколько модулей.
- Проблема зависимости: как правило, компания сама поддерживает родительский pom, а затем все приложения используют этот родительский pom, что может эффективно решить проблему конфликтов зависимостей.
- Проблема с конфигурацией: на основе приложения, сгенерированного скаффолдингом, соответствующий код инициализации генерируется для импортированных компонентов одновременно, и соответствующую ссылку на документацию можно включить в комментарии к коду.
Что еще можно оптимизировать
- Он должен быть простым в использовании: СсылкаSpring Initializrа такжеАли Стартериспользовать метод, прямо поставьте галочку в интерфейсе
- Гибкость: динамическое добавление и изменение некоторой информации, относящейся к компонентам, например обновлений версии, должно быть настраиваемым. Эта часть связанного контента может поддерживаться администратором
- Дружеское напоминание: при отображении компонента должно отображаться ответственное лицо и ссылка на документ, соответствующий компоненту, чтобы пользователь мог легко понять компонент.
- Пример кода: при создании приложения на основе скаффолдинга соответствующий пример кода может быть сгенерирован в соответствии с компонентами, выбранными пользователем. Но эта часть должна быть необязательной, новички могут быть знакомы с примером кода, а вот старым одноклассникам он может показаться ненужным
- Динамические шаблоны. Разным бизнес-группам может потребоваться генерировать разные коды шаблонов. Как сказать? Иерархическая структура приложения в основном одинакова в компании, но соответствующие шаблоны, которые необходимо сгенерировать для разных бизнес-команд, могут быть разными, и если шаблон не сгенерирован, это принесет много повторяющейся работы. Эта часть также нуждается в поддержке
- Интеграция: Чтобы создать новое приложение в компании, оно должно быть зарегистрировано в соответствующей системе. Его можно подключить к этой системе регистрации. Если приложение успешно зарегистрировано, оно сразу перейдет к соответствующему интерфейсу приложения для создания лесов. создание успешно, он будет напрямую инициализировать gitlab этой части файла.
Как добиться
- начать ссылатьсяSpring InitializrРеализация немного сложная и недостаточно гибкая, поэтому я все же реализовал ее на основе freemarker. У реализации на основе freemarker есть преимущество: она гибкая, а играбельность более экономичная, например, когда я создаю приложение, я хочу добавить соответствующего создателя в комментарии к коду. Это должно быть относительно распространенным запросом, верно? Когда скаффолд подключен к SOS, можно получить текущую информацию о создателе приложения.Когда пользователь создает приложение, мы можем сохранить соответствующую информацию о пользователе в контексте и прозрачно передать ее в freemarker. Точно так же на основе этой функции мы можем определить некоторые другие переменные, и играбельность относительно высока.
- Приложение -> Модуль -> Зависимость: трехуровневая структура. Зависимости — это конкретные зависимости в нашем приложении; модули — это общие: такие как уровень WEB, уровень SERVER, уровень CORE и т. д.; приложение соответствует одному или нескольким модулям, представляющим структуру приложения. Основываясь на этом, мы можем определить некоторые общие приложения, такие как: простые приложения, сложные приложения, специфичные для тестов и так далее. Таким образом, когда пользователи создают приложение, они могут быстро выбрать модуль для создания приложения в соответствии со сложностью бизнеса. Приложения, модули и зависимости настраиваются, на основе чего мы можем быстро создать новый шаблон приложения.
- Файл шаблона: настраиваемый. Соответствующий файл шаблона можно загрузить через консоль, кроме того, каждый файл шаблона должен иметь соответствующую область действия: действителен для всех областей действия, либо для определенного типа приложения, либо для модуля, либо для зависимости
- Проблема зависимости: эталонная проблема между зависимостями, некоторые зависимости могут нуждаться в введении некоторых других зависимостей в дополнение к себе; модуль также может рассматриваться как зависимость другого модуля, и эти проблемы должны быть решены