Как бы вы объяснили актеров не программисту?

Ну, название в значительной степени таково: если бы я сидел перед вами не-техником / моей мамой / двенадцатилетним мальчиком / кокер-спаниелем и попросил вас объяснить им актеров, с чего бы вы начали? Я спрашиваю, потому что мой магистерский проект вовлекает их в значительной степени, и каждый день кто-то просит меня рассказать им, что я делаю. Когда я разговариваю с другими людьми на моем курсе, это не так уж и плохо - обычно это понятие чужое, но понятное - но недавно моя соседка по квартире, химик, попросила меня объяснить ей это, и сказать, что я боролась, было бы довольно громадно занижение.

Я ищу какое-то объяснение, которое передает идею, а не техническую основу. Это может быть метафора, и она не должна быть точной - я просто хочу, чтобы они поняли, что я с ними делаю. Есть идеи?

5 ответов

Решение
  • Там может быть много актеров. Все актеры действуют "одновременно". Параллелизм является ключевой частью этой модели.

  • Актеры не могут знать, что думают другие актеры. Единственный способ переместить информацию с помощью сообщения. (нет общего состояния)

  • Актеры могут получать сообщения и действовать в соответствии с ними:

    • делать вычисления с данными в них

    • отправка сообщений другим актерам

    • создавая других актеров.

    • игнорирование / отбрасывание сообщения.

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

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

Я попробую простую метафору:

Актеры - это люди, которые делают какую-то работу в своих домах. Перед каждым домом есть почтовый ящик. Чтобы общаться друг с другом и выполнять работу, между актерами отправляются сообщения.

Актер - это то, что мы также можем назвать субъектом. Актеры что-то делают с объектами. Актер так называет, потому что это тот, кто действует.

Я не уверен, что это будет хорошо, но я попробую:

Давайте представим классический рынок на Ближнем Востоке. Есть покупатели (предположим, что они просто гуляющие туристы) и продавцы. Покупатели бродят по рынку, а продавцы выкрикивают названия своих товаров: ковры! Виды!!! Лошади!!! С andies!!! Драгоценные камни!!! и так далее... Некоторые покупатели не интересуются конкретным видом товара и переходят в следующий магазин, но некоторые покупатели проявляют интерес и спрашивают: "Сколько это стоит?", продавец: "50$", покупатель: " Можете ли вы дать мне скидку? ", И так далее...

Актеры здесь покупатели и продавцы. Продавцы отправляют сообщения с типами своих товаров. Покупатель может пропустить сообщение или отправить сообщение по запрашиваемой цене.

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

Другие вопросы по тегам