2008-09-18 8 views
18

Comencé una conversión de un proyecto a Moose y lo primero que noté fue que mis pruebas críticas/ordenadas se van al infierno. Moose, Tidy y Critic no parecen gustarse tanto como solían hacerlo.Perl :: Crítica: ¿La vida después de Moose?

¿Hay algún punto sobre cómo hacer que el crítico/el orden aprecie más el dialecto de Moose? ¿Qué hacen la mayoría de los usuarios de Moose? ¿Relájate/critica para los módulos Moose más pesados? ¿Políticas personalizadas?

Respuesta

6

Ambos se pueden configurar en detalle.

no tengo ni idea de por qué perltidy no le gustaría, no tiene nada que ver con ello. Perltidy solo gobierna el estilo. Puede cambiar el estilo de su código sin cambiar ninguna funcionalidad, en su mayor parte es una cuestión de espacio en blanco realmente. Debe cambiar su estilo o cambiar la configuración de perltidy utilizando el archivo .perltidyrc.

No sé qué problemas tiene perlcritic (¿quizás lvalue methods?), Pero podría considerar desactivar esas políticas específicas con el archivo .perlcriticrc. Además, si su perlcritic es antigua, es posible que desee actualizarla, ya que algunas versiones antiguas dieron algunos errores incorrectos en las clases de Moose.

+3

Bueno, supongo que más al grano. ¿Alguien tiene un crítico/perltidyrc modificado para proyectos basados ​​en Moose? Cada vez que me desvío del stock de inventario ordenado, me siento sucio y, por lo general, termino empeorando las cosas. :-) – claco

+0

Agregado: Perltidy solo gobierna el estilo. Puede cambiar el estilo de su código sin cambiar ninguna funcionalidad, en su mayor parte es una cuestión de espacio en blanco realmente. –

+0

Moose no crea métodos lvalue para usted. Ni siquiera creo que haya una extensión de MooseX para esto. –

3

No tengo ningún problema con las pruebas de Crítica. Debo admitir que funciono en severity = 3, al menos en parte porque parte de lo que tengo que trabajar es un código heredado que no tengo/time/to tidy, pero mi Moose cosas navega a través de eso.

6

Las versiones anteriores de la política de "uso estricto" de Perl :: Critic no tenían conocimiento de habilitación de Moose estricta para usted, pero eso se solucionará si actualiza Perl :: Critic.

Uso Perl :: Critic y Perl :: Tidy con Moose, y no veo nada particularmente roto. Bueno, en realidad, no puedo conseguir Perl :: Tidy a las cosas de diseño como esto correctamente:

my $apple = Apple->new({ 
    color => "red", 
    type => "delicious", 
}); 

Tidy insistirán en que (y {n dos niveles de apertura de la sangría, y que sólo a mirar esta tonta :

my $apple = Apple->new({ 
     color => "red", 
     type => "delicious", 
}); 

Pero hemos tenido este problema antes, la convención de codificación en el proyecto es utilizar un hashref, no un hash, para los parámetros con nombre Así que no es realmente un problema relacionado alces como tal

..

¿Cuáles son exactamente tus síntomas?

/J

Cuestiones relacionadas