|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
chpasha mayton Он - реализует SingleResp? у него нет реализации, только контракт. его имплементация может как соблюдать так и нарушать хотя с другой стороны, наличие кучи методов с интересными названиями может уже и в интерфейсе намекать о нарушении Хорошо. Тогда я предложу такое определение. Классы, реализующие функциональные интерфейсы (ФИ) обладают SingleResp в рамках методов ФИ. Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:45 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp но не обосновал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:02 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хорошо. Тогда я предложу такое определение. Классы, реализующие функциональные интерфейсы (ФИ) обладают SingleResp в рамках методов ФИ. Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>. х.з., ну наверное :) , скажем так, в их контракте ничто не предвещает. впрочем как и в предыдущем примере ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Basil A. Sidorov PetroNotC Sharp но не обосновал. Как и было. Кодировщик делает строго по ТЗ. Программист каждую строчку думает как лучше - художник. Есть как первые так и вторые всегда и везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Давайте вот посмотрим на этот интерфейс. Код: java 1. 2. 3. 4. 5.
Он - реализует SingleResp? Интерфейс ничего не реализует :) Но интерфейс следует по контракту SoR, так как выполняет только одну задачу: конвертирует экземпляр одного типа в другой тип (или тот же, в контракте не декларируется). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:27 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Видишь ли в чем дело тут.... Модульный тест просто показывает наличие какого-то то свойства у модуля. Мне кажется что НЕДОСТАТОЧНО будет показать просто тесты. Тут нужно наверное зайти со стороны базового интерфейса например. А тогда зачем тесты? Юнит-тесты тестируют реализацию (юнита). Интерфейсы же позволяют протестировать конкретную реализацию изолировано от зависимостей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:29 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, Говори - простт классы. Зачем добавка про интерфейсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:32 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Вот как прекрасно. Тоесть если мы слегка поднажмём на контракт - то получим в правой руке искомое. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост. Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо. Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил! Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити. Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:50 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост. Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо. Был вопрос про метрику оценки, я сказал пример такой метрики: тесты. Однако юнит-тесты пишутся не для этой метрики, это просто дополнительный бонус. mayton Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил! Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити. Это принцип, нарушение которого приводит к увеличению сложности и другим неприятным эффектам. Вывели эти принципы эмпирическим путём. В общем-то любые методики, методологии и практики были выведены для того, чтобы не наступать на грабли, которые отбили лоб не одной тысяче людей. mayton Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов. Речь не в количестве методов. А об программной ответственности. Не так сложно понять, решает ли класс одну конкретную задачу, или несколько слабо связанных задач. Следование этому принципу порождает увеличение количество классов. Что иногда приводит некоторых людей в ужас. Дескать, зачем же плодить классы, когда можно было всё запихать в один. Полагаю на заре дисциплины, декомпозиция программы на процедуры могла вызывать такой же батхёрд у мамонтов программирования с их километровыми листингами, напичканными GOTO ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:08 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, Ну и самое главное. Как же применять SOLID на практике? Кого не спросишь: — ну... знаю, что-то слышал, что-то читал, готов раскрыть значение каждой буквы — ну... да, применяю... там... Да-да, написав каждую строчку кода сижу и задумываюсь, а соответствует ли он солиду, солидный ли мой код? ))) Но ответ лежит на поверхности, особенно для людей, работающих в команде с применением код ревью. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:10 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Ну просто не всегда удаётся следовать такому себе философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё. Как в той притче где двое смотрели на луну и каждый из них пальцем указывал в свою сторону. Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие. В то что было написано и то что имелось в виду. И это мы еще только первую букву (S) разбирали. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 20:24 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, что, даже при реализации такого шаблона как репозиторий не получается следовать приниципу единственности ответственности? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 20:40 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Просто SOLID я упомянул в контексте реализации репозитория, а дискуссию развили так, что типа SOLID - это философский идеал. И типа напрашивается вывод, что даже пресловутый репозиторий фиг напишешь по этим принципам ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 20:45 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Звучит как признание в нарушениях ПДД ) mayton Ну просто не всегда удаётся следовать такому себе философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё. SOLID лежит сугубо в практической и только практической плоскости. Ничем философским тут не пахнет и в помине :) Насчёт того, что видят каждый своё, ну а как в таких условиях вы собираетесь вести командную работу в принципе? Типа два художника каждый со своим больным воображением пришли рисовать единую картину? mayton Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие. В то что было написано и то что имелось в виду. Популярные проекты на гитхабе зачастую отличаются очень высоким качествам. mayton И это мы еще только первую букву (S) разбирали. Ну так вот и хотелось бы разобраться, какие у вас есть с ней проблемы. Вполне уместно рассмотреть на примере репозитория, о чём говорит skyANA. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 21:44 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, В java в отличии от шарпа есть JPA. И поэтому пример от skyANA мимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 07:42 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp В java в отличии от шарпа есть JPA. Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :) В .NET это Entity SQL. Ну и при большой любви к хиберу можно подключить NHibernate и писать HQL ) Не исключаю, что стырили идею как раз из JPA. Но какой смысл писать объектные запросы, если нет информации о типах, как в LINQ? Ни тебе статической проверки на этапе компиляции, ни интеллисенса (хотя может идея как-то умеет, не исключаю). Фишка LINQ, что написанный запрос может как транслироваться в БД, так и оперировать самыми обычными коллекциями объектов в памяти. Универсально. Если уж писать запросы в строках, то имеет смысл писать из БД, а не к промежуточной нашлёпке. PetroNotC Sharp И поэтому пример от skyANA мимо. Т.е. если у тебя есть JPA, тебе не нужен репозиторий? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 14:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt PetroNotC Sharp В java в отличии от шарпа есть JPA. Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :) Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас появятся корректировки и дополнения к твоей фразе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 14:33 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас появятся корректировки и дополнения к твоей фразе. А что не верно в формулировке? JPA это спецификация, при чём языка JPQL основан на HQL. Hiber реализует JPA. Скорректируешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 15:09 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 15:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался. Ясно ) Ну нашлёпка же, над хибером. При чём если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 17:36 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt языка JPQL основан на HQL - одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный hVostt если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе. - значит, при наличии планов смены ORM, надо следовать спецификации JPA ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 21:56 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
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.06.2020, 23:46 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov - значит, при наличии планов смены ORM, надо следовать спецификации JPA Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы. Это так, небольшой наброс ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 23:48 |
|
|
start [/forum/topic.php?fid=59&msg=39972546&tid=2120761]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 493ms |
0 / 0 |