La complejidad ciclomática es un buen comienzo.
Hay 2 versiones diferentes, pero cualquiera de las dos te ayudará.
Es una medida del número de rutas a través de una función.
- ¿Cuál es el algoritmo de Apache Hadoop?
- ¿Es posible predecir los códigos de verificación para sitios como Facebook y Gmail usando Machine Learning?
- Si estudié modelado matemático financiero avanzado en la universidad con un coeficiente intelectual de 145, ¿con qué probabilidad podría construir un algoritmo HFT rentable?
- ¿Debo comenzar a aprender algoritmos y estructura de datos si solo tengo algunos conocimientos básicos de programación Java?
- ¿Cómo se creó el 'algoritmo' de la evolución biológica?
Complejidad ciclomática – Wikipedia
Una guía “general” es “no vaya más allá de 10”. Pero obviamente esto se puede renunciar en ciertas circunstancias.
UNA
Switch (someVariable) {…}
Es mejor que un montón de sentencias if anidadas, por lo general. He visto valores en los bajos cientos que tenían sentido. Podría dividirse en varias funciones, pero esto probablemente no tiene sentido.
Pero su utilidad no termina ahí. También es una indicación de cuánto esfuerzo de prueba se necesita para cubrir cada ruta (nota: es solo una medida. Necesita otros para estimar adecuadamente el esfuerzo de prueba).
Cuando se aplica al código a nivel de función, funciona bien como una medida, cuando se mueve al nivel de componente, necesitará otras medidas, como entrada / salida de ventilador
Hay un artículo bastante bueno aquí.
Complejidad de software
Espero que esto ayude.