perl oop

¿Cómo puedo ponerme al día sobre las últimas capacidades orientadas a objetos de Perl?



oop (6)

Bueno, en primer lugar , Perl de orden superior es realmente bueno, pero se trata de programación funcional, no de objetos.

Perl Best Practices es un excelente libro, pero tiene limitaciones, y una de ellas es que Conway recomienda usar su propio módulo Class::Std para hacer objetos de adentro hacia afuera, y el consenso general parece ser (1) que si volver a hacer objetos de adentro hacia afuera, Object::InsideOut y Class::InsideOut son mejores formas de hacerlo (2) y, de todos modos, usar objetos basados ​​en "Moose" es una mejor manera de hacerlo.

Esto ilustra cuál es probablemente la principal diferencia entre el mundo de Java y Perl: rara vez hay una forma estándar de hacer algo con Perl. Comenzando como alguien que se siente cómodo con los objetos en otro idioma, supongo que lo más interesante de Perl orientado a objetos , ahora un poco anticuado, de Conway, es ver cómo desarrolla gradualmente diferentes formas de agregar características de POO que ha dado por sentado.

A mí me gusta el estilo Bled-Hash básico de Perl OOP, pero es necesario que comprenda que su encapsulación es realmente débil y que, si bien la herencia de métodos funciona, por lo general no hay herencia de datos. También hay algunos trucos bastante perlish en uso generalizado, como generar accesores automáticamente usando una rutina AUTOLOAD .

En cuanto a lo que puede leer sobre el tema, no descuide la documentación en línea que viene con Perl: perldoc . Tenga en cuenta la sección "Tutoriales" en la parte superior. Si está oxidado con las referencias y estructuras de datos de Perl, lea los dos primeros: perldoc perlreftut y perldoc perldsc . Un poco más abajo en la lista, verás múltiples tutoriales OOP. En gran parte, se trata de objetos simples basados ​​en href, aunque existen algunas rarezas serias allí, como el esquema de Tom Christiansen para objetos basados ​​en el cierre al final de: perldoc perltoot

Si está interesado en algunas de las formas más nuevas en que las personas hacen las cosas, es posible que desee comenzar con Moose que se supone que es lo más cercano a los objetos perl6 mientras aún escribe el código perl5. Por cierto: ignora la palabra "posmoderno", es una broma tonta que no tiene ningún sentido.

Si está interesado en objetos de adentro hacia afuera (que tienen encapsulación a prueba de balas, pero quizás son un poco molestos de depurar, no puede simplemente usar Data::Dumper en el objeto para obtener su estado), sugeriría comenzando con esta pagina de perl5 wiki .

No he hecho Perl durante aproximadamente 8 años y ahora estoy trabajando en un proyecto que utiliza mucho Perl orientado a objetos, por lo que necesito volver a desarrollar mis habilidades de Perl y hacerlo rápidamente. Durante estos últimos años, principalmente hice todo tipo de desarrollo Java y algo de PHP. Soy muy bueno en OO y no soy un programador novato en ninguna medida remota.

Entonces, aquí viene la pregunta: ¿cuáles son los mejores recursos / sitios / prácticas / formas / libros que ustedes pueden recomendar para aprender mis habilidades oxidadas de Perl y aprender a Perl "la nueva forma"? Tus sugerencias serán muy apreciadas.

PD hice algunas respuestas previas. Quiero enfatizar que no estoy buscando un libro / recurso para principiantes (sintaxis, principios fundamentales, etc.) sino específicamente aquellos que cubren las capacidades de OOP que no existían cuando estaba programando en Perl (o puedo pasarlo por alto en ese momento) )

PPS Gracias a todos por sus sugerencias y consejos. Después de algunas consideraciones, fui con la respuesta de @MBO ya que es la primera vez que menciono a Moose, lo que realmente me ha gustado hasta ahora.



No escribo el código Perl en este momento (actualmente trabajo en otros idiomas), pero leo de vez en cuando este sitio: http://www.modernperlbooks.com/mt/ . También Moose ver Moose para una nueva forma de definir objetos en Perl


Revisa:

  • Mejores prácticas de Perl : buena colección de mejores prácticas sugeridas. Incluso si no los adopta, la discusión del razonamiento detrás de las sugerencias es valiosa.

  • Perl Testing: A Developer''s Notebook : proporciona una excelente cobertura de las capacidades de prueba de Perl.

  • Objeto orientado a Perl : un excelente libro sobre cómo usar y abusar del sistema de objetos de Perl. Este libro está un poco anticuado. Es anterior a los objetos de adentro hacia afuera (cuyo tiempo ha llegado y se ha ido) y Moose, ambos desarrollos importantes en OOP. Si tiene que mantener un gran cuerpo de OO Perl antiguo, este libro puede ser útil.

  • PerlMonks : un sitio muy práctico enfocado en Perl con un tono muy generoso y colegiado. Un buen lugar para ir por ayuda y comentarios. Ha estado en funcionamiento durante años, por lo que también hay un archivo masivo de publicaciones.