|
|
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
В принципе, я и так разберусь в проекте, но хотелось бы, чтобы человек с улицы пришел, сел и за пару часов вкурил :)) Что использую: Maven, Hibernate, Spring MVC, БД (PostgreSQL хотя не суть). Задумался над структурой, если у меня сейчас такое количество пакетов и папок, то что будет, когда их будет хотя бы 30, не говоря уже о 100. Это же будет огромные количества однотипных папок, с однотипными файлами и т.д. Хотя по структуре вроде как все логично. Нужны будут REST-запросы, это 100%, и маппинг таблиц в бд из Entity-файлов, ну и остальные плюшки Hiber'а. Может что-то с чем-то объединить? Или какой другой подход использовать? Прикладываю скриншоты и код ниже. .models.security.User.java Обычный Entity-файл Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. .models.security.UserDao.java Интерфейс Код: java 1. 2. 3. 4. 5. 6. 7. .dao.security.UserDaoImpl.java имплементация интерфейса Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. .dao.security.UserProvider.java Код: java 1. 2. 3. 4. 5. UserController Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:41 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
развернули основные папки... :) Здесь нельзя сразу несколько скринов прикрепить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:42 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
И еще один, последний... поставил черточки маркером, чтобы визуально было проще разделить эту пачку папок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:42 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
да твоюж! имя пакета всё-таки спалил))) В общем, хотел бы получить критику по самую не балуйся, а так же советы, кто как подобные проекты пишет так, чтобы было потом не больно в них разбираться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:44 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Устал уже повторять. Пакеты нужно организовывать по фичам приложения, а не по слоям. https://www.google.com/search?q=package by feature not layer Если у вас появляется однотипный код, его нужно рефакторить и инкапсулировать общую функциональность, чтобы когда её придётся править, её не пришлось бы править везде. lombok - убираем все свойства и toString() из сущностей. С hashCode(), кстати в ORM не тривиально. Если у вас сущности не сохранены ещё, то у них у всех hashCode 0. Может боком вылезти. UserDaoImpl не нужен. Нужен Spring Data. DAO не нужен. Нужен Repository. Это разные паттерны. Что за UserProvider без бутылки не разобраться. Не хватает в имени класса ключевого слова из модели предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:48 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Пакеты controllers, dao и models не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Называние UserProvider - ни о чем. Возможно имеется в виду Transaction Script, который инкапсулирует workflow модели предметной области? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:53 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNixic, Называние UserProvider - ни о чем. Возможно имеется в виду Transaction Script, который инкапсулирует workflow модели предметной области? нет, нет, там будут методы аля: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Только без ResultSet'а, будет, а Hibernate'овскими запросами, я пока не готов сходу написать пример, но суть такая, что именно в этом классе будет вытаскивание данных из бд в Листы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:29 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczUserDaoImpl не нужен. Нужен Spring Data. Неоднозначно. Проект на скрине это без спринга на хиберAPI. Тогда пусть топик и проект выкинет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:31 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это DAO. NixicТолько без ResultSet'а, будет, а Hibernate'овскими запросами, я пока не готов сходу написать пример, но суть такая, что именно в этом классе будет вытаскивание данных из бд в Листы. Для CRUD отдельного слоя не нужно. Для сложных запросов - Repository. Смотри Spring Data. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:31 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNixic, Называние UserProvider - ни о чем. Возможно имеется в виду Transaction Script, который инкапсулирует workflow модели предметной области? Почитал паттерн, да, именно это и имелось ввиду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:32 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Чет я не понял. Если хиберAPI то будет маппинг и session.saveORUpdare Или ,springData? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:36 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic Код: java 1. 2. 3. Это вообще за гранью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:39 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123Nixic, Чет я не понял. Если хиберAPI то будет маппинг и session.saveORUpdare Или ,springData? По идее, я хотел бы создавать свои сущности, не заботиться при этом о БД, и вообще поменьше в нее заходить по ходу разработки. Но в дальнейшем, возможно, эта необходимость отпадет и поля с таблицами будут добавляться в БД руками. Вообще, я так понимаю, нужно смотреть в сторону Spring Data, уже открыл пару ссылок :) А что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:40 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczУстал уже повторять. Пакеты нужно организовывать по фичам приложения, а не по слоям. https://www.google.com/search?q=package by feature not layer Спасибо, это мы уже пару тройку лет назад обсуждали, да!)) но повторение мать сами знаете, кого )) Спасибо, перекидаю согласно бизнес-логики. Blazkowiczlombok - убираем все свойства и toString() из сущностей. Да, я его как-то пробовал, мне понравилось, хотя некоторых раздражает то, что кода не видно) BlazkowiczС hashCode(), кстати в ORM не тривиально. Если у вас сущности не сохранены ещё, то у них у всех hashCode 0. Может боком вылезти. Понял, пример создан на основе темплейта из Нетбинса, там он именно так генерится. BlazkowiczUserDaoImpl не нужен. Нужен Spring Data. DAO не нужен. Нужен Repository. Это разные паттерны. Уже читаю, спасибо. Кстати, это у меня не коммерческий проект, хоть там и сущности аля Контрагент, пакеты Отдела продаж, Снабжения, а попытка в свободное от работы на работе время, переписать основу старого своего проекта, где по возможности нужно использовать наиболее популярные технологии, приемы, паттерны и т.д. Ну а дальше уже перейти к клиентской части и там использовать что-то из современных JS фреймворков/библиотек, React JS в частности, хочу в нем использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:48 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123Nixic Код: java 1. 2. 3. Это вообще за гранью. Да я не дописал)) и вообще не буду этим пользоваться) Написано же) Ладно хоть точки с запятой поставил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicА что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое?да. Выбирай. Золотой пули нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:52 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123Nixic Код: java 1. 2. 3. Это вообще за гранью. А кстати, что тут такого? Берем создаем юзера, из резултСета тянем имя, сеттим ему имя, потом тут же надо было дописать, кладем его в лист. потом этот лист возвращаем и используем, вроде как обычно... нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:52 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, В цикле это jdbc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:54 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicА что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое? Вы кажется недочитали про Spring Data. Это удобная обертка над JPA, чтобы избавится от всякого повторяющегося однотипного кода, о котором вы спрашиваете. А JPA, соответсвенно API, например, к Hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:56 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Где то тема была, обсуждали предпочтения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:58 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Это да, еще не прочитал совсем ничего почти :) Пойду читать про Spring Data, раскидывать пакеты/классы по слоям по БЛ, подключать lombok... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:59 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Спринге больше магии. Нравится, делай. Если нет, то хиберApi. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 17:08 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicЭто да, еще не прочитал совсем ничего почти :) Пойду читать про Spring Data, раскидывать пакеты/классы по слоям по БЛ, подключать lombok... :) Заодно про реализацию HATEOS в Spring... Чтобы REST-контроллеры не писать :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 05:50 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39587182&tid=2122251]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 274ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...