|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Всем привет! Предыстория. На днях, ректрутер одной компании задал мне вопрос на тему работал ли я с "Intellij plugin platform" и "Eclipse RCP". Сначала даже не понял вопроса и ответил что нет. И естественно решил загуглить что же это, скажу честно, ответ (правильные статьи) мне не сразу пришел. Итого - разработка десктоп приложений. Да, было время давно, я попробовал что такое Swing, помню как он меня ужаснул своим позиционированием компонентов, и больше к нему не возвращался. Теперь же понял что надо таки подтянуть скилы по нему и написать приложение. Продолжение предыстории. Было решено создать десктопное приложение, и прикрутить его к своему "пэт-проекту" на maven (назовем его "вэб-проект"). Это вэб-проект на spring-boot с кучей дополнительно используемых технологий и естественно с полноценным REST интерфейсом с авторизацией. И эта идея мне нравится все больше - сначала это должен был быть тупо Swing с 5-7 формами, круды и вьюшки. Но затем пришли более интересные мысли - реализовать нормальный MVC c использованием Spring (больше для красоты), слой репозитория сделать зависимым от того как юзер захочет работать - или через REST интерфейс, или напрямую с БД (тут пригодится существующая реализация, из самого вэб-проекта). Мысли о реализации. Так как идея создания десктоп приложения родилась достаточно быстро, то и реализовать пробу хотелось скорей. В вэб-проекте создал пакет desctop и накидал туда пробы (только swing). Да, все красиво работает - на рест интерфейс посылает запросы, получает json-ответы, затем их разбирает на TransferObject'ты и использует еще несколько (пока несколько) классов-сущностей (всего их около 10). Далее возник резонный вопрос - ведь десктопное приложение это отдельный проект по сути, ему нужен свой jar-ник. Т.е. его надо отделить от основного (вэб-проекта). Разделение (ранее многомодульностью не занимался, тут все проделывалось впервые) Проба 1. Создаю родительский maven-проект, в нем создаю детей: web и desktop. Родитель остается чистым (про pom.xml), а детей соответственно раскидываю по их направлениям. Получает так, что desktop имеет зависимость на web, со всеми его зависимостями. На этом этапе мне что-то не понравилось. Проба 2. Возвращаюсь в начало. В вэб-проекте создаю child "desktop", в него переношу десктопную часть. И узнаю, что собрать проект "desktop" я не могу, потому что родительский пакет должен быть "pom", а не "war". Мысль последняя (не испробованная, и есть сомнения). Сделать как "Проба 1", и из ребенка "web" вынести в родителя классы, общие для web и для desktop. Тогда дети останутся "при своих". Вопросы: 1) правильная ли последняя мысль? 2) допустил ли ошибки в пробах 1 и 2 (если их видно из описанного)? 3) прошу советов - как такое реализовывается в энтерпрайзе? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 01:42 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Imperous, концепция "у некоторых модулей проекта есть общая часть, поэтому ее нужно вынести в отдельный модуль" правильная, но предпосылка должна быть несколько другой, а именно "смогу ли я в будущем некоторую часть проекта переиспользовать?", тогда придет понимание, что модули могут быть примерно такие: - модель - DTO - API сервисов - реализация сервисов - web - толстый клиент ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 04:19 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Imperous, Зачем два вопроса рассматривать в одном? Eclipse и банальное использование библиотек jar в обоих проектах. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 12:17 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Petro123Imperous, Зачем два вопроса рассматривать в одном? Eclipse и банальное использование библиотек jar в обоих проектах. Нет, эклипс это часть предыстории, к вопросу не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 19:41 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Андрей ПанфиловImperous, концепция "у некоторых модулей проекта есть общая часть, поэтому ее нужно вынести в отдельный модуль" правильная, но предпосылка должна быть несколько другой, а именно "смогу ли я в будущем некоторую часть проекта переиспользовать?", тогда придет понимание, что модули могут быть примерно такие: - модель - DTO - API сервисов - реализация сервисов - web - толстый клиент не согласен модули предлагаю такие: - common (в нем модель, DTO, API сервисов/интерфейсы) - core (реализация service, repository, configs, converts dto) - web - толстый клиент ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 20:11 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
А объясните пожалуйста что вы подразумеваете под "толстый клиент", я вроде понимаю, но боюсь что не верно. Толстый клиент тянет все зависимости (модули) и реализует весь функционал? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 21:27 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ImperousPetro123Imperous, Зачем два вопроса рассматривать в одном? Eclipse и банальное использование библиотек jar в обоих проектах. Нет, эклипс это часть предыстории, к вопросу не относится.ну, я же написал. Тогда весь вопрос сводится к вопросу как один jar использовать в двух проектах? Мелковато). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 22:16 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Imperous, Толстый клиент это БЛ на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 22:18 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Герой дняне согласен модули предлагаю такие: - common (в нем модель, DTO, API сервисов/интерфейсы) - core (реализация service, repository, configs, converts dto) - web - толстый клиенттут уже каждый делает как хочет, однако: - то что DTO является частью API - факт, однако DTO предполагает наличие только POJO и не должно иметь каких-либо зависимостей, поэтому вынесение в отдельный модуль позволит избежать косяков в будущем - модель априори существует сама по себе и ее можно использовать не только в основном приложении, но и во всяких интеграциях, загрузчиках данных и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 01:16 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Petro123Imperous, Толстый клиент это БЛ на клиенте. эммм, что такое БЛ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 18:55 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Imperous, Бизнес логика (в веб контролеры) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 19:11 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Imperous, Тут вопрос хотите монорепозитарий, или нет. Например я делаю так: Создается POM-проект, который будет содержать все модули. Далее в нем создаются модули для конкретных приложений. REST-API, Web-client и т.д. Но никто не мешает делать и по другому. Т.е. не делать модулями одного проекта, а делать отдельные проекты. Это зависит не столько от проекта, сколько как вы будете управлять проектом/проектами. Точнее как вы будете это хранить в системе контроля версий. И как вы будете работать со своим мавен-репозитарием. Так что ответ будет зависеть только от вас. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 08:58 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Автор нафигачил много букв, а потом ударился в молчанку. Диалога не будет. Конструктива тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 09:41 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Petro123Автор нафигачил много букв, а потом ударился в молчанку. Диалога не будет. Конструктива тоже. Ничего подобного. Читаю, смотрю, принимаю к сведению. От себя могу добавить, что ни мой вариант, ни предложенные, мне не очень нравятся, как рана, которая заживает и чешется (вроде все как и должно быть, но чешется). Вероятно оно конечно так и делается в жизни, но получается слишком сильная расчлененка... Хочется сделать это более изящным путем. Вот вспомнилась фраза: Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего убрать. — Антуан де Сент-Экзюпери Т.е. нафигачить лишнего совершенно не хочется, но при этом и делить, по сути то что никак более использоваться не будет, как-то нет желания. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 10:03 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Приложение, со времени создания топика, находится на паузе. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 10:06 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Imperous, а что значит: Imperous слой репозитория сделать зависимым от того как юзер захочет работать - или через REST интерфейс, или напрямую с БД (тут пригодится существующая реализация, из самого вэб-проекта). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 10:19 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ImperousНичего подобного. Читаю, смотрю, принимаю к сведению.это я и заметил. Если пациент у врача молчит на симптомы, то вероятность диагноза стремится к нулю. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 10:43 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ОзверинImperous, а что значит: Imperous слой репозитория сделать зависимым от того как юзер захочет работать - или через REST интерфейс, или напрямую с БД (тут пригодится существующая реализация, из самого вэб-проекта). Можно например спрашивать юзера, как приложение будет взаимодействовать с базой. И варианты - через web или напрямую с БД. Не заморачивайся, это к вопросу не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 15:02 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ImperousНе заморачивайся, это к вопросу не относится.тут есть в топике конкретный вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 15:13 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ImperousОзверинImperous, а что значит: пропущено... Можно например спрашивать юзера, как приложение будет взаимодействовать с базой. И варианты - через web или напрямую с БД. Не заморачивайся, это к вопросу не относится. это довольно сильно относится к вопросу, т.к. если слой доступа к данным будет общим для клиента на свинге и на веб сервиса, то и выносить его надо в отдельный jar`ник со всеми моделями, пропертями к базе и так далее, если же нет - то и не надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 15:26 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Озверин, +1 Притом, обычно каа раз разный функционал веб и десктоп. Поэтому общего у них будет мало. Поэтом сабж и топик не имеют смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 15:40 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
Petro123ImperousНе заморачивайся, это к вопросу не относится.тут есть в топике конкретный вопрос? Да, в самом первом посте, внизу. авторВопросы: 1) правильная ли последняя мысль? 2) допустил ли ошибки в пробах 1 и 2 (если их видно из описанного)? 3) прошу советов - как такое реализовывается в энтерпрайзе? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 16:57 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ОзверинImperousпропущено... Можно например спрашивать юзера, как приложение будет взаимодействовать с базой. И варианты - через web или напрямую с БД. Не заморачивайся, это к вопросу не относится. это довольно сильно относится к вопросу, т.к. если слой доступа к данным будет общим для клиента на свинге и на веб сервиса, то и выносить его надо в отдельный jar`ник со всеми моделями, пропертями к базе и так далее, если же нет - то и не надо... согласен, но это второстепенно. на первом этапе сущности и ТО. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 16:59 |
|
Реализация структура maven проектов. (буквы)
|
|||
---|---|---|---|
#18+
ImperousPetro123пропущено... тут есть в топике конкретный вопрос? Да, в самом первом посте, внизу. авторВопросы: 1) правильная ли последняя мысль? 2) допустил ли ошибки в пробах 1 и 2 (если их видно из описанного)? 3) прошу советов - как такое реализовывается в энтерпрайзе? На первый вопрос, ответ - нет. Тогда остальные не имеют значения. Сущности не имеет смысла выделять в либы, dll и jar. Там только маппинг и больше ничего нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 17:11 |
|
|
start [/forum/topic.php?fid=59&msg=39791131&tid=2121404]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 170ms |
0 / 0 |