Аннотировать или не аннотировать - PullRequest
2 голосов
/ 01 сентября 2009

Я думаю о том, чтобы аннотировать мои доменные объекты. Это облегчит манипулирование DO. Сохранение кода домена свободным от других внешних вещей также важно для меня.

Есть ли какие-либо комментарии по поводу "повреждения" кода домена путем добавления аннотаций?

Вы за / против добавления аннотации к объектам домена и почему?

Ответы [ 5 ]

2 голосов
/ 01 сентября 2009

Я думаю, что аннотирование, если оно делает код проще, - это хорошая идея, но вы должны посмотреть на то, что уже есть, и, по крайней мере, использовать то, что может быть стандартом для имен ваших аннотаций. Например, вы можете посмотреть на JDBC 4.0 на Java (http://onjava.com/pub/a/onjava/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html?page=2), или Spring в качестве примера.

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

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

1 голос
/ 01 сентября 2009

Аннотации (как и все остальное) имеют компромисс. Главное, что они статичны. Если вы хотите изменить во время выполнения свойство, представленное в аннотации, вам не повезло.

С ними может быть немного сложно работать, когда вы вступаете в сложные сценарии (особенно когда вы имеете дело с аннотированными аннотациями).

И если у вас их много, они могут сделать код нечитаемым.

Тем не менее, при умеренности, простоте и правильности выполнения, они действительно могут сделать код и конфигурацию намного проще и чище.

0 голосов
/ 02 сентября 2009

Я предпочитаю, чтобы мои аннотации были описательными, а не функциональными. Например, аннотации параллелизма JCIP описывают информацию о классе, но не предоставляют функциональность сами по себе. Аннотации, которые вызывают функциональность, как правило, представляют собой PFM (чистую магию) и затрудняют понимание кода.

Это не жесткое правило, но это неприятно, когда аннотации выполняют некоторые функциональные конфигурации, а файлы конфигурации (например, XML) обрабатывают другие конфигурации. Это приводит к коду, который требует, чтобы вы посмотрели повсюду и поняли несколько схем конфигурации для того, как все должно работать.

0 голосов
/ 01 сентября 2009

Мы используем аннотации для определенных вещей - то есть для специальной обработки строк и тому подобного - и это работает как шарм. Аннотации являются отличным способом обработки информации типа «метаданные» - данных об объекте данных. Я бы порекомендовал взглянуть на текущие аннотации J2EE (я думаю, что это версия 5.0?), Так как она используется большинством систем ORM (т.е. Hibernate и т.

0 голосов
/ 01 сентября 2009

Посмотрите на Терракотовая - очень возможно, что вам не нужно писать свои собственные аннотации. Мы столкнулись с подобной дилеммой (наши DO не были предназначены для db отношений), и Терракота оказалась спасителем жизни

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...