Si tú, al igual que muchos desarrolladores, tienes como libro de cabecera Código Limpio, de Robert Cecil Martin (Tío Bob), sabes que el concepto de "clean code" es amplio y que muchos expertos tienen sus propias definiciones e incluso discrepan entre sí. El autor cita a Grady Booch, un científico jefe de ingeniería de software de IBM Research, por considerar que: "El código limpio es simple y sencillo. Un código limpio se lee como una prosa bien escrita. El código limpio nunca oscurece la intención del diseñador, sino que se completa con abstracciones nítidas y líneas de control sencillas". Por su parte, Michael Feathers, autor de Working Effectively with Legacy Code, considera a la palabra "cuidado" como elemento central del código limpio.
A pesar de las diferentes definiciones, es posible unir los distintos significados y decir que el clean code consiste en aplicar ciertas técnicas para facilitar la escritura y la lectura de un código. Esto se debe a que un software o sistema nunca está completamente terminado, sino que siempre sufrirá actualizaciones y recibirá nuevas características, lo que hace que sea importante que esté lo más limpio posible.
Hay que entender que cuando se produce un software para una empresa, la propia empresa sufrirá cambios. Los requisitos del negocio cambian, las necesidades de los usuarios también y eventualmente el código que escribiste tendrá que evolucionar. Así, otra persona tendrá que leer tu código, entenderlo y cambiarlo o incluso arreglarlo. Un código limpio presupone la escritura de un código de alta legibilidad, lo que conduce a una buena capacidad de mantenimiento. Siguiendo el libro del Tío Bob (en traducción libre): "Si has sido programador durante más de dos o tres años, probablemente te hayas visto frenado por un código desordenado. El grado de ralentización puede ser importante. [...] Con el tiempo, el desorden se vuelve tan grande, profundo y ruidoso, que no se puede limpiar".
Desde su primera versión, CSS ha transformado la forma en que los diseñadores y desarrolladores presentan los sitios web. Si echamos la vista atrás, CSS3 fue un punto de inflexión ya que introdujo muchas de las funcionalidades que hoy consideramos imprescindibles, como las transiciones, animaciones y el diseño responsivo a través de media queries.
CSS3 permitió que los sitios web se volvieran mucho más dinámicos y visualmente atractivos. Aportó las herramientas necesarias para diseñar experiencias más ricas sin la necesidad de plugins adicionales como Flash. La llegada de CSS4 y CSS5. Tras años de evolución constante pero fragmentada, CSS4 y CSS5 aparecen en el horizonte con el objetivo de consolidar y estandarizar las progresivas mejoras en la tecnología CSS.
Cuando hablamos de CSS4 o CSS5 no nos referimos a una mega actualización como fue el salto de CSS2 a CSS3, sino más bien a un esfuerzo por organizar una serie de propiedades y características que ya venían siendo adoptadas y otras que están por llegar. Nuevas características en CSS4. Media Queries de Range. Display Flex y Flex Basis. Gradientes y Grids mejorados. Propiedades lógicas para facilitar diseño internacional. Avances específicos en CSS5. Soporte para subgrid en Grid Layout. Nuevas reglas de animación. Gestión avanzada de colores y temas con accent-color. Impacto en el Desarrollo Web. Con cada nueva versión de CSS, nos acercamos más a un mundo donde el diseño y la funcionalidad van de la mano sin sacrificar rendimiento. Beneficios de la agrupación de propiedades. Organizar las características en «versiones» como CSS4 y CSS5 es más que una nomenclatura; es una forma de estandarizar soportes y facilitar la compatibilidad hacia adelante.
Media Queries de Range. Display Flex y Flex Basis. Gradientes y Grids mejorados. Propiedades lógicas para facilitar diseño internacional. Avances específicos en CSS5. Soporte para subgrid en Grid Layout. Nuevas reglas de animación. Gestión avanzada de colores y temas con accent-color. Impacto en el Desarrollo Web. Con cada nueva versión de CSS, nos acercamos más a un mundo donde el diseño y la funcionalidad van de la mano sin sacrificar rendimiento.
Organizar las características en «versiones» como CSS4 y CSS5 es más que una nomenclatura; es una forma de estandarizar soportes y facilitar la compatibilidad hacia adelante.