|
|
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
есть ли какие-то объективные оценки, сравнительная характеристика может быть, чтобы сравнить эти два подхода к конфигурированию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 22:20:52 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
redwhite90 , Критерий очень простой - готовы вы засирать свой бизнес код аннотациям сторонних библиотек, тем самым намертво к ним привязываясь, или нет. Лично я выступаю ярым противником аннотаций по двум причинам: 1) То, что я озвучил выше - код намертво привязывается к библиотекам. 2) Невозможно быстро понять, что откуда идет. Вот я смотрю, идет какой-то Autowired. А откуда он идет - хз, надо по другим классам тыкать. Вот я смотрю на аннотации Hibernate - и опять, я вижу только маленькую часть, надо тыкать по другим классам, что бы получить полную картинку. А в XML все компактно собрано в одном месте. 3) Наконец, с XML-ками гораздо удобнее тестировать. Лично для меня определяющим является второй пункт. Вообще, это очень холиварная тема, здесь сейчас будет срач с вероятностью 95%. Но общий посыл такой: ни от XML, ни от антоаций еще никто не умирал. Это не та проблема над которой нужно долго медитировать. Нравятся аннотации - используйте аннотации. Нравится XML - используйте XML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 22:37:05 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
cdtyjv, я вот например не разделяю вашей любви к xml. смотришь на xml - сразу волосы дыбом, а на аннотации - сразу всё понятно. насчёт библиотек - я не понял, что вы имеете ввиду. и насчёт тестирования тоже не понял - у меня с тестированием вроде проблем не было. вот я и вижу что везде, что каждый кулик свое болото хвалит, а мне надо как-то ОБЪЕКТИВНО это оценить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 22:56:49 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
redwhite90я вот например не разделяю вашей любви к xml. смотришь на xml - сразу волосы дыбом, а на аннотации - сразу всё понятно. Субъективно. redwhite90насчёт библиотек - я не понял, что вы имеете ввиду. Domain Model вроде как не должна зависеть от Spring. Аннотации привязывают ваши независимые классы к Spring API. redwhite90вот я и вижу что везде, что каждый кулик свое болото хвалит, а мне надо как-то ОБЪЕКТИВНО это оценить. Объективно, на простых решениях - аннотации норм. На крупных решениях есть нюансы 1) Аннотациями не всегда можно сделать, что достаточно не сложно делается на XML 2) По спринговому XML конфигу можно примерно представить структуру всего приложения, не читая сами классы. 3) XML позволяет иметь несколько разных конфигураций для одних и тех же классов. С аннотациями тоже можно, но сложнее. Нужно аккуратнее различать что общего у конфигураций, а что различается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 23:14:23 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
redwhite90 , К сожалению, не все вещи можно подвести под какие-то объективные критерии. Ведь мы, программисты, люди. И пишем мы тоже для людей. А значит фактор субъективности будет присутствовать всегда. И ваш вопрос - как раз больше зависит от субъективных факторов, чем от объективных. Давайте по пунктам: 1) Я утверждаю, что XML читать удобнее. А вы утверждаете, что аннотации. Кто из нас прав? Никто, это чисто субъективная оценка. Я за свою практику насмотрелся на много XMLек, и мне с ними очень комфортно. Чистой воды субъективизм. 2) Привязка к библиотекам. Вот вы недавно спрашивали, что такое high cohesion. Отвечу: это когда один класс выполняет строго определенную функцию. Когда я проектирую классы и интерфейсы, я всегда стремлюсь, что бы в них не было ничего лишнего, что бы был этот самый high cohesion. Так вот, entity по своей сути - это просто контейнер для одной или нескольких записей из СУБД. На уровне entity мы оперируем такими вещами, как String, Map, Collection, примитивы, и т.д. То есть какими-то самыми базовыми вещами. И тут вы врываетесь, и запиливаете внутрь entity аннотации JPA и Hibernate, и она уже является не только хранилищем реляционных данных, но и хранилищем метаданных об эти данных. То есть это по сути DDL + DML в одном месте. Вы знаете хоть одну СУБД, где можно в рамках одного оператора забабахать и DDL, и DML? Я нет. Я предпочитаю, что бы данные жили отдельно, метаданные отдельн. Это мои аргументы против аннотаций. Они субъективны. А теперь давайте посмотрим на это с другой стороны. Ну добавили вы эти аннотации в entity. Ну да, у вас уменьшился этот самый cohesion. Ну и что? Кому от этого плохо будет? Да, в каких-то редких сценариях это не будет работать, из-за особенностей ТЗ. Но у вас сейчас есть такой сценарий? Да в подавляющем большинстве случаев с аннотациями можно жить, и ни о чем не париться. Это тоже субъективное мнение, просто с другой стороны. 3) По тестам - это я опять таки выдаю субъективные ощущения, так как я в целом люблю XML, мне с ними комфортнее. Вот такие дела. И если вы обратите внимание, то все холивары возникают как раз таки в темах, где много субъективизма, и мало фактов. Аннотации vs XML, нужны DTO или нет, rich model vs anemic model, хороший Hibernate или плохой, и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 23:18:49 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
Не надо забывать что lifecycle приложения состоит не только из программинга но еще и из конфигурирования и бесконечного цикла эксплуатации. И если XML рассматривается со стороны DSL для бизнес-задачи то он предпочтительнее. Ведь доступа к исходникам обычно не бывает. А с точки зрения лаконичности и разработки Annotations удобнее ведь они - часть языка Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 00:46:07 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
cdtyjvВы знаете хоть одну СУБД, где можно в рамках одного оператора забабахать и DDL, и DML? create table MyTable2 as select field1, field2 from MyTable1 where field3 > 100 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 16:12:17 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОбъективно, на простых решениях - аннотации норм. На крупных решениях есть нюансы 1) Аннотациями не всегда можно сделать, что достаточно не сложно делается на XML 2) По спринговому XML конфигу можно примерно представить структуру всего приложения, не читая сами классы. 3) XML позволяет иметь несколько разных конфигураций для одних и тех же классов. С аннотациями тоже можно, но сложнее. Нужно аккуратнее различать что общего у конфигураций, а что различается. 1. Java конфигруцией и аннотациями можно сделать то, для чего на xml придется писать свои NamespaceHandler-ы для spring-а. А это очень увлекательно занятие. 2. Тоже самое можно сделать используя аннотации и java конфигурацию.- перечисляем где нам нужно классы модулей и все становится понятным. 3. Доступно с 3-его релизом спринга т.е. уже достаточно много лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 16:35:00 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
schwa1. Java конфигруцией и аннотациями можно сделать то, для чего на xml придется писать свои NamespaceHandler-ы для spring-а. А это очень увлекательно занятие. С "Java конфигруцией" и аннотации-то не нужны. schwa2. Тоже самое можно сделать используя аннотации и java конфигурацию.- перечисляем где нам нужно классы модулей и все становится понятным. Аннотации тогда зачем, если всё в Java конфигурации указано? schwa3. Доступно с 3-его релизом спринга т.е. уже достаточно много лет. Как называется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 16:38:55 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
Blazkowiczschwa1. Java конфигруцией и аннотациями можно сделать то, для чего на xml придется писать свои NamespaceHandler-ы для spring-а. А это очень увлекательно занятие. С "Java конфигруцией" и аннотации-то не нужны. schwa2. Тоже самое можно сделать используя аннотации и java конфигурацию.- перечисляем где нам нужно классы модулей и все становится понятным. Аннотации тогда зачем, если всё в Java конфигурации указано? schwa3. Доступно с 3-его релизом спринга т.е. уже достаточно много лет. Как называется? Аннотации без java-based конфигов ничем не отличается от xml. И использовать аннотации вместе с xml после 3 релиза есть смысл только в случае, если переписывать все эти xml банально не хочется. И xml и Java конфигурация решают одну и туже задачу и аннотации везде работают одинаково. Как в xml конфиге с поддержкой автовайринга объект заинджектится контейнером, так и в java конфигурации он заинджектится без всякого вызова методов. А проблемы с разными конфигурациями для одних и тех же объектов при java конфигов отсутствует как класс т.к. конфигурация это такой же код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 17:11:41 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
Xml лучше для нетривиальных случаев, скажем, если вы инжектите 1 бин в разные скопы, да и вообще, нагляднее. По аннотациям трудно сориентироваться. У нас вот тут по мере нарастания интерпрайза, аннотации и autowired потихоньку исчезают, xml и сеттеры остаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 17:17:51 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
schwaАннотации без java-based конфигов ничем не отличается от xml. И использовать аннотации вместе с xml после 3 релиза есть смысл только в случае, если переписывать все эти xml банально не хочется. И xml и Java конфигурация решают одну и туже задачу и аннотации везде работают одинаково. Как в xml конфиге с поддержкой автовайринга объект заинджектится контейнером, так и в java конфигурации он заинджектится без всякого вызова методов. А проблемы с разными конфигурациями для одних и тех же объектов при java конфигов отсутствует как класс т.к. конфигурация это такой же код. Разговор ни о чем. Вопрос был про XML vs Аннотации. Java конфигурация это аналог XML конфигурации, только в Java синтаксисе. Недостатков использования аннотаций он никак не отменяет. Поэтому почему вдруг XML противопоставляется Java конфигурации, мне не понятно. Это одно и то же. Вопрос в аннотациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 17:18:54 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
ЛагманXml лучше для нетривиальных случаев, скажем, если вы инжектите 1 бин в разные скопы, да и вообще, нагляднее. По аннотациям трудно сориентироваться. У нас вот тут по мере нарастания интерпрайза, аннотации и autowired потихоньку исчезают, xml и сеттеры остаются. Вот и я о том же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 17:19:29 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
BlazkowiczschwaАннотации без java-based конфигов ничем не отличается от xml. И использовать аннотации вместе с xml после 3 релиза есть смысл только в случае, если переписывать все эти xml банально не хочется. И xml и Java конфигурация решают одну и туже задачу и аннотации везде работают одинаково. Как в xml конфиге с поддержкой автовайринга объект заинджектится контейнером, так и в java конфигурации он заинджектится без всякого вызова методов. А проблемы с разными конфигурациями для одних и тех же объектов при java конфигов отсутствует как класс т.к. конфигурация это такой же код. Разговор ни о чем. Вопрос был про XML vs Аннотации. Java конфигурация это аналог XML конфигурации, только в Java синтаксисе. Недостатков использования аннотаций он никак не отменяет. Поэтому почему вдруг XML противопоставляется Java конфигурации, мне не понятно. Это одно и то же. Вопрос в аннотациях. Потому что аннотаций в вакууме меньше возможностей чем xml, а java конфиг дает аннотациям все то, чего им недоставало. До их появления у аннотаций не было модулей. Но уже несколько лет эта проблема решена. И с того момента все трудности, возникающие после применения аннотаций, это лишь проблемы дисциплины. Если можно раскидать объекты по xml, то по java классам их можно раскидать и подавно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 17:44:34 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
schwaПотому что аннотаций в вакууме меньше возможностей чем xml Аллилуя! О чем тогда спор? schwaа java конфиг дает аннотациям все то, чего им недоставало. Зачем тогда аннотации, если есть конфиг? schwaДо их появления у аннотаций не было модулей. Но уже несколько лет эта проблема решена. И с того момента все трудности, возникающие после применения аннотаций, это лишь проблемы дисциплины. Вот и сводится к тому что у нас часть конфигурации на аннотациях, а часть на Java, там где аннотации не справляются. schwaЕсли можно раскидать объекты по xml, то по java классам их можно раскидать и подавно. Ну, вот опять. Вопрос был об аннотациях и конфигурации, а не о Java конфигурации и XML конфигурации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 17:54:14 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
Некоторые уже и вопрос в контекст Spring-а перенесли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 18:02:38 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
maytonНекоторые уже и вопрос в контекст Spring-а перенесли. Spring в сабже указан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 18:05:38 |
|
||
|
аннотации или xml в спринг
|
|||
|---|---|---|---|
|
#18+
Какая досада. Никуда от этой пружины не денешся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 18:14:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38445533&tid=2128314]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 489ms |

| 0 / 0 |
