@oop_ru

Страница 651 из 785
Sergey
18.05.2018
09:59:54
а клиенты как-нибудь потом

Aleh
18.05.2018
10:00:02
о.о

Sergey
18.05.2018
10:00:21
да да, знаю, Юра не разрешит мои безумства

потому я не буду спрашивать)

Google
Sergey
18.05.2018
10:01:16
о.о
не, просто http адаптер к graphql для совместимости

Aleh
18.05.2018
10:01:29
ладно, посмотрим)

Sergey
18.05.2018
10:02:27
oO
есть еще от vimeo штука для документирования API неплохая, можешь глянуть

Valentin
18.05.2018
10:07:20
Это https://github.com/vimeo/mill ?

Sergey
18.05.2018
10:11:56
Это https://github.com/vimeo/mill ?
да, прикольная штука

Charles
18.05.2018
15:41:34
ребят, как быть в случае если неидентифицирующая связь между родителем и потомком является таковой только покуда не закончатся все сссылки из родительской таблицы на дочернюю? Поясню - есть таблица юзеров, есть таблица пассажиров и связка (n:n). Соответственно например сын может иметь отношение как к матери так и к отцу (дополнительно к бабушке, дедушке, сестре, неважно). В юзерах - учетки, в пассажирах - данные для подстановки в ЛК этих учеток. Как только мы удаляем все записи юзверей связанные например с данными о сыне-массажире, нужно удалить запись сына-пассажира тоже потому что в этом случае никто из юзверей на него не ссылается (допустим что надо удалять потому что перс данные все дела)

Причем это еще и в рамках (в том числе) use case'а когда мы заводим отдельно учетку сына, он вбивает данные о себе как о пассажире и надо как-то это все безобразие провязать (т.е. ему должна вскакивать модалка что типа "здоров, чувак, мы нашли твоих родителей")(и как мне кажется это совсем не секьюрно). Я чет вообще не понимаю как это нормально делать

Была мысль показывать модалку в ЛК у «мамы» когда «папа» хочет добавить данные о «сыне», и там варики - либо «мама» «разрешает» это сделать, либо «мама» подтверждает связь с «папой» и дальше можно упороться и шарить разную инфу между пользователями но это уже жесть для MVP

Вот я и думаю

Alan
18.05.2018
16:28:48
да, прикольная штука
они пока не умеют кастомные методы в контролерах надо GET POST именовать методы

в 4 сделают

Денис
20.05.2018
18:36:08
Привет. натолкните пожалуйста на мысль: Есть сущности: пациент, исследование, группа снимков, снимок. Исследование зависит от пациента (у каждого исследования есть один пациент, но не у каждого пациента есть исследование). Группа снимков является частью исследования, снимок является частью группы снимков. Обе связи один ко многим. Используется очень медленный репозиторий (http rest api) для чтения этих данных. Вопрос: каким образом можно наиболее корректно реализовать ленивую загрузку групп снимков и снимков? Чтобы данные по rest-api загружись только при фактической необходимости.



Google
Chupa
20.05.2018
18:51:34
А как можно некорректно сделать?

Денис
20.05.2018
18:51:48
такая архитектура подразумевание построение всех связанных с исследованием (Study) экземпляров Series и Instance

никак не придет в голову, как можно их строить лениво :(

АПИ очень медленное. хотелось бы создавать зависимые экземпляры по мере необходимости в них. Вот собвтсенно и весь вопрос.

Chupa
20.05.2018
18:54:13
Мне вот непонятно как сейчас дело обстоит, что все медленно.

Если только есть эндпоинты для работы с аггрегатами

Денис
20.05.2018
18:56:03
Так вот не хотелось бы делать из этого агрегат, как раз таки изза быстродействия. АПИ аппаратуры очень медленное. У нас, к примеру, экземпляр Study имеет поле, которе содержит набор экземпляров Series. В свою очередь экземпляр Series имеет поле, которое содержит наор экземпляров Instance

И, если сделать из этого агрегат, то придется инстанцировать все зависимые экземпляры при создании корня агрегата Study

а это будет очень медленно. Снимков могут быть сотни или даже тысячи. Хотелось бы инстанцировать конкретный снимок только тогда, когда в нем появляется необходимость

снимок = Instance на диаграмме

Chupa
20.05.2018
18:59:03
Я не особо много работал с такими делами, но из того что было - сущности отдавались без связей. У каждой свой репозиторий, эндпоинты. Фронтенд делает запросы, когда ему еще что-то нужно. Аггрегаты использовались, но когда точно нужно было прям вот все все все получить сразу, и там шустрая бд для хранения использовалась

Денис
20.05.2018
19:00:07
Может быть не включать в сущности Study и Series поля, содержащие наборы "частей"?

Развернуть зависимость на противоположную. то есть чтобы Instance зависил от Series?

Мб сделать свою обвязку, и периодически аппаратуру опрашивать, и в эту обвязку данные подгружать. А там уже и кэширование прикрутить какое-никакое можно.
Периодически сложно. там десятки тысяяч исследований. когда нужно получить данные по какому-то из них - проще обратиться напрямую, чем кэшировать. Хотя, может быть кэширование - тоже довольно неплохое решение, но не прямо сйечас. Сейчас проблема именно с ленивой загрузкой зависимостей.

Roman
20.05.2018
19:03:58
Периодически сложно. там десятки тысяяч исследований. когда нужно получить данные по какому-то из них - проще обратиться напрямую, чем кэшировать. Хотя, может быть кэширование - тоже довольно неплохое решение, но не прямо сйечас. Сейчас проблема именно с ленивой загрузкой зависимостей.
Не, свой Postgres поднять, туда данные скинуть. Индексы для быстрого поиска построить. Но так как данные постоянно пополняются - то по расписанию ходить и дёргать железку за новыми данными. А стучаться уже в своё быстрое апи, которое будет свою базку юзать.

Денис
20.05.2018
19:05:37
С кэшем это вариант, конечно. Но в данной итерации пока не рассматривается. Но идея хорошая. Спасибо! Пока что подумал что действительно, незачем хранить в сущности список ее "частей".

Я просто начал думать не совсем с правильной стороны. Хотел хранить ссылки на "части" в "целом". Поэтому и возник вопрос. Но сейчас понимаю, что это невноное решение. Нужно поменять направление зависимости и хранить ссылку на "целое" внутри "части". Тогда не придется строить никаких наборов экземпляров вообще.

Mykola
21.05.2018
13:06:56
всем приветы

сложный вопрос: если у вас метод возвращает какую-то стабильную строку, например: function getCookieName() { return "unique_shit"; } то есть ли смысл эту строку засунуть в константу и возвращать константу вместо вот так просто строку?

Google
f4rt~
21.05.2018
13:10:36
по крайней мере имеет смысл :)

Bohdan
21.05.2018
13:12:27
плюсую, в константу точно пихнуть а возможно и метод убрать (но это надо смотреть)

Mykola
21.05.2018
13:14:43
а аргументы будут?

Mykola
21.05.2018
13:15:51
а если это слой вью? )))

какая разница модели или не

Артур Евгеньевич
21.05.2018
13:17:18
т.к константа может быть рили излишней, например есть ограничение - пользователь до 80 лет и если это модель из бизнес слогики, то гораздо приятнее будет читать $userAge < 80 чем $userAge < MAXIMUM_ALLOWED_USER_AGE_FOR_THIS_SITE_SECTION_ON_THIS_MONTH

да и вообще если что то часто повторяется я это уже в конфиги выношу и инджекчу

Mykola
21.05.2018
13:18:18
это правда, вообще я против констант, потому что они нарушают читаемость кода

но мне интересны аргументы другой стороны

может есть и плюсы

Артур Евгеньевич
21.05.2018
13:19:39
аргумент против может быть такой, что если нет константы, а есть хардкод, кто то может ввести константу забыв про твое использование строки и в случе дальнейшего изменения будет рассинхрон)

Max
21.05.2018
13:19:54
или там какой-то конкретный пример?

Артур Евгеньевич
21.05.2018
13:24:24
ну не заметить константу то сложнее, чем просто рандомную строчку

+ константы приятнее набирать в ide кстати

вот еще их плюс

Google
Mykola
21.05.2018
13:24:52
это смотря сколько их

Артур Евгеньевич
21.05.2018
13:24:57
меньше шансов ошибиться ну и поиск соответсвенно

Mykola
21.05.2018
13:25:23
мне приятнее набырать в ИДЕ строчку "42", чем константу "ANSWER_TO_GENERAL_QUESTION"

если хотите поржать: некоторые люди у нас делают константы типа METHOD_NAME = 'getValue'

для таких в аду есть специальное место

Alexandr
21.05.2018
13:27:46
Dmitriy
21.05.2018
13:30:59
public function METHOD_NAME($args) не легче будет?)

Mykola
21.05.2018
13:36:36
хз, я не знаю...

людям больше нравится название метода в константу засовывать, а потом что-то с ним делать

Bohdan
21.05.2018
13:43:30
ззависит от целей, канеш, но блин

Mykola
21.05.2018
13:45:39
если цель выбесить меня, то они ее достигли на 634%

Maksim
21.05.2018
13:45:44
для таких в аду есть специальное место
ровно как и для любителей вхерачить безымянную непонятную цифру посреди кода :)

Roman
21.05.2018
13:47:42
мне приятнее набырать в ИДЕ строчку "42", чем константу "ANSWER_TO_GENERAL_QUESTION"
особенно потом прекрасно потом рефакторить такой код, где в тысяче мест написано что нить в духе if(someValue != 2)

Maksim
21.05.2018
13:48:00
function incrementByOne(x) { return x + INCREMENT_BY_ONE_FACTOR; }
ну я привык к довольно ущербным доводам с твоей стороны :)

Артур Евгеньевич
21.05.2018
13:48:33
Dmitriy
21.05.2018
13:49:09
лол так можно что ли ?)))
А почему и нет? Большие буквы в имени метода не запрещены, как и подчерк

Google
Mykola
21.05.2018
13:50:05
ну я привык к довольно ущербным доводам с твоей стороны :)
мне очень важно мнение о моих доводах от такого гуру программирования, постараюсь впредь что-то мение ущербное приводить в пример

Mykola
21.05.2018
13:50:42
обязательно, спасибо сенсей

в жаве есть константы?

или там только final static?

Dmitriy
21.05.2018
13:53:34
вообще есть

классовых констант нет

Mykola
21.05.2018
13:54:49
ну тогда вот вопрос: нужны ли классовые коснтанты? или хватит final satic?

и есть ли разница?

Dmitriy
21.05.2018
13:55:25
семантика да и только

абсолютли ненужная вещь)

Aleh
21.05.2018
13:57:27
Константы норм, константы в классе только если других нет в языке

Страница 651 из 785