Лучшая практика для большого сервиса WCF?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

39
задан Stephan 26 September 2012 в 14:20
поделиться

4 ответа

Это было большим вопросом окружающие сервисы начиная с их начала. SOA, сделанный успешно, является SOA, запланированным до степени, о которой Вы говорите. Однако я всегда склонялся больше к разделению сервисов, но использованию их составным способом. Таким образом, несколько конечных точек, когда у Вас есть несколько контрактов, но большинство из них только используется несколькими конечными точками, которые используются несервисными вызывающими сторонами. (ничего себе, который был полным ртом, он даже имел смысл?)

кроме того, я советовал бы для имения как можно меньшего количества контрактов. Слишком много контрактов могут привести к плохой управляемости. Хороший дизайн контракта поможет ограничить количество конечных точек и служебных вызовов. Удаление понятий OO от дизайна контракта является одним способом сделать так. Дизайн контракта является крупной темой сам по себе, но достаточно сказать, что через хороший контракт, планирующий (впереди), прибывает хороший сервисный дизайн.

Maarten Mullender записи большой блог на дизайне WCF, и необходимость чтение. Существуют также некоторые замечательные книги SOA/WCF, появляющиеся также.

Некоторые хорошие книги:

Программирования
16
ответ дан Kilhoffer 27 November 2019 в 02:52
поделиться

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

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

http://ayende.com/Blog/archive/2008/03/30/Hibernating-Rhinos-8--Going-Distributed-amp-Building-our-own.aspx

, Который сказал, приезжаете ли Вы уже от, "Мне нужен большой сервис WCF", тогда идущий в один метод, вероятно, не собирается сокращать его для Вас. Если это правда тогда Programming WCF Services Juval Lowy является стандартом, необходимо поддержать в дизайне.

5
ответ дан Daniel Crenna 27 November 2019 в 02:52
поделиться

Это было полезно мне, это прибывает из веб-сайта idesign.net, и это было создано Juval Lowy:

WCF Кодирование Стандарта

5
ответ дан Abel Gaxiola 27 November 2019 в 02:52
поделиться

У меня есть сообщение здесь о том, как отдельные операции должны отличаться от традиционных операций кода:

http://www.iserviceoriented.com/blog/post/Introduction+to+Service+Oriented+Architecture.aspx

необходимо закончить только с операциями для фактических бизнес-событий. Если Вы когда-нибудь останавливаетесь и думаете, что "Я должен включить поддержку транзакции на своем веб-сервисе", который означает, что Вы не разработали операцию с достаточно широким объемом. Вам никогда не придется включать поддержку транзакции веб-сервиса.

я настоятельно рекомендую блог Пула счета для высокоуровневых понятий SOA. Вот сообщение для начала работы:

http://feeds.feedburner.com/~r/BillPoolesCreativeAbrasion/~3/328955489/service-contract-stability.html

4
ответ дан jezell 27 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: