perl - ¿Cómo(continuar) aprender a Moose por usarlo “bastante” bien?
(3)
Aunque no soy un gurú de Perl, uso Perl y puedo escribir programas orientados a objetos a la manera "antigua".
Ahora me gustaría aprender alces. Ya he masticado la documentación básica, y mi primer Moose y mis roles ya están funcionando, pero estoy muy lejos de comprender cómo funciona realmente Moose.
Pregunta 1: ¿Es absolutamente necesario entender cómo funciona Moose para escribir programas "bastante buenos"?
Sinceramente, no entiendo muy bien el antiguo sistema de objetos. Algo que recuerdo vagamente que leí es que en realidad es una referencia a una estructura de datos, pero nunca exploré más profundamente. Fue suficiente para que supiera cómo y cuándo necesitaba usar bless
, autoload
, etc. y las cosas simplemente funcionaron. Tal vez algunos de mis módulos antiguos se pueden escribir de manera más efectiva. Pero para mí, funcionan y funcionan bien.
¿Es esto similar a los alces? ¿O alguien que escribe programas "suficientemente buenos" con Moose necesita entender cómo funciona "adentro"?
La pregunta surge por las siguientes razones:
En el METACPAN hay docenas de módulos que ayudan a escribir objetos de Moose aún más fácil y más simple.
Ejemplos al azar:
- https://metacpan.org/module/MooseX::StrictConstructor (ok, fácil de entender)
- https://metacpan.org/module/MooseX::HasDefaults (ok, fácil)
- https://metacpan.org/module/Method::Signatures::Simple (¡bump! no tengo idea de cuáles son las firmas, y este módulo es el "fácil").
- https://metacpan.org/module/MooseX::AlwaysCoerce / hmm ....: (/
- https://metacpan.org/module/MooseX::LazyRequire / hmm ...: (/
- https://metacpan.org/module/MooseX::AbstractMethod
- https://metacpan.org/module/MooseX::AttributeShortcuts (taquigrafía para las opciones de atributos comunes, por lo que probablemente sea una ayuda, pero, ¿es realmente útil aprender?)
y muchos, muchos más (no quiero mencionar aquí otros 10-20 módulos)
Y ahora la pregunta principal:
¿Hay algún buen libro con las instrucciones, ejemplos y recomendaciones (buenas prácticas) para:
- ¿Qué se recomienda utilizar rutinariamente de los módulos mencionados anteriormente desde el principio ?
Los módulos anteriores seguramente no se desarrollaron solo porque el autor simplemente no tiene qué hacer. Ciertamente son útiles y útiles. Pero aprender (leer: tratar de entender) decenas de muchos módulos diferentes (especialmente aquellos que juegan con internos de Moose) es un proceso extremadamente largo. Por otro lado, si no se usan, mis programas serán innecesariamente complicados y me ocuparé de cosas ya resueltas.
El alce debe ser (y probablemente sea) un sistema revolucionario. Solo que estoy empezando a perderse.
Edit : acabo de encontrar Reindeer . Probablemente este módulo es una respuesta parcial a la pregunta: qué módulos son útiles para usar desde el principio (o la mayoría del tiempo)
PD: No estoy seguro de que esta pregunta esté bien para SO. Si no, muévalo a algún lugar o ciérrelo. Lo pregunté aquí porque la comunidad de SO-perl es un lugar realmente útil, y no sé cómo seguir aprendiendo Moose.
" Moose is Perl: una guía para la nueva revolución " de Ricardo Signes contiene mucha información y consejos valiosos. Obtenga el PDF aquí: http://rjbs.manxome.org/talks/moose/
Google "El alce está volando". Encontrarás todo lo que necesites allí.
Para responder a su primera pregunta: no saber cómo funcionan las cosas en su interior es el punto central de la abstracción. Si bien saber el interior a veces te da una mejor idea de por qué las cosas funcionan como lo hacen (y más aún con algo tan complejo como Moose), puedes escribir el código sin eso. Cuando te encuentras con un problema, puedes profundizar un poco más para entender qué está mal.
La segunda pregunta, cómo aprender Moose, no es realmente una buena opción para el desbordamiento de pila.