Netbeans 7.4 introduce "10 líneas como máximo" por regla de método. ¿De dónde viene esta regla? [cerrado]

80

NetBeans 7.4 beta está actualmente disponible para descarga pública e introduce una extraña regla de advertencia por defecto:

La longitud del método es de 16 líneas (se permiten 10)

Mi pregunta es: ¿Es esta una regla de convención de código aceptada, que se puede probar de alguna manera, en alguna parte? El soporte / los desarrolladores de NetBeans dicen que no es un error, pero no dan una declaración de por qué solo permiten 10 líneas y dónde exactamente esta regla tiene su origen.

Sliq
fuente
25
Es una regla loca que se vuelve aún más absurda por el hecho de que las 10 líneas incluyen espacios en blanco.
13
Sí, eliminemos todas nuestras líneas vacías ... eso mejorará el código :)
Chris Laarman
2
Los espacios en blanco ya no se incluyen. Actualice su instalación de NB al parche 1. netbeans.org/bugzilla/show_bug.cgi?id=237620
Ben
5
Según entendí: es algo que nos obliga a planificar mejor nuestras mentes durante la escritura de código. es decir, si tiene que ser más largo, entonces se puede dividir.
SaidbakR

Respuestas:

129

Puede cambiar el comportamiento de advertencia de longitud máxima de método / función en las opciones de NetBeans (está en Herramientas-> Opciones-> Editor , en la pestaña Sugerencias , en la sección " Demasiadas líneas " en la lista de casillas de verificación).

Allí puede establecer el número máximo de líneas, cómo le gustaría ser advertido, etc.

Creo que la regla fue introducida por los desarrolladores de NetBeans porque cuando se trabaja en equipo, las herramientas automatizadas que utilizan los QA para "inspeccionar" el código señalan los cuerpos de funciones / declaraciones de métodos largos. Desafortunadamente, el uso de herramientas automatizadas por parte de "analistas de código" va en aumento, mientras que su comprensión de las razones detrás de esto sigue siendo limitada. No digo que sus funciones deban tener cientos de líneas, eso es simplemente incorrecto, pero un número codificado como una ley de codificación, ¡vamos!

Milen
fuente
6
Para ser justos, cada métrica que he visto dice que la legibilidad del código disminuye a medida que aumenta la longitud de la función. Código completo 2 incluso va tan lejos como para decir que mantenibilidad comienza a caer en picado a eso de la línea 50.
cwallenpoole
1
No olvide cambiar primero el paquete acumulativo de "Idioma" a "PHP" si ha instalado varios lenguajes de codificación en sus NetBeans.
panticz
Joost Visser en Building Maintainable Software dice 15 líneas. Pero eso debe considerarse en contexto con todo el código base. Algunas unidades de más de 15 líneas no son motivo de preocupación, pero sí lo serían varias unidades de 100 líneas.
Alonso del Arte
25

La "regla de las 10 líneas" tiene que ver con hacer cumplir el desarrollo basado en pruebas. La teoría es que cualquier método que tenga más de diez líneas se puede dividir mejor en unidades que se puedan probar. se sostiene en teoría, pero en la práctica una advertencia como esta es más molesta que útil.

Mate
fuente
9
La "regla de las 10 líneas" asegura que pasas la mayor parte del día pensando en nuevos nombres para tus métodos
Ivan Marjanovic
0

Creo que no hay una convención sobre eso, y es muy difícil hacer que las funciones pequeñas, en particular, trabajen en grandes proyectos.

Siento que el problema en NetBeans (o la regla) es contar líneas con solo un corchete o documentación.

Este artículo le da su opinión sobre las funciones de escritura con 5-15 líneas.

Carlos Huchim
fuente
0

Siempre desactivo esta advertencia, así como la advertencia sobre demasiados bloques anidados. Entiendo la idea de no tener métodos grandes, pero MUCHAS veces simplemente no es práctico, y como alguien más mencionó, si sigues dividiendo tu código en funciones arbitrarias solo para apaciguar el IDE, terminas con el código espagueti saltando por todos lados. , la refactorización también se convierte en un gran problema más adelante.

Igual que la advertencia de límite de longitud de línea, tal vez una línea de 50 caracteres le hizo desplazarse hacia los lados en 1985, pero hoy tenemos monitores más grandes (¡en color ahora también!). He visto a personas mutilar una línea de código acortando los nombres de las variables para que se ajusten al límite, convirtiendo una línea de código perfectamente legible en un lío indescifrable para que encaje dentro del límite.

Personalmente, creo que esas tres reglas juntas han causado más código espagueti basura del que ayudó a crear código legible / comprobable.

LordWabbit
fuente
-1

Creo que no existe tal regla. Siempre pensé que una buena convención no consistiría en más líneas de código en una clase de las que se pueden leer sin desplazarse. 10 líneas no me parece mucho, pero en general es para fines generales y pruebas más fáciles.

to4dy
fuente
5
Para mí, una clase de una página definitivamente no debería ser algo a lo que aspirar también. Es fácil poner reglas para limitar el número de líneas, pero aún necesita poner su lógica de código en alguna parte . También hay un límite en la cantidad de saltos y saltos de funciones / clases que la mente de uno puede mantener unida.
userfuser