Código de estilo rubí: competente, bello y eficiente. Ejemplo para principiantes

imagen

Esta es una traducción de la publicación de Michael McKee. Michael es un programador profesional que de vez en cuando comparte su experiencia y habilidades con colegas, tanto codificadores novatos como profesionales.

La mayoría de los programadores son los últimos en pensar en la estética del código que crean. Por supuesto, casi todos se adhieren a las reglas generales. Pero, ¿y si vamos más allá? Un buen código debería funcionar en primer lugar. Pero creo que debería tener su propio estilo, esto se aplica no solo al contenido, sino también a la forma.

Skillbox recomienda: Curso anual práctico "Desarrollador PHP desde cero a PRO" .
Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".

Este no es realmente el caso. Estos son algunos de los problemas que enfrentan todos los programadores autodidactas novatos. Hay toneladas de artículos y notas sobre esto, pero quiero decirte cómo diseñar el código visualmente para que no solo sea correcto, sino que también se vea bien desde el exterior. Creo que la autoexpresión es posible no solo en las artes visuales, sino que se puede hacer siempre y en todas partes.

La organización del trabajo, así como su forma visual, es muy importante para mí. Ruby es una gran opción para un lenguaje de programación, como si estuviera hecho especialmente para cumplir con mis requisitos, porque nos permite hacer lo que queremos sin ningún problema. Es flexible, elegante y lógico.

Veamos este ejemplo.



Incluso un programador novato comprenderá lo que está mal aquí. Es doloroso mirar este código. Pero la versión corregida, que ya se ve mejor.



Uf! Mucho mejor Ahora vemos a qué pertenece y cómo. Pero este código se puede mejorar. La declaración de attr_reader y attr_accessor puede hacerse aún más expresiva.



Declarar cada nuevo atributo con una nueva línea es mucho más fácil de leer. Ahora tenemos una lista de atributos que se asignan a cada descriptor de acceso. Puedes ir más allá.



Aquí ya es fácil entender dónde solo existe la posibilidad de leer, dónde, tanto leer como escribir.

Veamos ahora la siguiente parte de esta clase: el método de inicialización. Puedes hacer muchas cosas aquí.



En principio, leemos el código, todo parece estar bien. Pero puedes hacerlo mejor.



Si coloca todos los operadores de asignación en una columna, resulta bastante bien. Mirando este código, es fácil decir qué, cómo y por qué funcionará.

Veamos cómo se verá ahora todo el artículo de factura.



Ahora tenemos una clase que es fácil de leer y comprender de un vistazo. Las asignaciones son fáciles de seleccionar, los accesores de atributos son fáciles de usar.

¿Qué otras opciones de optimización hay para nuestro código? En la mayoría de los casos, al comienzo de la programación de aprendizaje, las pruebas de escritura pueden causar problemas debido a la falta de conocimiento. Se pierde tiempo creando datos falsos. Esto no es terrible, pero en muchos casos conduce a la creación de grandes conjuntos de texto difícil de leer. Miremos esto.



Oh maldita sea. Aquí, al principio, se crea un nuevo repositorio para almacenar clases de transacciones. Hay tres de ellos, cada uno se usa para pruebas, cayendo en un hash para su uso posterior. Además, la clase que vamos a crear requiere muchos atributos. Cada uno de ellos tiene un nombre y un significado bastante largos. ¿Qué se puede mejorar para que el código se vea bien?

Todo es simple



Rompimos cada uno de estos hashes con saltos de línea con cada nueva declaración de valor. Además, se utilizó el mismo método que en la optimización de InvoiceTeam. Ahora en el editor puede ver fácilmente todos los datos de prueba en un campo de visión bastante estrecho. Podemos ver los valores de las claves. Si es necesario, se pueden cambiar sin desplazarse hacia adelante y hacia atrás.

Se puede usar una estrategia similar cuando trabajamos con una gran cantidad de atributos.



En este caso, no vemos la estructura completa del código, al menos en el área de visualización actual. Para ver los atributos, debe desplazarse constantemente, lo cual no es demasiado conveniente. Vamos a arreglarlo de la misma manera que lo hicimos anteriormente, en el ejemplo de hash.



Leímos el nuevo código, y mucho más amigable con los humanos, si puedo decirlo. Vemos claramente todos los atributos y tareas. Posible depuración es cada vez más fácil. Algo puede salir mal, y luego descubrir qué y por qué no funciona será difícil si no lleva el código a una apariencia "bonita".

Cuando escribimos programas, no debemos olvidar: es importante no solo que funcionen correctamente, sino también que el principio de su funcionamiento sea claro para los colegas, si es necesario. El código debe ser lógico, dividido en párrafos, oraciones y secciones estructurales.

Bueno y al final, mi ejemplo favorito para Ruby. Miremoslo.



Tomemos cada elemento de los animales y apliquemos el método de capitalización. Se ve bien, pero aún mejor es que el código se puede acortar un poco y hacerlo más legible para los humanos.



Un método similar funciona en muchos casos y recomiendo usarlo siempre que sea posible.

En general, el artículo se puede llamar trivial, pero le da al principiante la oportunidad de comprender la belleza del código. Es decir, el código en sí mismo no solo debería funcionar, sino también ser comprensible, incluso si el programa está escrito solo para usted. Si desarrolla el hábito de crear un código hermoso y funcional, puede ayudar a su crecimiento profesional.

Skillbox recomienda:

Source: https://habr.com/ru/post/es424337/


All Articles