
Dim
22.02.2017
03:58:08
Народ, вопрос концептуального характера. Вот есть у нас в Java пакеты. Как вы организуете проект? Можно пологаться на какое-нибудь DDD, но тогда проект будет выглядеть как что-то слишком абстрактное. Очень часто вижу организацию именно в таком стиле: domain, controllers, инфраструктура итд. Но ведь это все отвязано от реальных кейсов, от структуры предметной области. Приходиться прыгать из пакета в пакет, ведь часто модель имеет отношение к конкретному сервису, а они лежат в разных пакетах. Кто-то группирует классы по семантической структуре проекта и я считаю это более верным решением, нежели придерживаться паттерномании и методологии разработки ПО (ибо тогда слишком силен на этом акцент). А как делаете вы?

whalemare
22.02.2017
04:49:03
Разбитие по кейсам не тру, когда у тебя кейсов овер 30 начинается

Dim
22.02.2017
04:58:08
Вот у меня как раз не маленький проект и уже начинает доставать это прыганье по слоям.
Хочеться и слои сохранить и не потерять смысл.

Google

Dim
22.02.2017
04:59:25
Смысл не архитектурный, а предметной области.

Igor
22.02.2017
05:28:30
в домене и бизнес слое так можно сделать
а контроллеры размазывать это уже плохо

Dim
22.02.2017
05:29:49

Victor
22.02.2017
05:30:19
Почему?
Хочется видеть все контроллеры в одном пакете?

Igor
22.02.2017
05:32:05
если одна кодовая база для десктопа и веба например, то так всегда раньше делали


Sergey
22.02.2017
05:40:22
Народ, вопрос концептуального характера. Вот есть у нас в Java пакеты. Как вы организуете проект? Можно пологаться на какое-нибудь DDD, но тогда проект будет выглядеть как что-то слишком абстрактное. Очень часто вижу организацию именно в таком стиле: domain, controllers, инфраструктура итд. Но ведь это все отвязано от реальных кейсов, от структуры предметной области. Приходиться прыгать из пакета в пакет, ведь часто модель имеет отношение к конкретному сервису, а они лежат в разных пакетах. Кто-то группирует классы по семантической структуре проекта и я считаю это более верным решением, нежели придерживаться паттерномании и методологии разработки ПО (ибо тогда слишком силен на этом акцент). А как делаете вы?
Это творческий вопрос. Цель разбивания по пакетам это порядок, чтоб ты мог быстро найти нужный модуль. Можно разбивать по слоям, Controller view domain logic... А внутри слоев по предметной области.
А то что обращаешься в другой пакет что в этом плохого?
Можно и наоборот по предметной обл а внутри по типу


Dim
22.02.2017
05:47:41
вот я и думаю, как лучше.

V
22.02.2017
06:01:00
Лучшее враг хорошего

Dim
22.02.2017
06:03:10
Вот представте приходит новый человек в команду, а вы ему: - Вот наш проект, вот код, смотри, а там model, view, controller, services. И вроде бы все понятно, а вроде и нет) потому-что ни слова о предметной области.

master_c
22.02.2017
06:04:19
/stat@combot

Combot
22.02.2017
06:04:19
combot.org/chat/-1001043090457

Google

Alex
22.02.2017
06:08:19
Предметную область

Vlad
22.02.2017
06:10:48
Для меня на больших проектах всегда было сложно раскидывать классы по пакетам. Да и если честно в итогде все равно поиском пользуешься когда нужен тот или иной класс.

sss3 ?
22.02.2017
06:17:23

Vlad
22.02.2017
06:21:31
Да, но тут помогают не пакеты а правила именования классов.
Был на проеке раз, где классы одинаково именовали но в разных пакетах были
Вот где ад был.

guga
22.02.2017
06:27:03
Ну так что, я решил забить на курсорную пагинацию, но может её кто-то таки делала на спринге?

Vlad
22.02.2017
06:29:32
А спринг то тут при чем?
Ps не делал.
Если я правильно тебя понял то тут больше вопрос к бд. И получается прийдется следить за тем чтобы курсор не протух.
Лучше вообще без пагинаций делать.

sss3 ?
22.02.2017
06:40:31

Vlad
22.02.2017
06:48:01
В большинстве случаев тебе не нужно 100500 записей.

sss3 ?
22.02.2017
06:48:19
Ну вот у тебя бложик
Как возвращать данные

Vlad
22.02.2017
06:49:03
Ну это ж тривиально.
Обычную офсетную пагинацию делаешь как все.

sss3 ?
22.02.2017
06:49:35
Так без пагинации же

Google

sss3 ?
22.02.2017
06:49:47

Vlad
22.02.2017
06:49:59
Ну тогда последние n записей выводи

sss3 ?
22.02.2017
06:50:15
А остальные можно сразу удалять

Vlad
22.02.2017
06:50:20
А остальные - в архиве.

sss3 ?
22.02.2017
06:50:23
Пользователь же их уже никогда не прочитает
Сам понимаешь что говоришь?)

Vlad
22.02.2017
06:50:38
Да :)

sss3 ?
22.02.2017
06:50:47
Дичь, да?)

Vlad
22.02.2017
06:50:48
Web.archive.org
Или как он там назывался.

S
22.02.2017
06:51:28
В Spring Data есть же пагинация

Vlad
22.02.2017
06:52:29
Ну вот в выдаче поисковика - редко кто пользуется пагинацией

Vlad
22.02.2017
06:52:42
Чаще - уточняют запрос поисковый

guga
22.02.2017
06:52:53

Vlad
22.02.2017
06:53:12
Бесконечный скрол?

guga
22.02.2017
06:53:24
Ага

Vlad
22.02.2017
06:53:39
Так там под капотом не факт что курсоры
Можно просто новый запрос делать от последней загруженой записи
И это лучше чем офсеты вероятно

guga
22.02.2017
07:12:45
да, но тоже не выход, , если есть сортировка

Google

Aliaksei
22.02.2017
07:13:21
Разбивать проект и пакеты нужно по доменам

guga
22.02.2017
07:13:39

Aliaksei
22.02.2017
07:13:41
Внутри - функциональная разбивка

guga
22.02.2017
07:13:51
хочу так
но не хочу писать руками

Aliaksei
22.02.2017
07:13:57
Каждый домен имеет апи

guga
22.02.2017
07:13:57
https://www.sitepoint.com/paginating-real-time-data-cursor-based-pagination/

Admin
ERROR: S client not available

Aliaksei
22.02.2017
07:14:13
Желательно домен оформить как модуль

guga
22.02.2017
07:15:16
хочу магию спринга, вжух, включи spring.data.cursor-based-paignation=enable
и у тебя в hateos уже все нужные линки
не хочу разбираться хочу магию

Aliaksei
22.02.2017
07:15:41
Так есть же спрингдата
Там pagination уже завезен

Ivan
22.02.2017
07:16:15
ну limit offset не перформансно тип

guga
22.02.2017
07:16:20
Ага на лимит офсет

Aliaksei
22.02.2017
07:16:58
Я для маленьких сервисов - свою пагинацию делал, это ж классик один и доп метод в репозитории

Ivan
22.02.2017
07:17:00
если 200к записей уже чувствуется

guga
22.02.2017
07:20:03

Aliaksei
22.02.2017
07:21:01
Клиент тебе будет слать запрос на следующие данные

Google

guga
22.02.2017
07:21:38
да, но нужно что-то, что показывает какие у него сейчас уже есть
что бы дать именно N следующих

Aliaksei
22.02.2017
07:23:20
Можно вообще так: первый запрос на N записей, ты возвращаешь их плюс ключ по которому клиент будет дальше тягать записи
Типа как курсор

guga
22.02.2017
07:23:34
вот это я и хочу
но из коробки

Aliaksei
22.02.2017
07:23:56
Ебна)
Тыж программист

guga
22.02.2017
07:24:18
я что зря спринг выбрал?

Aliaksei
22.02.2017
07:24:32
Тут джуны не сидят
Тут все архитекторы и скалабигдата инженеры

Vladimir
22.02.2017
07:24:57
/stat@combot

Combot
22.02.2017
07:24:58
combot.org/chat/-1001043090457

guga
22.02.2017
07:27:42

Aliaksei
22.02.2017
07:28:32
Ну зависит от базы, например elastic search сам управляет курсором

Vlad
22.02.2017
07:28:35