Cuando es posible ... ¿dejas paréntesis dentro o fuera en Ruby?
Cuando es posible ... ¿dejas paréntesis dentro o fuera en Ruby?
Respuestas:
De los elementos del estilo rubí
Ruby te permite dejar fuera paréntesis, en general, resiste esta tentación.
Los paréntesis hacen que el código sea más fácil de seguir. El estilo general de Ruby es usarlos, excepto en los siguientes casos:
- Siempre deje los paréntesis vacíos
- Los paréntesis se pueden dejar fuera de un solo comando que está rodeado por delimitadores ERb: los marcadores ERb aseguran que el código aún sea legible
- Una línea que es un solo comando y un solo argumento simple se puede escribir sin paréntesis. Personalmente, encuentro que hago esto cada vez menos, pero sigue siendo perfectamente legible. Tiendo a no gustarme las líneas simples en el código ruby regular que tienen múltiples argumentos y sin paréntesis.
- Muchos lenguajes específicos de dominio basados en Ruby (como Rake) no usan paréntesis para preservar una sensación de lenguaje más natural en sus declaraciones.
Uso parens como comentarios para ayudar al futuro yo ... que probablemente tenga menos células cerebrales que el yo actual :-)
Nada peor que mirar un código que escribiste hace 2 años y malinterpretarlo, de modo que rompas algo mientras lo modificas.
Si parens me salvará el futuro unos minutos (u horas) en el futuro, agregaré tantos como sea necesario para que la declaración sea muy clara.
Los dejo fuera cuando estoy haciendo cosas similares a DSL, como t.column o has_many in rails. El resto del tiempo, generalmente se reduce a la claridad, y probablemente sea una división uniforme.
Si te refieres a las llamadas a funciones, siempre pongo paréntesis porque siempre es más fácil de leer. Si te refieres a condiciones (si, mientras) solo pongo paréntesis cuando son necesarios.
Tiendo a omitirlos cuando hago afirmaciones como assert_equal. Tal vez sea para convertirlo en un lenguaje específico de dominio.
Si ha estado programando durante mucho tiempo, probablemente tenga "ganas" de agregar paréntesis y, en muchos casos, existen buenas razones para ello.
Sin embargo, en mi opinión, el código es más agradable a la vista y todavía no he tenido ningún problema: si va a necesitar paréntesis, lo sabrá de antemano antes de tener que ejecutar el script de depuración.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
. Solo he estado aprendiendo ruby durante un par de semanas y donde trabajo usa la menor cantidad de caracteres posible y si vienes de cualquier otro idioma, hay un aprendizaje curva para saber cuándo estás pasando un hash implícito, una matriz de símbolos, pasando a símbolos a una función ... no soy un fan.
if owner.is_a? thing and x > 1
and
no tiene la misma precedencia de operadores que &&
tiene