La abstracción es esencial para el equilibrio.
El aforismo Zen de Python “lo explícito es mejor que lo implícito” y entendemos que la abstracción sólo ocupa un espacio menor en el desarrollo de software. En esta línea, lo mejor es poner todo en el código para que quede lo más claro posible. Sin embargo, esto parece una simplificación excesiva. De hecho, el siguiente aforismo en la lista del Zen de Python es "lo simple es mejor que lo complejo".
Entonces, ¿cómo conviven los dos? Si expresaras todo, terminarías con un código enorme en el que sería imposible trabajar. Por otro lado, la simplificación excesiva puede llevar a demasiadas suposiciones, lo que puede hacer que el código sea más allá de lo comprensible (excepto para dos individuos: usted y Dios, y a veces ni siquiera usted). Ante este escenario, todo empieza a quedar más claro: simplificar el código es fundamental, pero de la manera correcta. La abstracción es esencial para lograr este equilibrio, siempre y cuando conozcas los mejores contextos para utilizarla.
¿Qué es la abstracción en el desarrollo de software?
Cuando escuchas el término "abstracción", probablemente piensas en algo que no es físico, como una idea. Si bien esto es parte de lo que significa “abstracción” en el mundo del desarrollo, necesitamos agregar algo para entenderlo completamente. Esto tiene que ver con la “abstracción” como acción, es decir, considerar algo desde una perspectiva teórica y separado de otra cosa.
Entonces, si combinamos estas dos partes, es posible obtener una definición más precisa: en el desarrollo de software, la abstracción es una forma de simplificar una idea o acción. Por tanto, la tarea es considerar un elemento de nuestro desarrollo y buscar formas de expresarlo de una manera más sencilla.
Un ejemplo de la vida real sin duda te ayudará a entender esto: cuando escribes (“Hola, mundo”) en la consola, sabes que verás “Hola, mundo”. impreso en la pantalla. Es algo muy básico y por eso es lo primero que aprendes como desarrollador cuando aprendes un nuevo idioma. Pero a pesar de toda su simplicidad, ¿podrías explicar cómo este simple comando termina imprimiendo este mensaje? ¿Cuál es la “magia” que hace que esto suceda?
Lo más probable es que no tengas la respuesta, pero está bien. ¿Por qué querrías saber eso? Sólo necesita saber que si usa la función de impresión, obtendrá un resultado específico (en este caso, "Hola, mundo"). Como tal, este programa es una abstracción. Es una sola línea de código que proporciona el resultado esperado mientras "oculta" su funcionamiento interno. Sólo necesitas saber qué ingresar para anticipar el resultado.
Esta función (todas las funciones, de hecho) oculta toda la complejidad y te permite usarla de una manera más sencilla. Además de las funciones, otras abstracciones son muy comunes en el desarrollo de software: bibliotecas, sistemas de gestión de bases de datos, API REST y más. Sin estas abstracciones, desarrollar software sería una tarea hercúlea porque sería necesario trabajar con líneas de código complejas.
La abstracción como clave para el código simple
Si la abstracción en el desarrollo de software permite a los desarrolladores realizar tareas complejas de manera sencilla, se podría pensar que no hay mucho más que decir: la abstracción simplifica el código. Si bien esto es cierto, es importante entender algo más. La abstracción no es algo que ya se haya hecho: está en constante evolución. En otras palabras, cada vez que codificas, puedes crear tus abstracciones. Y definitivamente deberías hacerlo, porque puede ayudarte a desarrollar mejores aplicaciones y códigos mucho más simples.
¿Por qué? Porque usar abstracciones de la manera correcta hará que el código sea más legible, mantenible y escalable. Esto se hace ocultando los detalles que en última instancia no importan para el uso en cuestión y proporcionando solo las partes que son relevantes para ese contexto específico. En otras palabras, la abstracción significa menos código, lo que a su vez significa un producto más manejable.
No hay nada de qué burlarse, especialmente cuando el software implica miles de líneas de código. Usar abstracciones es útil porque te permite ser más económico con lo que escribes. Lo que es más importante: le permiten liberarse de dependencias estrictas de sus elementos actuales, lo que significa que puede cambiar esos elementos en cualquier momento en el futuro y solo necesita refactorizar la abstracción en sí, no tocar cada línea de código para lo que cambió. .
Entonces, usar abstracciones significa que su código es más simple al ser más corto y legible, pero también significa que será más sencillo de administrar en el futuro. Esto es algo a lo que cualquier desarrollador debería aspirar, ya que todos los productos eventualmente se actualizarán, actualizarán y mantendrán. Las abstracciones hacen que sea más fácil proporcionar una vida útil más larga a cada producto que desarrolle.
Un cambio de mentalidad necesario
La programación moderna implica abstracciones. De hecho, podríamos decir que las aplicaciones modernas se crean sobre un número infinito de abstracciones y nadie podría discutirlo. Por eso es tan esencial que aprendas cuándo usarlos. Esto puede simplificar el trabajo de desarrollo y gestionar la creciente complejidad con una mejor supervisión.
Si ya estás desarrollando productos, ya estás usando abstracciones, incluso si no piensas en ello. Lo que debes hacer ahora es dejar de lado este uso inconsciente y hacer un cambio mental, adoptando las abstracciones como una herramienta más en tu conjunto. Al hacer esto, podrá identificar mejores casos en los que las abstracciones pueden marcar la diferencia, creando así mejores productos y aumentando su productividad.