Arduino et Raspberry Pi débutant? Voici comment écrire un code propre

Publicité

Publicité
Publicité

Lorsque vous commencez à lire de plus en plus sur le développement de logiciels, vous rencontrez fréquemment l'expression «code propre». Dans sa forme la plus pure, c'est un code facile à lire pour les autres. C'est expressif et beau, et vous pouvez facilement discerner son intention simplement en le regardant .

Ecrire du code propre est plus facile à dire qu'à faire.

Que vous soyez Arduino Initiation à Arduino: Guide du débutant Initiation à Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique open source basée sur du matériel et des logiciels flexibles et faciles à utiliser. Il est destiné aux artistes, designers, amateurs et toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite bricoleur, ou vous construisez Raspberry Pi Raspberry Pi: le tutoriel officieux Raspberry Pi: le tutoriel non officiel Si vous êtes un propriétaire Pi en cours qui veut en savoir plus ou un propriétaire potentiel de ce dispositif de taille de carte de crédit, ce n'est pas 't un guide que vous voulez manquer. Lire plus d'applications avec Python, ou vous êtes même un développeur web, il y a quelques conseils utiles à suivre qui rendront votre code plus facile à lire par d'autres. Voici ce que vous devez savoir .

Être cohérent

Peut-être le premier conseil, et le plus évident, est d'être cohérent dans ce que vous faites. Un bon exemple de cela est de suivre les mêmes modèles lorsque les fonctions de nommage Les bases absolues de la programmation pour les débutants (Partie 2) Les bases absolues de la programmation pour les débutants (Partie 2) Dans la partie 2 de notre guide absolu de programmation, je serai couvrant les bases des fonctions, les valeurs de retour, les boucles et les conditions. Assurez-vous que vous avez lu la partie 1 avant d'aborder cela, où j'ai expliqué ... Lire la suite et les variables Les bases de la programmation informatique 101 - Variables et DataTypes Les bases de la programmation informatique 101 - Variables et DataTypes Après avoir présenté et parlé un peu Programmation orientée objet avant et d'où vient son nom, j'ai pensé qu'il est temps de passer en revue les bases absolues de la programmation d'une manière non spécifique à la langue. Ce ... Lire la suite. Vous devriez choisir une convention de nommage, et respectez-la.

Alors, quelle convention de nommage devriez-vous utiliser?

Eh bien, si vous écrivez Python pour Raspberry Pi, la réponse est claire. La norme PEP-8 (le baromètre pour un bon code Python propre) indique que les noms de variables doivent être en minuscules, chaque mot étant séparé par un trait de soulignement. Par exemple: gpio_input et moisture_sensor_reading .

cleancode-arduino

Le guide de style Arduino stipule implicitement que vous devriez écrire vos variables dans ce qui est connu sous le nom de Case Camel. Ici, les mots ne sont séparés par rien, mais la première lettre de chaque mot est en majuscule, sauf pour le premier mot. Par exemple: buttonPressed et temperatureReading .

Il y a, bien sûr, d'autres styles de noms de variables. Ce qui précède est simplement recommandé par les guides de style officiels. Mais peu importe ce que vous choisissez, assurez-vous de vous y tenir, et utilisez la même convention de nommage tout au long de votre programme.

Écrire des commentaires significatifs

Les commentaires sont un excellent moyen d'expliquer ce que fait votre programme. Vous pouvez indiquer ce que chaque fonction fait et chaque variable représente dans vos propres mots. Cela facilite la lecture de votre code par un tiers, mais facilite également la maintenance de votre code, car vous le comprenez mieux.

Mais si vous n'écrivez pas vos commentaires d'une manière évidente et expressive, alors vous pourriez ne pas en faire autant.

Lorsque vous écrivez des commentaires, vous devriez essayer d'expliquer le pourquoi du code, en plus du comment. Essayez de clarifier l'intention et dites quelque chose au sujet du code qu'il ne peut pas dire lui-même. Donc, plutôt que:

 // mettre à jour la lecture 

Pensez à écrire:

 // Mettre à jour le nombre de fois que le faisceau laser a été brisé, avant de le tweeter 

Assurez-vous d'écrire en toutes lettres grammaticalement correctes. En outre, la norme PEP-8 pour Python stipule que vous devez toujours écrire vos commentaires et vos variables en anglais. Cela facilite la collaboration avec d'autres, si vous décidez de publier votre code en open source, car l'anglais est à peu près la lingua franca du développement logiciel.

Le guide de style Arduino va encore plus loin, et dit que vous devez commenter chaque bloc de code, chaque boucle for, et chaque déclaration de variable.

Personnellement, je pense que c'est un peu extrême. Si vous écrivez des noms de variables verbeux et expressifs, votre code est déjà auto-documenté. Cela dit, n'hésitez pas à ajouter des commentaires lorsque vous pensez qu'ils sont nécessaires. Utilisez votre propre bon jugement.

Simplifiez votre code

Quand vous apprenez à développer pour la première fois Comment apprendre sans programmation Tout le stress Comment apprendre sans tout stress Peut-être que vous avez décidé de poursuivre la programmation, que ce soit pour une carrière ou tout simplement comme un passe-temps. Génial! Mais peut-être que vous commencez à vous sentir dépassé. Pas si bien. Voici de l'aide pour faciliter votre voyage. Lire la suite, vous êtes souvent rempli d'un immense élan d'enthousiasme. Vous lisez tout ce que vous pouvez sur la langue, le framework ou la plate-forme que vous avez choisi. Vous commencez à rencontrer des concepts que vous n'avez jamais connus auparavant, et vous êtes trop impatient de les utiliser dans votre propre code.

Des choses comme les opérateurs ternaires, qui vous permettent de condenser la logique d'une "déclaration if" comme celle-ci:

int x = 5; if ( x< 10) { y = 1; { else { y = 0; } 

En une seule ligne, comme ceci:

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

Les opérateurs ternaires sont certainement cool, et je vous encourage à lire sur eux. Mais quand vous écrivez du code facile à lire pour les autres, il vaut mieux les éviter. Ce n'est qu'un exemple, cependant.

Le guide de style Arduino vous encourage également à éviter les pointeurs, les instructions #define et les types de données autres que les standards: boolean, char, byte, int, unsigned int, long, unsigned long, float, double, string, array et void. Vous devriez éviter les types de données comme uint8_t, car ceux-ci sont moins utilisés, pas expliqués dans la documentation, et pas très laconiques.

Mettre en retrait et profiter des espaces

Quand il s'agit d'écrire du code propre, les utilisateurs Python ont un avantage, car l'interpréteur Python standard exige que tout le code soit sensiblement structuré et indenté. Si vous ne mettez pas en retrait après chaque déclaration de fonction et de classe et instruction conditionnelle, votre programme ne fonctionnera tout simplement pas.

cleancode-python

Sur Arduino, rien ne vous empêche d'écrire du code compact et non structuré. Ceci, en fin de compte, est difficile à lire et difficile à maintenir.

Mais rien ne vous empêche non plus de structurer votre code.

D'abord, déterminez combien vous allez indenter. Vous devriez utiliser la touche de tabulation judicieusement, car chaque éditeur de texte traite différemment le code ASCII pour tabulation, et si vous partagez votre code avec quelqu'un d'autre, il est possible qu'ils introduisent par inadvertance des incohérences dans votre indentation. Ces incohérences peuvent casser votre programme, en particulier si vous utilisez un langage sensible aux espaces comme CoffeeScript CoffeeScript est JavaScript sans les maux de tête CoffeeScript est JavaScript sans les maux de tête Je n'ai jamais vraiment aimé écrire du JavaScript autant. A partir du jour où j'ai écrit ma première ligne en l'utilisant, j'ai toujours ressenti que tout ce que j'écris en elle finit toujours par ressembler à un Jackson ... Read More ou Python. Cet article d'OpenSourceHacker explique plus en détail pourquoi la clé de tabulation doit être évitée.

onglet cleancode

J'ai tendance à utiliser quatre espaces pour chaque retrait, mais le nombre total dépend de vous. Juste tant que vous êtes cohérent.

Vous pouvez configurer votre IDE et votre éditeur de texte pour traiter chaque onglet comme un nombre d'espaces défini, ce qui vous permet d'utiliser la touche de tabulation sans risquer d'introduire des problèmes. Si vous utilisez Sublime Text 2, consultez leur documentation officielle. Si vous utilisez Vim, modifiez simplement votre fichier .vimrc avec ces lignes. L'éditeur Arduino le fait automatiquement pour vous et insère deux espaces chaque fois que vous appuyez sur la touche tabulation.

Ensuite, vous devez simplement savoir où mettre votre code en retrait. En règle générale, vous devez toujours mettre en retrait après chaque déclaration de fonction et après chaque instruction if, else, for, while, switch et case .

De nombreux éditeurs ont la possibilité d'indenter des blocs entiers de code à la fois. Si vous utilisez Sublime Text 2, vous pouvez configurer une combinaison de raccourcis ou de touches. Sinon, vous pouvez utiliser la combinaison par défaut, qui (sur OS X) est Cmd + [ . Dans l'éditeur Arduino, vous pouvez corriger automatiquement l'indentation de votre fichier en appuyant sur Ctrl + T sous Windows et Linux, et sur Cmd + T sous OS X.

Cela dépend entièrement de votre éditeur, alors lisez le manuel !

Ne vous répétez pas

L'un des mantras les plus importants du développement d'un bon logiciel est de ne pas vous répéter, ce qui est souvent raccourci à DRY.

L'écriture de code DRY est extrêmement importante, car elle garantit que la logique de votre programme est cohérente, vous permet d'effectuer un changement d'endroit et de le refléter globalement, et vous passez moins de temps à écrire la même chose encore et encore.

La meilleure façon de rester DRY est d'utiliser généreusement et libéralement des fonctions - en encapsulant une tâche répétée avec un bloc de code que vous pouvez appeler encore et encore - et en vous assurant que chacun est distinct et bien écrit.

cleancode-dry

Une bonne fonction est courte; le guide PEP-8 en dit peu sur la durée de fonction, mais le code Clean: un manuel de l'artisanat logiciel agile de Bob Martin (fortement recommandé) dit que «les fonctions ne devraient jamais être longues de 20 lignes». De préférence, ils seraient encore plus courts que ça .

Les fonctions devraient également faire exactement une chose. Besoin d'une fonction qui fait deux choses? Écris deux fonctions.

Ces conseils facilitent le suivi du déroulement d'un programme et, éventuellement, le débogage. Il y a également un avantage supplémentaire pour les utilisateurs Arduino, qui sont fortement limités par les limitations de stockage, car les redondances sont supprimées. Cela entraîne des programmes plus petits.

Soyez explicite

Un autre mantra important du développement de logiciel est "explicite est meilleur qu'implicite" . Cela signifie que votre code devrait à peu près crier ce qu'il fait au premier coup d'œil. Le guide de style Arduino dit que cette chose devrait être évitée:

 if(buttonPressed){ doSomething(); } 

Au contraire, vous devriez le rendre évident ce qui se passe. Au lieu de cela, écrivez quelque chose comme ceci:

 if (buttonPressed == True){ doSomething(); } 

Sortir Et Code (Bien)

L'écriture de code propre est étonnamment simple. Vous devez simplement être cohérent dans tout ce que vous faites, éviter les redondances et être explicite. Rappelez-vous, le code propre est simplement un code lisible.

Il y a beaucoup de bonnes lectures sur ce sujet. Un bon point de départ est le tutoriel Arduino et les guides de style API, suivis de la norme PEP-8 si vous construisez des applications Python pour le Raspberry Pi. Si vous utilisez une autre langue (comme Javascript sur le forum de Tessel Building L'Internet des Objets, Avec Tessel: Le Conseil de Développement Node.js Construire L'Internet des Objets, Avec Tessel: Le Conseil de Développement de Node.js Tessel est une nouvelle race de conseil de développement qui fonctionne entièrement sur Node.js, et après un succès Kickstarter, ils ont maintenant atteint le point d'être disponible pour tout le monde.Lire la suite), consultez Google pour un guide de style officiel.

Si vous cherchez une lecture plus académique sur le sujet, consultez Code propre: un manuel de l'artisanat logiciel agile par Bob Martin. Je l'ai mentionné plus tôt dans cet article, et il est fortement recommandé. Bien qu'il utilise Java pour illustrer les concepts, la plupart des idées peuvent être transmises à d'autres langages, comme Python et C pour Arduino.

Il y a aussi de brillants articles de blog en ligne qui illustrent comment écrire du bon code descriptif et propre. Je vous recommande de vérifier "Code propre et de haute qualité: un guide sur la façon de devenir un meilleur programmeur" par Arash Arabi écrit pour butterfly.com.au, et "Les principes fondamentaux de l'écriture Clean Code" par Chris Reynolds, écrit pour webdevstudios. com.

Bien que cela ne soit pas explicitement lié au code propre, il est également utile d'apprendre quelles fonctions et quelles bibliothèques sont à éviter dans la langue de votre choix. Par exemple, si vous apprenez PHP, vous devriez éviter les bibliothèques "mysql", et si vous construisez des produits physiques avec Arduino, vous ne devriez jamais utiliser la fonction Delay Fonction Arduino Delay, et pourquoi vous ne devriez pas l'utiliser Arduino Fonction de retard, et pourquoi vous ne devriez pas l'utiliser Si delay () est pratique pour les démonstrations de base du fonctionnement d'Arduino, vous ne devriez pas l'utiliser dans le monde réel. Voici pourquoi, et ce que vous devriez utiliser à la place. Lire la suite .

Rappelez-vous, le code qui est plus facile à lire est plus facile à maintenir. De plus, si jamais vous êtes coincé avec quelque chose, il est plus facile pour quelqu'un de le lire et de vous aider.

Avez-vous des conseils pour écrire du code propre? Ai-je manqué quelque chose? Dîtes-moi! Laissez-moi un commentaire ci-dessous, et faites le moi savoir.

Crédits photo: Lit Sec (Premasagar), Petite Clé TAB (Kai Hendry), 2015 (Wikilogia)

In this article