Arduino et Raspberry Pi Débutant? Voici comment écrire un code propre
Quand vous commencez à lire de plus en plus sur le développement logiciel, vous rencontrez souvent la phrase “code propre”. Dans sa forme la plus pure, il s'agit d'un code facile à lire pour les autres personnes. C'est expressif et beau, et vous pouvez facilement discerner son intention simplement en en le regardant.
L'écriture de code propre est plus facile à dire qu'à faire.
Si vous êtes un Arduino Initiation à Arduino - Guide du débutant Initiation à Arduino - Guide du débutant Arduino est une plate-forme de prototypage électronique à code source ouvert basée sur un matériel et un logiciel flexibles et faciles à utiliser. Il est destiné aux artistes, concepteurs, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire Plus bricoler, ou vous construisez Raspberry Pi Raspberry Pi: le tutoriel non officiel Raspberry Pi: le tutoriel non officiel Que vous soyez un propriétaire actuel de Pi qui souhaite en savoir plus ou un propriétaire potentiel de cet appareil de la taille d'une carte de crédit, c Vous ne voulez pas manquer un guide. Lisez plus d'applications avec Python, ou même vous êtes développeur Web, voici quelques conseils utiles qui faciliteront la lecture de votre code.. Voici ce que vous devez savoir.
Être cohérent
Peut-être le premier conseil, et le plus évident, est-il cohérent dans ce que vous faites. Un bon exemple de ceci est de suivre les mêmes modèles pour nommer les fonctions. 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 la programmation pour débutants, je serai couvrant les bases des fonctions, les valeurs de retour, les boucles et les conditions. Assurez-vous d'avoir bien lu la partie 1 avant de commencer, où j'ai expliqué… Read More et variables Notions de base de la programmation informatique 101 - Variables et DataTypes Notions de base de la programmation informatique 101 - Variables et DataTypes Ayant introduit et parlé un peu à propos de Object Oriented La programmation avant et l’origine de son nom, j’ai pensé qu’il était temps de passer aux bases de la programmation sans aucune spécificité linguistique. This… Lire la suite. Vous devriez choisir une convention de nommage et vous y tenir.
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 code propre et clair en Python) stipule que les noms de variables doivent être en minuscules, chaque mot étant séparé par un trait de soulignement. Par exemple: gpio_input et humidité_sensor_lecture.
Le guide de style Arduino indique implicitement que vous devez écrire vos variables dans ce qu'on appelle Camel Case. Ici, les mots ne sont séparés par rien, mais la première lettre de chaque mot est en majuscule, à l'exception du premier mot. Par exemple: boutonPresse et lecture de la température.
Il existe bien sûr d'autres styles de nommage de variables. Ce qui précède est tout simplement recommandé par les guides de style officiels. Mais quoi que vous choisissiez, assurez-vous de le respecter 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 le rend également plus facile à gérer, car vous le comprenez mieux..
Mais si vous n'écrivez pas vos commentaires de manière évidente et expressive, vous ne risquez pas trop de vous embêter..
Lorsque vous écrivez des commentaires, vous devez essayer d'expliquer le pourquoi du code, en plus du comment. Essayez de clarifier l’intention et de dire quelque chose à propos du code qu’il ne peut pas se dire. Donc plutôt que:
// mettre à jour la lecture
Pensez à écrire:
// Met à jour le nombre de fois que le faisceau laser a été interrompu, avant de le tweeter
Assurez-vous d’écrire intégralement des phrases grammaticalement correctes. En outre, le standard PEP-8 pour Python indique que vous devez toujours écrire vos commentaires et variables en anglais. Cela facilite la collaboration avec d'autres personnes, si vous décidiez de publier votre code en tant qu'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 indique 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 là où vous pensez qu'ils sont nécessaires. Utilisez votre propre jugement.
Simplifiez votre code
Quand vous apprenez à développer pour la première fois Comment apprendre la programmation sans stresser Comment apprendre à programmer sans stresser Peut-être avez-vous décidé de vous lancer dans la programmation, que ce soit pour une carrière ou comme loisir. 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 enthousiasme. Vous lisez tout ce que vous pouvez sur le langage, le framework ou la plateforme de votre choix. Vous commencez à rencontrer des concepts que vous n'avez jamais connus auparavant, et vous êtes trop impatients de les utiliser dans votre propre code.
Des choses comme les opérateurs ternaires, qui vous permettent de condenser la logique d’un “si déclaration” comme celui-ci:
int x = 5; si (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 sympas, et je vous encourage à les lire. Mais lorsque vous écrivez un code facile à lire pour les autres, il est préférable de l’é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 types standard: boolean, char, octet, int, unsigned int, long, unsigned long, float, double, chaîne, array et void. Vous devez éviter les types de données tels que uint8_t, car ils sont moins utilisés, ne sont pas expliqués dans la documentation et ne sont pas terriblement laconiques..
Indenter et tirer parti des espaces blancs
Quand il s’agit d’écrire du code en clair, les utilisateurs de Python ont un avantage, car l’interpréteur Python standard exige que tout le code doit être sensiblement structuré et en retrait. Si vous n'indentez pas après chaque déclaration de fonction et de classe et chaque instruction conditionnelle, votre programme ne s'exécutera tout simplement pas..
Sur Arduino, rien ne vous empêche d'écrire du code compact et non structuré. En fin de compte, cela est difficile à lire et à maintenir.
Mais rien ne vous empêche de mieux structurer votre code, que ce soit.
Tout d’abord, déterminez combien vous allez indenter. Vous devez utiliser judicieusement la touche de tabulation, car chaque éditeur de texte traite le code ASCII différemment et si vous partagez votre code avec une autre personne, il est possible que celui-ci introduise 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, tel que 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 JavaScript. Depuis le jour où j'ai écrit ma première ligne en l'utilisant, j'ai toujours regretté que tout ce que j'écrive apparaisse toujours comme un Jackson… Read More ou Python. Cet article de OpenSourceHacker explique plus en détail pourquoi la touche de tabulation doit être évitée.
J'ai tendance à utiliser quatre espaces pour chaque retrait, mais le nombre total dépend de vous. Tant que vous êtes cohérent.
Vous pouvez configurer votre IDE et votre éditeur de texte pour traiter chaque onglet comme un nombre défini d'espaces, ce qui vous permet d'utiliser la touche de tabulation sans risque de problèmes. Si vous utilisez Sublime Text 2, consultez leur documentation officielle. Si vous utilisez Vim, éditez simplement votre .vimrc déposer avec ces lignes. L’éditeur Arduino le fait automatiquement pour vous et insère deux espaces chaque fois que vous appuyez sur la touche de 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 si, autre, pour, tandis que, commutateur, et Cas déclaration.
De nombreux éditeurs ont la possibilité d'indenter des blocs de code entiers à la fois. Si vous utilisez Sublime Text 2, vous pouvez configurer un raccourci clavier ou une combinaison de touches. Sinon, vous pouvez utiliser la combinaison par défaut, qui (sous OS X) est Cmd + [. Dans l'éditeur Arduino, vous pouvez corriger l'indentation de votre fichier automatiquement en appuyant sur Ctrl + T sous Windows et Linux, et Cmd + T sur OS X.
Cela dépend entièrement de votre éditeur, donc lire le manuel!
Ne te répète pas
L’un des mantras les plus importants d’un bon développement logiciel est ne te répète pas, qui est souvent raccourci à SEC.
L'écriture de code DRY est extrêmement importante, car elle garantit la cohérence de la logique de votre programme, vous permet d'effectuer un changement à la fois, de le refléter globalement et de passer moins de temps à écrire la même chose encore et encore..
La meilleure façon de rester au sec consiste à utiliser généreusement et généreusement les fonctions - encapsuler une tâche répétée avec un bloc de code que vous pouvez appeler encore et encore - et vous assurer que chaque tâche est distincte et bien écrite.
Une bonne fonction est courte; le guide PEP-8 parle peu de la longueur de la fonction, mais Clean Code: Un manuel de l’artisanat logiciel agile de Bob Martin (hautement recommandé) dit que “les fonctions ne devraient pratiquement jamais être longues de 20 lignes”. De préférence, ils seraient encore plus court que ça.
Les fonctions doivent également faire exactement une chose. Besoin d'une fonction qui fait deux choses? Écrire deux fonctions.
Ces conseils permettent de suivre facilement le déroulement d'un programme et de le déboguer en cas de besoin. Il existe également un avantage supplémentaire pour les utilisateurs d’Arduino, qui sont étroitement limités par les limitations de stockage, car les redondances sont supprimées. Cela se traduit par des programmes plus petits.
Être explicite
Un autre mantra important du développement logiciel est “explicite vaut mieux qu'implicite”. Cela signifie que votre code devrait en quelque sorte crier ce qu'il fait au premier abord. Le guide de style Arduino dit que cette chose devrait être évitée:
if (buttonPressed) doQuelque chose ();
Au contraire, vous devriez rendre évident ce qui se passe. Au lieu de cela, écrivez quelque chose comme ceci:
if (buttonPressed == True) doQuelque chose ();
Sortir et code (bien)
Écrire du 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 qu'un code propre est simplement un code lisible.
Il y a beaucoup d'excellents documents à lire sur ce sujet. Le didacticiel Arduino et les guides de style API constituent un bon point de départ, suivis de la norme PEP-8 si vous créez des applications Python pour Raspberry Pi. Si vous utilisez une autre langue (comme Javascript sur le tableau Tessel) Construire 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 Node.js Tessel est un nouveau type de carte de développement fonctionnant entièrement sur Node.js, et après le succès de Kickstarter, ils ont maintenant atteint le point d’être disponible pour tous. En savoir plus), consultez Google pour obtenir un guide de style officiel.
Si vous recherchez une lecture plus académique sur le sujet, consultez Clean Code: 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 des concepts, beaucoup d’idées peuvent être transmises à d’autres langages, comme Python et C pour Arduino..
Il existe également d’intéressants blogs en ligne qui illustrent la rédaction d’un code propre, descriptif et propre. Je vous recommande de vérifier “Code propre et de haute qualité: un guide pour devenir un meilleur programmeur” par Arash Arabi écrit pour butterfly.com.au, et “Les fondamentaux de l'écriture de code propre” par Chris Reynolds, écrit pour webdevstudios.com.
Bien que cela ne soit pas explicitement lié au code propre, il est également utile de connaître les fonctions et les bibliothèques à éviter dans la langue de votre choix. Par exemple, si vous apprenez PHP, vous devriez éviter les “mysql” Si vous construisez des produits physiques avec Arduino, vous ne devriez jamais utiliser la fonction Retarder la fonction Retarder Arduino et pourquoi vous ne devriez pas l'utiliser. La fonction Retarder Arduino et pourquoi vous ne devriez pas l'utiliser Pendant que delay () est pratique pour des démonstrations de base du fonctionnement d’Arduino, vous ne devriez vraiment pas l’utiliser dans le monde réel. Voici pourquoi et ce que vous devriez utiliser à la place. Lire la suite .
N'oubliez pas qu'un code plus facile à lire est plus facile à gérer. De plus, si 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? Est-ce que j'ai manqué quelque chose? Dîtes-moi! Laissez-moi un commentaire ci-dessous, et laissez-moi savoir.
Crédits photos: Lit sec (Premasagar), Petite clé TAB (Kai Hendry), 2015 (Wikilogia)
En savoir plus sur: Programmation.