Trabajo en una gran cantidad de código que está lleno de lógica empresarial en constante evolución y necesita ser modificado día por medio. Dos consejos que sin duda me ayudaron a seguir el ritmo de las modificaciones son: evite todas las afirmaciones y vuelva/salga lo antes posible. Nunca entre en anidamiento profundo -> cree subrutas/funciones.
Sustitución de todos los else con negada si las declaraciones que hace el código mucho más fácil de leer de arriba a abajo (la proximidad de la condtion de y el bloque de código):
# business logic block
if ($condition) {
# do something
# code code code
} else {
# code code code
return;
}
# refactored:
if (! $contition) {
# code code code
return;
}
if ($condition) {
# code code code
}
En segundo lugar, el retorno/salida tan pronto como sea posible . Mi opinión, por supuesto, pero no veo el sentido de ejecutar ninguna condición/prueba adicional una vez que ya haya determinado el resultado de la subrutina, especialmente cuando le gustaría leer el código de arriba a abajo. Eliminar toda ambigüedad hace las cosas más simples.
Para concluir, me gusta evitar usar else especialmente en largas listas de BL. Regrese tan pronto como sepa el resultado. Si el nivel de anidamiento es mayor que 2, cree subrutas/funciones.
+1 ¡Esto es muy importante ya que puede reducir el tamaño de su archivo en varios KB! – Xeoncross
+1 También se aplica para continuar, romper, lanzar.A menudo puede mantener baja la complejidad cíclica de esa manera y así hacer que el código sea más legible. – NikiC
También, personalmente, usaría 'return userIsLoggedIn() && is_array ($ param) && $ param ['count']> 0;' aquí. Es breve y conciso. – NikiC