¡No le tenga miedo a las funciones de 1 línea!
Muchos programadores parecen tener un bloqueo mental de funciones de 1 línea, no debería.
Si hace que el código sea más claro y más limpio, extraiga la línea en una función.
El rendimiento probablemente no se verá afectado.
Cualquier compilador decente realizado en la última década (y tal vez más) alineará automáticamente una simple función de 1 línea. Además, una línea de C puede corresponder fácilmente a muchas líneas de código de máquina. No debe suponer que incluso en el caso teórico en el que incurre en la sobrecarga total de una llamada a una función, esta sobrecarga es significativa en comparación con su "pequeña línea". Deje que sea significativo para el rendimiento general de su aplicación.
Abstraction Leads to Better Design. (incluso para líneas simples de código)
Las funciones son los componentes principales del código abstracto y compuesto, no deben descuidarse. Si encapsula una sola línea de código detrás de una llamada de función hace que el código sea más legible, hágalo. Incluso en el caso donde la función se llama una vez. Si le parece importante comentar una línea particular de código, es un buen olor a código que podría ser útil mover el código a una función bien nombrada.
Claro, ese código puede ser de 1 línea hoy, pero ¿cuántas formas diferentes de realizar la misma función existen? El código encapsulado dentro de una función puede hacer que sea más fácil ver todas las opciones de diseño disponibles para usted. Tal vez su código de 1 línea se expande en una llamada a un servicio web, tal vez se convierta en una consulta de base de datos, tal vez se vuelva configurable (usando el patrón de estrategia, por ejemplo), quizás quiera cambiar al almacenamiento en caché del valor calculado por su 1- línea. Todas estas opciones son más fáciles de implementar y se tienen más en cuenta cuando se extrae el código de 1 línea en su propia función.
Tal vez su 1 línea debería ser más líneas.
Si tiene un gran bloque de código, puede ser tentador incorporar una gran cantidad de funcionalidades en una sola línea, solo para guardar en pantalla. Cuando migra este código a una función, reduce estas presiones, lo que puede hacer que esté más inclinado a expandir su complejo 1-liner en un código más directo que ocupe varias líneas (lo que probablemente mejore su legibilidad y capacidad de mantenimiento).
¿Estás preocupado por la sobrecarga de llamadas, pero luego llamas a pow para elevar 2 a la potencia de un entero pequeño? ;-p –
¿Cuál podría ser una mejor manera de hacerlo? Me gustaría saber. –
2^x es lo mismo que 2 << x si x es un número entero –