Lineamientos para escribir código bonito
Francisco Zavalla & Matías David Lee
Estás leyendo este libro por dos razones. La primera, sos un programador. Y la segunda, es que querés ser un mejor programador. Eso es bueno. Necesitamos mejores programadores.
Introducción
Durante la carrera de Licenciatura en Ciencias de la Computación se estudian diversas áreas que conforman esta disciplina: algoritmos, lógica, matemática, bases de datos, sistemas operativos, ingeniería del software, paradigmas de programación, compiladores, entre otras más específicas. En la mayoría de estas materias, una actividad común es programar. Programar consiste en escribir secuencias de órdenes que una computadora puede ejecutar para realizar una tarea específica. Cuando programamos, obtenemos “programas” y estos los podemos analizar desde múltiples dimensiones: ¿qué hace? ¿cómo lo hace? ¿es claro? ¿es testeable? ¿posee una buena modularización? ¿hay buen acomplamiento entre los módulos? ¿utilizan algún patrón de diseño? ¿es seguro?
Todos estos aspectos son fundamentales para un software de alta calidad, pero durante la formación académica suelen tratarse como elementos complementarios más que como objetivos centrales. Y, como resultado, no existe un momento donde el estudiante pueda aprender estos principios ni mucho menos una fuente de referencia para escribircódigo bonito.
Código Bonito: ¿Por qué este término?
El término código bonito surge de la necesidad de definir el concepto de código claro, prolijo y bien estructurado. Así como en matemática se habla de demostraciones elegantes, donde una solución no solo es correcta sino también comprensible, en programación también se pueden encontrar fragmentos de código que destacan por su simplicidad y legibilidad. Aunque la noción de código bonito puede parecer subjetiva, con el tiempo y la experiencia suficiente se vuelve claro diferenciar un código bonito de uno que no lo es.
Público objetivo
Este trabajo final está dirigido principalmente a estudiantes de carreras de computación y programación, así como a cualquier desarrollador que desee mejorar su código adoptando buenas prácticas que faciliten tanto su escritura como su lectura.
Enseñar a programar es una tarea costosa, tanto en términos económicos como en la dificultad de brindar atención personalizada a cada estudiante. Bajo este contexto, la enseñanza del código limpio y elegante suele quedar relegada, y solo aquellos realmente interesados buscan mejorar por su cuenta. Sin embargo, los libros suelen ser extensos y densos, distribuyendo la información realmente esencial en largos desarrollos teóricos. Es por ello que mediante este documento buscamos facilitar el acceso a información sin vueltas innecesarias.
Objetivo
A lo largo de su carrera, un desarrollador que trabaja en proyectos con impacto en la sociedad se encontrará con una gran variedad de proyectos, tanto propios como ajenos. En esta situación, pasará más tiempo leyendo código que escribiéndolo. Por ello, es fundamental que el código sea fácil de leer. Lamentablemente, muchos desarrolladores simplemente escriben código que funciona (o que creen que funciona), lo que es una muy mala práctica, ya que provoca código dificil de comprender y poco mantenible.
El primer 90 por ciento del código representa el primer 90 por ciento del tiempo de desarrollo. El 10 por ciento restante del código representa el otro 90 por ciento del tiempo de desarrollo.
Estas malas prácticas al momento de escribir código pueden llevar a que los últimos tramos de desarrollo sean los más costosos en tiempo y esfuerzo. Por eso, este trabajo busca servir como una referencia para establecer lineamientos generales que ayuden a escribir código más claro, legible y mantenible. No pretende reemplazar textos académicos ni libros de ingeniería de software, sino ofrecer un punto de partida sobre buenas prácticas en la programación.
El documento se dividirá en una serie de capítulos que abordarán distintos aspectos y etapas del desarrollo, como la sintaxis y semántica de los lenguajes, el diseño de funciones “bonitas”, la documentación del código, su organización, los patrones de diseño y el testing. Cada capítulo, a su vez, contendrá secciones dedicadas a desarrollar los lineamientos y buenas prácticas que nos permitirán mejorar la calidad de nuestro código.
Sintaxis y Semántica
Sintaxis y semántica se complementan para hacer un código funcional. Este capítulo explora cómo una buena elección de nombres y estructura puede hacer que un programa funcione, cuente una historia clara y sea comprensible para otros desarrolladores.
Leer más