He leído un poco sobre el modelo de actor, pero realmente no entiendo cómo usar actores en una situación del mundo real, cómo modelar un problema con ellos.
¿Alguien puede explicar? Un ejemplo simple o enlaces a ejemplos sería muy apreciado.
He leído un poco sobre el modelo de actor, pero realmente no entiendo cómo usar actores en una situación del mundo real, cómo modelar un problema con ellos.
¿Alguien puede explicar? Un ejemplo simple o enlaces a ejemplos sería muy apreciado.
Respuestas:
Los actores, en el sentido de acciones de modelado, con mensajes, etc., son una forma de software de modelado que proporciona un par de elementos útiles ...
Los actores pueden vivir en un solo hilo, lo que permite que se realicen operaciones no seguras / no concurrentes sin un montón de magia de bloqueo. Un actor responderá a los mensajes en su bandeja de entrada. Cuando desee que procese un comando, le enviará un mensaje y se encargará de ellos en el orden en que se reciben. Al igual que una cola normal. El uso seguro de subprocesos es mortal aquí, y lo uso en varios proyectos de código abierto en los que trabajo.
En algunos idiomas, por ejemplo, Scala, es fácil convertir el código basado en actores en un solo proceso en un sistema distribuido separando a los actores y convirtiendo los canales que comunican en canales remotos. Esto cambia entre implementaciones sobre lo fácil que es, pero es una característica increíble.
Ayuda a centrarse en eventos basados en tareas en lugar de eventos CRUD. CRUD es simple pero es como interactuar con un archivador. Si podemos proporcionar más valor que eso en el software que producimos, ¿por qué lo hacemos? Atar múltiples acciones a un solo comando "Actualizar" en un sistema basado en tareas es más útil que simplemente guardar en la base de datos. Esto también entra en cosas como CQRS.
fuente
La respuesta de Travis es sólida. Cuando comienzas a hablar de concurrencia, estás tratando de resolver problemas de recursos. La concurrencia con hilos y cerraduras es bastante fácil de hacer mal. El modelo de actor ayuda a forzarlo a programar porciones concurrentes de su código como pepitas autónomas que se pueden realizar en paralelo y sin depender de otra pieza de código. Estás tratando de evitar la maldad como las condiciones de carrera y los callejones sin salida.
Los actores son como tú y yo en esta conversación. Simplemente no puedes alcanzar mi cerebro y elegir lo que estoy escribiendo. Me pasaste un mensaje que decía "¿Por qué existimos?" Me senté, puse algunos números y envié una respuesta "Creo, luego existo". No podías decir lo que estaba haciendo en mi propia porción del planeta Tierra. El único contacto que tienes conmigo es a través de los mensajes que pasamos de un lado a otro.
EDITAR:
No dijo en qué idiomas se siente cómodo, pero vea si hay una implementación de actor en su idioma. Tal vez la más simple sería algunas de las bibliotecas de actores en Python. Pero probablemente mejor para aprender sería Erlang. El idioma es un poco áspero, pero una vez que superas los matices, es un buen idioma.
fuente
Los actores son un elemento de los diagramas de casos de uso que representan cualquier entidad externa (usuario, sistema externo, etc.) que puede actuar en un sistema. Cualquier caso de uso básico contendrá actores, solo google "caso de uso" para una gran cantidad de ejemplos.
fuente