3 puntos por GN⁺ 2023-09-17 | 1 comentarios | Compartir por WhatsApp
  • Un artículo que cuestiona la perspectiva presentada en el blog de testing de Google y analiza la legibilidad del código lineal
  • El autor no está de acuerdo con la afirmación del blog de testing de Google de que las funciones que separan niveles de abstracción son más legibles
  • El autor sostiene que el código lineal, que se lee de arriba hacia abajo, es más intuitivo y fácil de entender que el código que va y viene entre distintos niveles de abstracción
  • El autor explica su argumento con el ejemplo de una función para hornear pizza, y plantea la duda de si la función que hornea la pizza calienta el horno o si el horno debe precalentarse de antemano
  • El autor sugiere que la legibilidad del código no proviene de una estructura que separa niveles de abstracción, sino de explicar con claridad qué hace cada parte del código
  • El autor se opone a extraer funciones pequeñas en el código lineal y concluye que, especialmente cuando solo se usan una vez, sus beneficios no compensan la pérdida de linealidad
  • El autor también señala posibles problemas relacionados con la función para hornear pizza, cuestionando por qué se crea un horno nuevo cada vez que se hace una pizza, lo que en código real podría causar problemas de rendimiento
  • El autor propone que el horno debería ser un parámetro de la función, que su provisión debería ser responsabilidad de quien la llama, y que la función debería devolver una caja en lugar de una pizza

1 comentarios

 
GN⁺ 2023-09-17
Opinión de Hacker News
  • La legibilidad del código lineal y del código modular es una cuestión de estilo, y requiere buen criterio y sensibilidad.
  • La abstracción excesiva puede provocar un acoplamiento prematuro del código.
  • Extraer funciones para abstraer unidades de trabajo puede ayudar a organizar el algoritmo, pero debe usarse con cuidado.
  • El código de ejemplo proporcionado es simple y no escala bien. También deben considerarse la reutilización y la posibilidad de hacer pruebas unitarias.
  • Un refactor excesivo puede dificultar más el mantenimiento debido a la necesidad de mover otras partes del código.
  • El código lineal es fácil de leer porque sigue el orden de ejecución, pero escala peor en bases de código grandes.
  • Las funciones concisas con pilas de llamadas profundamente anidadas pueden convertirse en una pesadilla en bases de código grandes.
  • Un buen código lineal es más fácil de leer, pero más difícil de mantener y probar.
  • Es una buena práctica mantener las funciones lo más pequeñas posible y cercanas a un único propósito.
  • La estructura del código debe organizarse según los casos de uso del negocio para que sea fácil de mover.
  • Tanto el código lineal como el modular se leen de forma lineal, pero el orden de las funciones puede afectar la legibilidad.
  • El código real suele ser más complejo, y se necesita una visión general de alto nivel para que el lector no se pierda en los detalles.