Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8   вперед  Ctrl      все
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5383
mayton,
Говори - простт классы. Зачем добавка про интерфейсы?
23 июн 20, 16:32    [22156137]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Вот как прекрасно. Тоесть если мы слегка поднажмём на контракт - то получим в правой руке искомое.
23 июн 20, 16:34    [22156139]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс
Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост.
Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо.
Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил!
Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити.

Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов.
23 июн 20, 16:50    [22156150]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс
Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост.
Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо.


Был вопрос про метрику оценки, я сказал пример такой метрики: тесты.
Однако юнит-тесты пишутся не для этой метрики, это просто дополнительный бонус.

mayton
Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил!
Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити.


Это принцип, нарушение которого приводит к увеличению сложности и другим неприятным эффектам. Вывели эти принципы эмпирическим путём. В общем-то любые методики, методологии и практики были выведены для того, чтобы не наступать на грабли, которые отбили лоб не одной тысяче людей.

mayton
Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов.


Речь не в количестве методов. А об программной ответственности. Не так сложно понять, решает ли класс одну конкретную задачу, или несколько слабо связанных задач.

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

Полагаю на заре дисциплины, декомпозиция программы на процедуры могла вызывать такой же батхёрд у мамонтов программирования с их километровыми листингами, напичканными GOTO
23 июн 20, 17:08    [22156156]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton,

Ну и самое главное. Как же применять SOLID на практике?
Кого не спросишь:

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

Да-да, написав каждую строчку кода сижу и задумываюсь, а соответствует ли он солиду, солидный ли мой код? )))

Но ответ лежит на поверхности, особенно для людей, работающих в команде с применением код ревью.
23 июн 20, 17:10    [22156157]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Ну просто не всегда удаётся следовать такому себе
философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё.

Как в той притче где двое смотрели на луну и каждый из них пальцем указывал в свою сторону.

Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем
к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие.
В то что было написано и то что имелось в виду.

И это мы еще только первую букву (S) разбирали.
23 июн 20, 20:24    [22156245]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
mayton,

что, даже при реализации такого шаблона как репозиторий не получается следовать приниципу единственности ответственности?
23 июн 20, 20:40    [22156250]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Просто SOLID я упомянул в контексте реализации репозитория, а дискуссию развили так, что типа SOLID - это философский идеал.
И типа напрашивается вывод, что даже пресловутый репозиторий фиг напишешь по этим принципам
23 июн 20, 20:45    [22156252]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю.


Звучит как признание в нарушениях ПДД )

mayton
Ну просто не всегда удаётся следовать такому себе философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё.


SOLID лежит сугубо в практической и только практической плоскости.
Ничем философским тут не пахнет и в помине :)

Насчёт того, что видят каждый своё, ну а как в таких условиях вы собираетесь вести командную работу в принципе? Типа два художника каждый со своим больным воображением пришли рисовать единую картину?

mayton
Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем
к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие.
В то что было написано и то что имелось в виду.


Популярные проекты на гитхабе зачастую отличаются очень высоким качествам.

mayton
И это мы еще только первую букву (S) разбирали.


Ну так вот и хотелось бы разобраться, какие у вас есть с ней проблемы.

Вполне уместно рассмотреть на примере репозитория, о чём говорит skyANA.
23 июн 20, 21:44    [22156282]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5383
hVostt,
В java в отличии от шарпа есть JPA.
И поэтому пример от skyANA мимо.
24 июн 20, 07:42    [22156404]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
PetroNotC Sharp
В java в отличии от шарпа есть JPA.


Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :)

В .NET это Entity SQL. Ну и при большой любви к хиберу можно подключить NHibernate и писать HQL )
Не исключаю, что стырили идею как раз из JPA.

Но какой смысл писать объектные запросы, если нет информации о типах, как в LINQ? Ни тебе статической проверки на этапе компиляции, ни интеллисенса (хотя может идея как-то умеет, не исключаю).

Фишка LINQ, что написанный запрос может как транслироваться в БД, так и оперировать самыми обычными коллекциями объектов в памяти. Универсально.

Если уж писать запросы в строках, то имеет смысл писать из БД, а не к промежуточной нашлёпке.



PetroNotC Sharp
И поэтому пример от skyANA мимо.


Т.е. если у тебя есть JPA, тебе не нужен репозиторий? )))
24 июн 20, 14:26    [22156554]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
PetroNotC Sharp
В java в отличии от шарпа есть JPA.

Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :)

Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас
появятся корректировки и дополнения к твоей фразе.
24 июн 20, 14:33    [22156560]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас
появятся корректировки и дополнения к твоей фразе.


А что не верно в формулировке? JPA это спецификация, при чём языка JPQL основан на HQL. Hiber реализует JPA.

Скорректируешь?
24 июн 20, 15:09    [22156586]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался.
24 июн 20, 15:34    [22156608]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался.


Ясно ) Ну нашлёпка же, над хибером. При чём если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе.
24 июн 20, 17:36    [22156671]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
языка JPQL основан на HQL

- одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный

hVostt
если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе.

- значит, при наличии планов смены ORM, надо следовать спецификации JPA
24 июн 20, 21:56    [22156819]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Kachalov
- одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный


Почему же тёмный?

https://en.wikipedia.org/wiki/Java_Persistence_Query_Language

JPQL is based on the Hibernate Query Language (HQL), an earlier non-standard query language included in the Hibernate object-relational mapping library.

Hibernate and the HQL were created before the JPA specification. As of Hibernate 3 JPQL is a subset of HQL.


Опять врут и темнят? )
24 июн 20, 23:46    [22156850]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

Это так, небольшой наброс )
24 июн 20, 23:48    [22156852]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5383
hVostt,

>Т.е. если у тебя есть JPA, тебе не нужен репозиторий? )))
Он и в шарпе не нужен. Он уже написан в EF. Это skyANA носится с ним по всем веткам.
25 июн 20, 07:53    [22156912]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5383
hVostt
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

Это так, небольшой наброс )

Менять не будут. Просто их все построили и причесали под одну гребёнку))))) Под один интерфейс.
Имхо более половины проектов на JPA
25 июн 20, 07:56    [22156913]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

- проекты разные бывают. Есть проекты где изначально закладывается мультибазовость, т е возможность работы с разными базами у разных заказчиков. А что касается смены ORM, тоже бывает - когда неожиданно оказывается что нужная фича не поддерживается текущей ORM или усилия по вкрячиванию нужной ORM (тип и версия) в сервер приложений слишком велики.

hVostt
Kachalov
- одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный


Почему же тёмный?

https://en.wikipedia.org/wiki/Java_Persistence_Query_Language

JPQL is based on the Hibernate Query Language (HQL), an earlier non-standard query language included in the Hibernate object-relational mapping library.

Hibernate and the HQL were created before the JPA specification. As of Hibernate 3 JPQL is a subset of HQL.


Опять врут и темнят? )

- нет, просто не обладают всей полнотой информации) Википедию пишут обычные люди, не всегда обладающие нужными экспертными знаниями. Скажите честно, до того как я написал абревиатуру JDOQL Вы про нее знали или вспоминали (это я не для того чтобы обидеть, а для примера)? Уверен что ни автор статьи, ни его читатели не участвовали в создании спецификации JPA и разработке Hibernate, именно по этому история темная. Или к примеру тот же Hibernate - ведь наверняка уверены, что до него ничего не было? В то время как TopLink был портирован на Java в 1998 со Smalltalk. Или также появившийся в начале 2000х Apache Cayenne. И т д. Идеи и настроения витали в воздухе, поэтому лично я утверждать что спецификацию JPA сделали именно на основе Hibernate не стал бы. Ниже интересная цитата из книги "Persistence in the Enterprise: A Guide to Persistence Technologies":

К сообщению приложен файл. Размер - 62Kb
25 июн 20, 10:23    [22157001]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

Это так, небольшой наброс )

Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.
25 июн 20, 10:30    [22157013]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет)
25 июн 20, 10:54    [22157035]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Kachalov
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет)

Тоесть говорим ORM - подразумеваем Хибернейт.

Это как говорим Ксерокс - подразумеваем некий *Noname* копировальный аппарат.

Сообщение было отредактировано: 25 июн 20, 11:07
25 июн 20, 11:09    [22157059]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
mayton
Тоесть говорим ORM - подразумеваем Хибернейт.

- я бы сформулировал иначе) Говорим ORM, подразумеваем JPA (хотя есть крупные EE проекты где работают без JPA - например Diasoft в некоторых своих широко внедренных проектах использует Apache Cayenne или Google App Engine, где применяют JDO, есть и проекты на iBATIS).
25 июн 20, 11:25    [22157082]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8   вперед  Ctrl      все
Все форумы / Java Ответить