¿Cómo evalúa la calidad del código de Rails?

Tenía la misma pregunta y encontré bastante información aquí:
¿Cómo evaluar la calidad del código Rails?

Citando al “Tío Bob” en este enlace:

“Generalmente es fácil determinar la calidad del código y no tiene nada que ver con Rails o Ruby.

  1. Todas las funciones deben estar entre menos de 8 líneas.
  2. Ninguna función debe tener más de dos niveles de sangría.
  3. Los nombres deben ser comunicativos y explícitos.
    3a. Las variables en ámbitos cortos deben tener nombres cortos. 3b. Las variables en ámbitos largos deben tener nombres largos. 3c. Las funciones en ámbitos largos deben tener nombres cortos. 3d. Las funciones en ámbitos cortos deben tener nombres largos.
  4. El código debe leerse como una prosa bien escrita y tener muy pocos comentarios.
  5. A medida que lea el código, no debería tener que buscar las definiciones de las variables y funciones que se están llamando. Deberían ser obvios.
  6. Las llamadas a funciones deben tener 3 o menos argumentos, con preferencia por menos.
  7. La cobertura de la prueba unitaria debe estar cerca del 100%, y el programador debe conocer el número de cobertura.
  8. Las pruebas unitarias deben ser cortas, fáciles de leer y fáciles de entender. Debe poder entender el programa leyendo las pruebas.
  9. Las pruebas deberían ejecutarse muy rápidamente. Las pruebas de larga duración son un síntoma de descuido “.

Respaldo lo que escribió Anónimo, pero agregaría que si tiene una base de código ya existente, debe probar una plataforma de revisión de código automatizada.

Codacy, por ejemplo, le dará un tablero con una lista de todos los problemas en su código, e incluso lo califica (de A a F).

Si está buscando la calidad de un único desarrollador, le sugiero que busque en los informes las confirmaciones de ese desarrollador (que muestra cuántos problemas se introdujeron o solucionaron).

La prueba más importante de la experiencia de un desarrollador es “el código fácil de leer” y “el código fácil de extender”. Los desarrolladores pasan mucho más tiempo leyendo códigos que escribiendo códigos. La legibilidad y la facilidad de comprensión son primordiales en mi opinión. Elegir una gema sobre otra no lo es.

Estos conceptos se extienden más allá de la elección del lenguaje (es decir, Ruby) o la elección de gemas.

Tener un conjunto completo de pruebas es otro que debo tener en mi opinión.

More Interesting

¿Cuáles son las diferencias (en calidad, confiabilidad, etc.) entre un desarrollador / ingeniero de software independiente indio y un empleado desarrollador / ingeniero de software indio?

Si el cliente quiere comprar código, ¿cuál es el costo del código del proyecto web? ¿Cómo estimar el costo del código para la venta?

¿Hay otros recursos como el radar de tecnología ThoughtWorks?

¿Cuál es la naturaleza del trabajo de los ingenieros de software de sistemas integrados?

¿Podemos construir un software diseñado para hacer investigación?

¿Qué es un "buen portafolio" para alguien que busca un trabajo de desarrollo de iOS de nivel medio?

¿Por qué una clase Java no muestra 'Ejecutar como' -> 'Aplicación Java' en Eclipse IDE cuando los argumentos del método principal son 'int [] args' en lugar de 'String [] args'?

¿Qué necesito saber si mañana, como informático ordinario, quiero trabajar para una empresa que produce software para biochips?

Como un extraño, ¿cómo lidiar con elogios injustos de los ingenieros de software en las startups en Silicon Valley?

¿Cuánto tiempo y capacitación se necesitaría para pasar de un programador novato a uno que razonablemente podría conseguir un trabajo como programador móvil / de aplicaciones?

¿Cómo puede Atlas Recall rastrear todo lo que hace en su computadora sin tener alguna interfaz con sus aplicaciones?

¿Cuáles son los diversos desafíos que enfrentan los ingenieros de desarrollo de software?

¿Cuánto cuestan los gerentes de proyectos / productos independientes para crear aplicaciones móviles?

Cómo crear una función de retraso en C o C incrustado

¿Cuál es la diferencia entre Scala y Python?