Шаблоны разработки для Агента / Агент основывали параллельный [закрытый] дизайн

Не могу поверить, что ни один из ответов не упоминает подразумеваемые глобальные переменные.

Конструкция (function(){})() не защищает от подразумеваемых глобальных переменных, что для меня больше беспокоит, см. http: / /yuiblog.com/blog/2006/06/01/global-domination/

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

Более сжатый синтаксис var App = {} обеспечивает аналогичный уровень защиты и может быть завернут в функцию блокировать, когда на «общедоступных» страницах. (см. Ember.js или SproutCore для реальных библиотек, использующих эту конструкцию)

Что касается свойств private, они вид переоцененных, если вы не создаете общедоступную структуру или библиотеку, но если вам нужно их реализовать, Дуглас Крокфорд имеет несколько хороших идей.

21
задан Joe Holloway 16 April 2009 в 22:41
поделиться

3 ответа

Даже если я не могу придумать хорошие примеры реального мира, которые предоставляют Вам шаблоны разработки прямо, существует несколько мест для запуска.

первое обертывало Вашу голову правильно вокруг понятий. Одна книга, помогающая Вам делать, это Делающие надежные распределенные системы в присутствии программных ошибок записано Erlang Guru Joe Armstrong, где объясняет Параллелизм Ориентированное Программирование очень доступным способом. Это - на самом деле кандидатская диссертация, но не позволяйте этому испугать Вас. Намного легче читать, и приятный кроме того, чем наиболее распространенные учебники.

Рассмотрение фактических систем обычно означает, что необходимо узнать слишком много о фактическом языке для него, также имеют смысл только для оценки вещей. Для Erlang документация обеспечивает методологию проектирования, и поведения (Erlang говорят за библиотеки шаблона разработки). Это проиллюстрирует шаблоны разработки, обычно используемые в этой установке. И они оказались эффективными при создании крупномасштабных систем, т.е. миллионов строк кода (сопоставимый с фактором 4 - 10 из других языков, такие как Java) и milloins параллельных процессов, работающих на одной машине в распределенных кластерах машин. Недавний пример реальной живой системы Чат Facebook .

Для других платформ я не могу действительно помочь Вам, я боюсь.

11
ответ дан 29 November 2019 в 22:02
поделиться

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

я думаю, что сдвиг ума является единственным самым большим барьером для продвижения в параллельную архитектуру и языки и пока это не взломанные разработчики, собираются придерживаться легкого для изучения парадигм стиля MS. Чтобы это действительно стало господствующей тенденцией, это должно найти свой путь в школы и преподаваться вместе с C# и VB.

Мой ответ на 2 080 вопросов о программистах "одновременно".

1
ответ дан 29 November 2019 в 22:02
поделиться

Сам по себе "агент" является объединяющим шаблоном для параллельного программирования (асинхронная очередь сообщений плюс контекст выполнения для их обработки), но существует множество шаблонов проектирования, которые помогают определить аспекты или элементы систем на основе агентов. Многие из наиболее распространенных можно найти в статье Википедии Concurrency Patterns. Некоторые основные:

Если вы еще не сталкивались с ним, Akka может представлять для вас интерес - это "чисто" событийно-ориентированный агентный фреймворк, работающий на JVM.

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

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