Esto es más de un tipo de casos de uso de la pregunta ... pero también lo suficientemente genéricos para ser más ampliamente aplicable:Perl OO marcos y programa de diseño - Alce y de adentro hacia afuera objetos de Conway (Clase :: Std)
En resumen, estoy trabajando en un módulo que es más o menos un contenedor de línea de comandos; OO, naturalmente. Sin entrar en demasiados detalles (a menos que alguien los quiera), no hay una gran cantidad de complejidad en el sistema, pero sí es natural tener tres o cuatro objetos en este marco. Finalmente, es algo de código abierto que pondré allí, en lugar de un módulo con algunos desarrolladores en la misma empresa trabajando en ello.
Primero implementé el OO usando Class :: Std, porque Perl Best Practices (Conway, 2005) formuló un buen argumento sobre por qué usar objetos de adentro hacia afuera. Control total sobre a qué atributos se accede, etc., encapsulado adecuado, etc. Además, su diseño es sorprendentemente simple e inteligente.
Me gustó, pero luego noté que nadie realmente usa esto; de hecho, parece que el propio Conway en realidad ya no recomienda esto.
Así que pasé a ser el favorito de todos, Moose. Es fácil de usar, aunque de manera exagerada, por lo que respecta a las características de lo que quiero hacer. La gran desventaja es que tiene una gran cantidad de dependencias de módulos que obligan a los usuarios de mi módulo a descargarlas todas. Un inconveniente menor es que tiene mucho más funcionalidad de la que realmente necesito.
¿Qué son recomendaciones? ¿Inconveniente a los desarrolladores compañeros al forzarlos a usar un módulo posiblemente obsoleto, o forzar a cada usuario del módulo a descargar Moose y todas sus dependencias?
¿Existe una tercera opción para un marco de Perl OO adecuado que sea popular pero ninguno de estos dos?
¿Definir "giro"? Moose tiene 4 dependencias que no están en Class :: Std, de las cuales la más grande es Class :: MOP, que es el objetivo de Moose. – perigrin
Olvidaste las dependencias de las dependencias. :-) – Emmel
Un giro -> http://deps.cpantesters.org/?module=Moose;perl=latest Descontar todos los módulos principales, 16 no es tan malo, pero no es 4. – Schwern