Arduino y frambuesa pi principiante? Aquí se explica cómo escribir código limpio

Cuando se empieza a leer más y más sobre el desarrollo de software, que con frecuencia se encuentra con la frase “código limpio”. En su forma más pura, esto es código que es fácil para otras personas a leer. Es expresivo y hermoso, y se puede discernir fácilmente su intención simplemente mirarlo.

Escribir código limpio es más fácil de decir que de hacer.

Si usted es un Arduino chapista, o usted está construyendo frambuesa Pi aplicaciones con Python, o eres un desarrollador web, incluso, hay algunos consejos útiles a seguir que va a hacer el código más fácil de leer por otros. Esto es lo que necesita saber.Primeros pasos con Arduino: una guía para principiantesPrimeros pasos con Arduino: una guía para principiantesArduino es una plataforma electrónica de prototipos de código abierto basado en flexible y fácil de usar hardware y software. Está pensado para artistas, diseñadores, aficionados y cualquier persona interesada en la creación de objetos interactivos o ambientes.Lee mas

Se consistente

Tal vez la primera, y más obvia punta, es estar consistente en lo que haces. Un buen ejemplo de esto está siguiendo los mismos patrones al nombrar funciones y las variables. Debe elegir una convención de nombres, y aferrarse a él.

Entonces, ¿qué convención de nomenclatura se debe utilizar?

Bueno, si usted está escribiendo Python para Raspberry Pi, la respuesta es clara. El estándar PEP-8 (el barómetro para un buen código Python, limpio) dice que los nombres de variables deben estar en minúsculas, con cada palabra separados por un guión. Por ejemplo: gpio_input y moisture_sensor_reading.

Vídeo: Comparing the Arduino Uno and Raspberry Pi | AddOhms #7

cleancode-Arduino

La guía de estilo Arduino establece implícitamente que usted debe escribir sus variables en lo que se conoce como Camel Case. Aquí, las palabras no están separadas por nada, pero la primera letra de cada palabra está en mayúsculas, a excepción de la primera palabra. Por ejemplo: buttonPressed y temperatureReading.

Hay, por supuesto, otros estilos de la variable de nombres. Lo anterior es simplemente que es recomendado por las guías oficiales de estilo. Pero lo que usted elija, asegúrese de que usted se pega por él, y utiliza la misma convención de nombres a través de su programa.

Escribe significativas Comentarios

Los comentarios son una gran manera de explicar lo que hace su programa. Puede establecer lo que cada función y cada variable representa en sus propias palabras. Esto hace que sea fácil para un tercero para leer el código, sino que también hace que el código sea más fácil de mantener, ya que en última instancia lo entienda mejor.

Pero si usted no escribe sus comentarios en una manera que es obvio, y expresivo, entonces puede que no tan bien molesta.

Al escribir los comentarios, debe tratar de explicar el por qué del código, además de la forma. Tratar de hacer el intento muy claro, y decir algo sobre el código que no se puede decir que sí. Así, en lugar de:

Vídeo: MQTT tutorial on Raspberry pi, Arduino and Python

// lectura de actualización

Considere la escritura:

// Actualizar el número de veces que el rayo láser se ha roto, antes de twittear a cabo

Asegúrese de escribir en oraciones completas y gramaticalmente correctas. Además, el estándar PEP-8 para Python dice que siempre se debe escribir sus comentarios y variables en Inglés. Esto hace que sea más fácil para que otros puedan colaborar con usted, si usted decide liberar su código como código abierto, como Inglés es más o menos la lengua franca de desarrollo de software.

La guía de estilo Arduino va más allá, y dice que se debe comentar cada bloque de código, cada bucle, y cada declaración de variables.

En lo personal, creo que es un poco extremo. Si va a escribir los nombres de variables detallados y expresivos, entonces su código ya es autodocumentado. Dicho esto, no dude en agregar comentarios donde cree que son necesarios. Utilice su propio buen juicio.

Simplificar el código

Cuando estás aprendiendo a desarrollar por primera vez, que a menudo está lleno de una inmensa oleada de entusiasmo. Usted lee todo lo que pueda acerca de su lenguaje, marco, o la plataforma elegida. Se empieza encontrarse con conceptos que no sabía antes, y ya está todo demasiado dispuestos a utilizarlos en su propio código.Cómo aprender programación sin todo el estrésCómo aprender programación sin todo el estrésTal vez usted ha decidido llevar a cabo la programación, ya sea para una carrera o simplemente como un hobby. ¡Estupendo! Pero tal vez usted está comenzando a sentirse abrumado. No muy bien. Aquí está la ayuda para facilitar su viaje.Lee mas

Cosas como los operadores ternarios, que le permiten condensar la lógica de un “if” como este:

int x = 5-Si ( x lt; 10) {y = 1-{ más {y = 0-}

En una sola línea, como este:

int x = 5-int y = (x lt; 10) ? 1 : 0-printf("%en", y)-

operadores ternarios son ciertamente atractivas, y os animo a leer sobre ellos. Pero cuando estás escribiendo código que es fácil para que otros lo lean, que están mejor evitar. Eso es sólo un ejemplo, sin embargo.

La guía de estilo Arduino también anima a evitar punteros, declaraciones #define, y otros tipos de datos que el estándar: boolean, char, byte, int, unsigned int, largo, largo sin signo, float, double, string, array y sin efecto. Debe evitar los tipos de datos como uint8_t, ya que estos se utilizan con menos frecuencia, no se explica en la documentación, y no es terriblemente escueta.

Guión, y aprovechar los espacios en blanco

Cuando se trata de escribir código limpio, los usuarios de Python tienen una ventaja, ya que los mandatos de interpretación estándar de Python que todo el código debe ser sensiblemente estructurado y con sangría. Si no sangrar después de cada función y la declaración de la clase, y la sentencia condicional, el programa simplemente no se ejecutará.

Vídeo: Raspberry Pi + Arduino = Domotica asequible

cleancode-pitón

En Arduino, no hay nada que le para de escribir código estructurado, compactado. Esto, en última instancia, es difícil de leer y difícil de mantener.

Pero no hay nada que le para de estructurar su código mejor, tampoco.

En primer lugar, establecer la cantidad que va a sangrar por. Se debe utilizar la tecla de tabulación con prudencia, ya que cada editor de texto trata el código ASCII para la lengüeta de manera diferente, y si va a compartir su código con otra persona, existe la posibilidad de que pueden introducir inadvertidamente inconsistencias en su hendidura. Estas inconsistencias pueden romper su programa, sobre todo si estás usando un lenguaje sensible a los espacios en blanco como CoffeeScript o Python. Este artículo de OpenSourceHacker explica en más detalle por qué la tecla de tabulación debe ser evitado.Es CoffeeScript javascript sin los dolores de cabezaEs CoffeeScript javascript sin los dolores de cabezaNunca me ha gustado escribir javascript todo lo que mucho. Desde el día en que escribí mi primera línea de usarlo, siempre he resentido de que todo lo que escribo en ella siempre termina pareciéndose a un Jackson ...Lee mas

cleancode-tab

Yo tiendo a usar cuatro espacios para cada guión, pero el número total es de usted. Con tal de que eres consistente.

Puede configurar el IDE y editor de texto para el tratamiento de cada pestaña como un número determinado de espacios, sin embargo, que le permite utilizar la tecla de tabulación y sin el riesgo de introducir problemas. Si utiliza Sublime Text 2, echa un vistazo a su documentación oficial. Si utiliza Vim, simplemente editar su .vimrc presentar con estas líneas. El editor de Arduino hace automáticamente para usted, e inserta dos espacios cada vez que presiona el tabulador.

A continuación, sólo hay que saber dónde se va a sangrar el código. Como buena regla general, siempre se debe guión después de cada declaración de la función, y después de cada Si, más, para, mientras, cambiar, y caso declaración.

Muchos editores vienen con la capacidad para sangrar bloques enteros de código a la vez. Si utiliza Sublime Text 2, se puede configurar una tecla de acceso directo o combinación de teclas. De lo contrario, puede utilizar la combinación predeterminada, que (en OS X) es Cmd + [. En el editor de Arduino, puede corregir la sangría de su archivo automáticamente pulsando Ctrl + T en Windows y Linux, y Cmd + T en OS X.

Depende por completo de su editor, por lo leer el manual!

No te repitas

Uno de los mantras más importantes de un buen desarrollo de software es No te repitas, que a menudo se acorta a SECO.

Vídeo: TFT-экраны для Arduino и Raspberry Pi. Железки Амперки #29

Escribir código DRY es muy importante, ya que garantiza que la lógica de su programa es consistente, le permite hacer un cambio en su lugar y, una vez que se reflejara en todo el mundo, y que pase menos tiempo a escribir lo mismo una y otra vez.

La mejor manera de permanecer seco es con un uso liberal y generosa de funciones - encapsular una tarea repetida con un bloque de código se puede llamar una y otra vez - y asegurar que cada uno es distinto y bien escrito.

cleancode-seca

Una buena función se corto la guía de PEP-8 dice poco acerca de la duración función, sino un código limpio: un manual de software ágil Artesanía de Bob Martin (muy recomendable) dice que “las funciones deben ser casi nunca 20 líneas de largo”. Preferiblemente, estarían incluso más corto que el.

Las funciones también deben hacer exactamente una cosa. Necesidad de una función que hace dos cosas? Escribir dos funciones.

Estos consejos hacen que sea fácil de seguir el flujo de un programa, y ​​en última instancia, a depurarlo si es necesario. También hay un beneficio adicional para los usuarios de Arduino, que están fuertemente restringido por limitaciones de almacenamiento, ya que se eliminan las redundancias. Esto se traduce en programas más pequeños.

sea ​​explícito

Otro mantra importante de desarrollo de software es “Explícito es mejor que implícito”. Esto significa que el código debe gritar más o menos lo que está haciendo en la primera vista. La guía de estilo Arduino dice que algo como esto se debe evitar:

Si(buttonPressed){hacer algo()-}

Más bien, se debe hacer obvio lo que está pasando. En su lugar, escribir algo como esto:

Si (buttonPressed == Cierto){hacer algo()-}

Salir y Código (Bueno)

Escribir código limpio es sorprendentemente simple. Usted sólo tiene que ser consistente en todo lo que haces, evitar redundancias, y ser explícito. Recuerde, código limpio es simplemente código que es legible.

Hay un montón de gran material de lectura sobre este tema. Un buen punto de partida es tutoriales y guías de estilo API Arduino, seguido por la norma PEP-8 si usted está construyendo aplicaciones Python para la Frambuesa Pi. Si está utilizando otro idioma (como javascript en el tablero Tessel), Comprobar en Google de un guía oficial estilo.La construcción de la Internet de las cosas, con Tessel: La Junta de Desarrollo Node.jsLa construcción de la Internet de las cosas, con Tessel: La Junta de Desarrollo Node.jsTessel es un nuevo tipo de tarjeta de desarrollo que se ejecuta por completo en Node.js, y después de un pedal de arranque con éxito, han alcanzado ahora el punto de estar disponible para todos.Lee mas

Si usted está buscando una lectura más académica sobre el tema, echa un vistazo a un código limpio: un manual de software ágil Artesanía de Bob Martin. Lo mencioné al principio de este artículo, y está altamente recomendado. A pesar de que utiliza Java para ilustrar los conceptos, muchas de las ideas se pueden transmitir a otros idiomas, como Python y C para Arduino.

También hay algunas entradas de blog brillantes en línea que ilustran cómo escribir un buen código descriptiva, y limpio. Te recomiendo que echa un vistazo a “Limpio, código de alta calidad: una guía sobre cómo llegar a ser un mejor programador” por Arash Arabi escribir para butterfly.com.au, y “Los Fundamentos de escribir código limpio” por Chris Reynolds, escribiendo para webdevstudios. com.

Aunque no explícitamente relacionados con la limpieza de código, también es útil para conocer qué funciones y bibliotecas se evitan mejor en su idioma de su elección. Por ejemplo, si estás aprendiendo PHP, se debe evitar las bibliotecas “MySQL”, y si usted está construyendo productos físicos con Arduino, debe Nunca utilizar la función Delay.Función Arduino retardo, y por qué no se debe utilizarFunción Arduino retardo, y por qué no se debe utilizarMientras retardo () es útil para demostraciones básicos de cómo funciona Arduino, que realmente no debería estar utilizando en el mundo real. He aquí por qué, y lo que debe utilizar en su lugar.Lee mas

Recuerde, el código que es más fácil de leer es más fácil de mantener. Además, si alguna vez se queden con algo, es más fácil que alguien lo leyó y le ayude.

¿Tiene algún consejo para escribir código limpio? ¿Yo me perdí algo? ¡Dime! Déjame un comentario más abajo, y quiero saber.

Créditos de las fotografías: Cama seca (Premasagar), Little tecla TAB (Kai Hendry), 2015 (Wikilogia)

Artículos Relacionados