scala - repositorios - patrones de diseño ux
Patrones de diseño/mejores prácticas para construir un sistema basado en Actor (3)
El libro ''Patrones de diseño reactivo'' está en proceso de elaboración en Manning.
Estoy luchando por encontrar enlaces decentes para los patrones de diseño, las mejores prácticas o los buenos principios básicos de arquitectura que deberían usarse para crear aplicaciones basadas en Actor. Esos pocos que conozco son:
Publicaciones de blog, artículos, WIKI, guías
- Principios de diseño de OTP Guía del usuario
- Patrones y mejores prácticas para la integración empresarial (en general, se puede aplicar a cualquier arquitectura basada en mensajes)
- Serie de publicaciones de James Iry sobre cómo lidiar con el estado en el diseño con los actores
- Serie de publicaciones sobre diseño con actores Scala de Ittay Dror
- Articulo de simultaneidad en wikipedia
- Patrones de diseño de sistema escalables (no directamente relacionados con los actores, pero bastante útiles)
- Comprender la concurrencia del actor, pt.1 , pt.2 por Alex Miller
Papeles
- Disección sobre la fabricación de sistemas distribuidos confiables por Joe Armstrong
- Abstracciones de componentes de Scalabale por Philipp Haller y Martin Odersky
- Programación basada en eventos sin inversión de control por Martin Odersky y Matthias Zenger
- Actores con mensajes de múltiples cabezas reciben patrones por Martin Sulzmann
Libros
- Actores en Scala por Philipp Haller y Frank Sommers
- Programación de Erlang por Joe Armstrong
- Erlang y OTP en acción por Martin Logan, Eric Merritt y Richard Carlsson
Implementaciones
- Akka Framework (implementación alternativa de actores en Scala con un puerto de varios comportamientos de Erlang y muchos otros patrones relajados para los actores)
- Actores Scalaz (composiciones de actores, estrategias y promesas)
Presentaciones
- Actor pensando por Dale Schumacher
- Patrones de diseño de 1000 años de Ulf Wiger
- Programación basada en actores por Jamie Ridgway
- Школа Актерского Мастерства por Vasil Remeniuk
Ejemplos de highscalability.com
- Servicio de cola simple (SQS) : este servicio proporciona un servicio de cola de escala de Internet para almacenar mensajes. Los actores distribuidos ponen el trabajo en la cola y quitan el trabajo de la cola. Uso típico: una cola de trabajo centralizada. Pones trabajos en la cola y diferentes actores pueden sacar el trabajo de la cola y procesarlos cuando obtienen tiempo de CPU. Parte de la escalabilidad. Tener cualquier número de productores y consumidores. No te preocupes por eso Las colas están distribuidas en varias máquinas y múltiples centros de datos.
Esto está relacionado con una pregunta anterior , ¡si no exactamente igual!
No es una pregunta tan simple porque el modelo de concurrencia del actor permite construir muchos tipos diferentes de aplicaciones, desde una aplicación de VM única con estado (con algunas clases de actores separadas) hasta un clúster sin estado de miles de instancias de una clase de actor. .
Los principios básicos son los mismos sin embargo:
- Nunca expongas el estado de un actor
- Comuníquese únicamente a través del envío de mensajes inmutables
Publiqué un blog sobre el aprendizaje del desarrollo de actores en Scala hace unas semanas. Es una publicación de buenas prácticas y cosas para evitar basadas en unos pocos años de experiencia con el paradigma.