Могу ли я игнорировать безопасность потоков при программировании на Erlang?

Я только начал изучать безопасность потоков. Это заставляет меня кодировать намного более оборонительно, возможно, слишком оборонительно.

Может ли использование такого функционального языка, как Эрланг, полностью избавить меня от этой проблемы? сквозные проблемы в OO Application? Использовать синглтон? Внедрение зависимости? Что? Допустим, я В настоящее время я занимаюсь разработкой приложения, в котором мне нужно будет использовать глобальную систему синхронизации (это сквозная проблема). Мне нужно будет получить доступ к данным из этой глобальной системы синхронизации из ...

Допустим, я сейчас разрабатываю приложение, в котором мне нужно будет использовать глобальную систему синхронизации (это сквозная проблема). Мне нужно получить доступ к данным из этой глобальной системы синхронизации практически из любого места моего приложения, и я не вижу, что «эта часть приложения будет нуждаться в ней, а другая - нет».

У меня вопрос: должен ли я проектировать это как некий Ambient Context (в данном случае Singleton), или я должен попытаться придумать другой способ приспособиться к этому?

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

Как люди обычно справляются с этим? Есть ли какие-то другие методы, которые могут помочь с этим? AOP может быть?

PS: Глобальная система синхронизации была просто идеей, которую я взял из книги, которую я сейчас читаю. Система ведения журнала была бы еще одним хорошим примером такого рода проблем.

Спасибо

5
задан devoured elysium 19 August 2010 в 16:48
поделиться