Arduino y Raspberry Pi Principiante? Aquí está cómo escribir código limpio

  • Mark Lucas
  • 0
  • 4108
  • 1218
Anuncio

Cuando comienzas y más sobre el desarrollo de software, con frecuencia te encuentras con la frase “código limpio”. En su forma más pura, este es un código que es fácil de leer para otras personas. Es expresivo y hermoso, y puedes discernir fácilmente su intención simplemente mirándolo.

Escribir código limpio es más fácil decirlo que hacerlo.

Ya sea que sea un Arduino Introducción a Arduino: una guía para principiantes Introducción a Arduino: una guía para principiantes Arduino es una plataforma de creación de prototipos de electrónica de código abierto basada en hardware y software flexible y fácil de usar. Está destinado a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. tinkerer, o estás construyendo Raspberry Pi Raspberry Pi: el tutorial no oficial Raspberry Pi: el tutorial no oficial Si eres un propietario actual de Pi que quiere aprender más o un propietario potencial de este dispositivo del tamaño de una tarjeta de crédito, esto no es Una guía que quieres perderte. aplicaciones con Python, o incluso si es un desarrollador web, hay algunos consejos útiles a seguir que harán que su código sea más fácil de leer para otros.. Esto es lo que necesitas saber.

Se consistente

Quizás el primer consejo, y el más obvio, sea ser consistente en lo que haces Un buen ejemplo de esto es seguir los mismos patrones cuando se nombran las funciones. Los fundamentos absolutos de la programación para principiantes (Parte 2) Los fundamentos absolutos de la programación para principiantes (Parte 2) En la parte 2 de nuestra guía absoluta de programación para principiantes, estaré cubriendo los conceptos básicos de funciones, valores de retorno, bucles y condicionales. Asegúrese de haber leído la parte 1 antes de abordar esto, donde expliqué los ... y las variables Conceptos básicos de la programación informática 101 - Variables y tipos de datos Conceptos básicos de la programación informática 101 - Variables y tipos de datos Habiendo introducido y hablado un poco sobre la programación orientada a objetos antes y de dónde viene su homónimo, pensé que es hora de que repasemos los conceptos básicos absolutos de la programación de una manera no específica del lenguaje. Esta… . Debes elegir una convención de nomenclatura y seguirla.

Entonces, ¿qué convención de nomenclatura deberías usar??

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

La guía de estilo Arduino indica implícitamente que 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úscula, excepto la primera palabra. Por ejemplo: botón presionado y temperatura de lectura.

Hay, por supuesto, otros estilos de nombres variables. Lo anterior es simplemente recomendado por las guías de estilo oficiales. Pero, sea lo que sea que elija, asegúrese de cumplirlo y utilice la misma convención de nomenclatura en todo el programa..

Escribir comentarios significativos

Los comentarios son una excelente manera de explicar lo que hace su programa. Puede indicar lo que hace cada función y cada variable representa en sus propias palabras. Esto facilita que un tercero lea su código, pero también hace que su código sea más fácil de mantener, ya que finalmente lo comprende mejor.

Pero si no escribe sus comentarios de una manera que sea obvia y expresiva, entonces es mejor que no se moleste.

Al escribir comentarios, debe intentar explicar el por qué del código, además del cómo. Intente dejar la intención muy clara y diga algo sobre el código que no pueda decir por sí mismo. Entonces, en lugar de:

// actualización de lectura

Considera escribir:

// Actualice el número de veces que se ha roto el rayo láser, antes de twittearlo

Asegúrese de escribir oraciones completas y gramaticalmente correctas. Además, el estándar PEP-8 para Python dice que siempre debe escribir sus comentarios y variables en inglés. Esto hace que sea más fácil para otros colaborar con usted, en caso de que decida lanzar su código como código abierto, ya que el inglés es prácticamente la lengua franca del desarrollo de software..

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

Personalmente, creo que es un poco extremo. Si está escribiendo nombres de variables verbosos y expresivos, entonces su código ya está autodocumentado. Dicho esto, no dudes en agregar comentarios donde creas que son necesarios. Usa tu propio buen juicio.

Simplifica tu código

Cuando está aprendiendo a desarrollar por primera vez Cómo aprender a programar sin todo el estrés Cómo aprender a programar sin todo el estrés Tal vez haya decidido dedicarse a la programación, ya sea para una carrera o simplemente como un pasatiempo. ¡Excelente! Pero tal vez estés empezando a sentirte abrumado. No muy bien. Aquí hay ayuda para facilitar su viaje. , a menudo estás lleno de una inmensa oleada de entusiasmo. Usted lee todo lo que puede sobre el idioma, el marco o la plataforma elegidos. Empiezas a encontrar conceptos que nunca antes conociste, y estás ansioso por usarlos en tu propio código..

Cosas como operadores ternarios, que le permiten condensar la lógica de un “si la declaración” como este:

 int x = 5; si (x < 10)  y = 1;  else  y = 0;  

En una sola línea, así:

int x = 5; int y = (x < 10) ? 1 : 0; printf("%i\n", y); 

Los operadores ternarios son ciertamente geniales, y te animo a que los leas. Pero cuando escribes código que es fácil de leer para otros, es mejor evitarlo. Sin embargo, ese es solo un ejemplo.

La guía de estilo Arduino también lo alienta a evitar punteros, #definir declaraciones y tipos de datos que no sean el estándar: boolean, char, byte, int, unsigned int, long, unsigned long, float, double, string, array and void. Debe evitar tipos de datos como uint8_t, ya que estos se usan con menos frecuencia, no se explican en la documentación y no son terriblemente concisos.

Sangría y aprovecha el espacio en blanco

Cuando se trata de escribir código limpio, los usuarios de Python tienen una ventaja, ya que el intérprete estándar de Python exige que todo el código debe estar sensiblemente estructurado y sangrado. Si no aplica sangría después de cada declaración de función y clase, y declaración condicional, su programa simplemente no se ejecutará.

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

Pero tampoco hay nada que te impida estructurar mejor tu código.

Primero, establece cuánto vas a sangrar. Debe usar la tecla de tabulación juiciosamente, ya que cada editor de texto trata el código ASCII para tab de manera diferente, y si comparte su código con otra persona, existe la posibilidad de que inadvertidamente puedan introducir inconsistencias en su sangría. Estas inconsistencias pueden romper su programa, especialmente si está utilizando un lenguaje sensible a espacios en blanco como CoffeeScript CoffeeScript es JavaScript sin dolores de cabeza CoffeeScript es JavaScript sin dolores de cabeza Nunca me ha gustado tanto escribir JavaScript. Desde el día que escribí mi primera línea usándola, siempre me ha molestado que todo lo que escribo siempre parezca un Jackson ... o Python. Este artículo de OpenSourceHacker explica con más detalle por qué se debe evitar la tecla de tabulación.

Tiendo a usar cuatro espacios para cada sangría, pero el número general depende de usted. Siempre y cuando seas consistente.

Sin embargo, puede configurar su IDE y editor de texto para tratar cada pestaña como un número determinado de espacios, lo que le permite usar la tecla de pestaña sin el riesgo de presentar problemas. Si usa Sublime Text 2, consulte su documentación oficial. Si usa Vim, simplemente edite su .vimrc archivo con estas líneas. El editor Arduino lo hace automáticamente por usted e inserta dos espacios cada vez que presiona tabulador.

Entonces, simplemente necesita saber dónde sangrar su código. Como buena regla general, siempre debe sangrar después de cada declaración de función y después de cada Si, más, para, mientras, cambiar, y caso declaración.

Muchos editores tienen la capacidad de sangrar bloques enteros de código a la vez. Si usa Sublime Text 2, puede configurar una combinación de teclas de acceso rápido o pulsación de tecla. De lo contrario, puede usar la combinación predeterminada, que (en OS X) es Cmd + [. En el editor Arduino, puede corregir la sangría de su archivo automáticamente presionando Ctrl + T en Windows y Linux, y Cmd + T en OS X.

Depende completamente de tu editor, así que lee el manual!

No te repitas

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

Escribir código DRY es increíblemente importante, ya que garantiza que la lógica de su programa sea coherente, le permite hacer un cambio de una vez y hacer que se refleje globalmente, y pasa menos tiempo escribiendo lo mismo una y otra vez.

La mejor manera de mantenerse SECO es con un uso generoso y generoso de funciones - encapsulando una tarea repetida con un bloque de código al que puede llamar una y otra vez, y asegurándose de que cada uno sea distinto y esté bien escrito.

Una buena función es corta; la guía PEP-8 dice poco sobre la duración de la función, pero Clean Code: A Handbook of Agile Software Craftsmanship por Bob Martin (muy recomendado) dice que “las funciones casi nunca deben tener 20 líneas de largo”. Preferiblemente, serían incluso más corto que eso.

Las funciones también deberían hacer exactamente una cosa. Necesita una función que haga dos cosas? Escribe dos funciones.

Estos consejos hacen que sea fácil seguir el flujo de un programa y finalmente depurarlo si es necesario. También hay un beneficio adicional para los usuarios de Arduino, que están fuertemente restringidos por las limitaciones de almacenamiento, ya que se eliminan las redundancias. Esto da como resultado programas más pequeños..

Ser explícito

Otro mantra importante del desarrollo de software es “explícito es mejor que implícito”. Significa que su código debería gritar lo que está haciendo a primera vista. La guía de estilo Arduino dice que algo así debería evitarse:

if (botón presionado) doSomething ();  

Más bien, debes dejar en claro lo que está sucediendo. En cambio, escribe algo como esto:

if (buttonPressed == True) doSomething ();  

Salir y codificar (Bueno)

Escribir código limpio es sorprendentemente simple. Simplemente tiene que ser coherente en todo lo que hace, evitar redundancias y ser explícito. Recuerde, el código limpio es simplemente un código legible.

Hay mucho material de lectura excelente sobre este tema. Un excelente punto de partida es el tutorial de Arduino y las guías de estilo API, seguidas del estándar PEP-8 si está creando aplicaciones de Python para Raspberry Pi. Si está utilizando otro idioma (como Javascript en el tablero de Tessel Construyendo Internet de las cosas, con Tessel: The Node.js Development Board Construyendo Internet de las cosas, con Tessel: El tablero de desarrollo de Node.js Tessel es una nueva generación de placa de desarrollo que se ejecuta completamente en Node.js, y después de un exitoso Kickstarter, ahora han llegado al punto de estar disponibles para todos.), busque en Google una guía de estilo oficial.

Si está buscando una lectura más académica sobre el tema, consulte Clean Code: A Handbook of Agile Software Craftsmanship de Bob Martin. Lo mencioné anteriormente en este artículo, y es muy recomendable. Aunque utiliza Java para ilustrar conceptos, muchas de las ideas pueden pasarse a otros lenguajes, como Python y C para Arduino.

También hay algunas publicaciones de blog brillantes en línea que ilustran cómo escribir un código bueno, descriptivo y limpio. Te recomiendo que eches un vistazo “Código limpio y de alta calidad: una guía sobre cómo convertirse en un mejor programador” por Arash Arabi escribiendo para butterfly.com.au, y “Los fundamentos de escribir código limpio” por Chris Reynolds, escribiendo para webdevstudios.com.

Aunque no está explícitamente relacionado con el código limpio, también es útil aprender qué funciones y bibliotecas se evitan mejor en el idioma que elija. Por ejemplo, si está aprendiendo PHP, debe evitar el “mysql” bibliotecas, y si está construyendo productos físicos con Arduino, nunca debe usar la función Delay Arduino Delay, y por qué no debe usarla Arduino Delay, y por qué no debe usarla Mientras delay () es útil para demostraciones básicas de cómo funciona Arduino, realmente no deberías usarlo en el mundo real. He aquí por qué, y qué deberías usar en su lugar. .

Recuerde, el código que es más fácil de leer es más fácil de mantener. Además, si alguna vez te quedas atascado con algo, es más fácil que alguien lo lea y te ayude.

¿Tienes algún consejo para escribir código limpio? ¿Yo me perdí algo? ¡Dime! Déjame un comentario a continuación y avísame.

Créditos de las fotos: Cama seca (Premasagar), Little TAB Key (Kai Hendry), 2015 (Wikilogia)




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.