Arduino et framboise pi débutant? Voici comment écrire un code propre
Lorsque vous commencez à lire de plus en plus sur le développement de logiciels, vous venez souvent dans l`expression « code propre ». Dans sa forme la plus pure, c`est un code qui est facile pour les autres à lire. Il est expressif et beau, et vous pouvez facilement discerner son intention simplement en regarder
Contenu
code propre écriture est plus facile à dire qu`à faire.
Que vous soyez Arduino bricoleur, ou vous construisez Tarte aux framboises applications avec Python, ou vous êtes même un développeur web, il y a quelques conseils utiles à suivre qui va rendre votre code plus facile à lire par d`autres. Voici ce que vous devez savoir.Mise en route avec Arduino: Guide du débutantMise en route avec Arduino: Guide du débutantArduino est une plate-forme de prototypage électronique open source basée sur flexible, facile à utiliser du matériel et des logiciels. Il est destiné aux artistes, designers, amateurs, et toute personne intéressée par la création d`objets interactifs ou des environnements.Lire la suite
Être cohérent
Peut-être la première et à la pointe la plus évidente, est d`être cohérent dans ce que vous faites. Un bon exemple de cela suit les mêmes motifs pour nommer les fonctions et les variables. Vous devez choisir une convention de nommage, et de s`y tenir.
Alors, quelle convention de nommage utiliser?
Eh bien, si vous écrivez Python pour Raspberry Pi, la réponse est claire. La norme PEP-8 (le baromètre pour le code Python bon, propre) indique que les noms de variables doivent être en minuscules, avec chaque mot séparés par un trait de soulignement. Par exemple: gpio_input et moisture_sensor_reading.
Le guide de style Arduino indique implicitement que vous devriez écrire vos variables dans ce qui est connu comme Camel Case. Ici, les mots ne sont pas séparés par quoi que ce soit, mais la première lettre de chaque mot est mise en majuscule, sauf pour le premier mot. Par exemple: ButtonPressed et temperatureReading.
Il y a, bien sûr, d`autres styles de nommage des variables. Ce qui précède est simplement recommandé par les guides de style officiels. Mais tout ce que vous choisissez, assurez-vous que vous vous en tenez par, et utiliser la même convention de dénomination tout au long de votre programme.
Ecrire des commentaires utiles
Les commentaires sont un excellent moyen d`expliquer ce que fait votre programme. Vous pouvez dire ce que chaque fonction et chaque variable représente dans vos propres mots. Cela rend plus facile pour un tiers de votre code, mais rend également votre code plus facile à maintenir, en fin de compte que vous comprenez mieux.
Mais si vous n`écrivez pas vos commentaires d`une manière qui est évidente et expressive, alors vous pourriez pas aussi bien la peine.
Lors de l`écriture des commentaires, vous devez essayer d`expliquer le pourquoi du code, en plus de la façon dont. Essayez de faire l`objet très clair et dire quelque chose au sujet du code qu`il ne peut pas se dire. Ainsi, plutôt que:
// lecture de mise à jour
Pensez à écrire:
// Mise à jour le nombre de fois que le faisceau laser a été brisé, avant tweeting dehors
Assurez-vous d`écrire dans son intégralité, des phrases grammaticalement correctes. En outre, le PEP-8 standard pour Python dit que vous devriez toujours écrire vos commentaires et les variables en anglais. Cela rend plus facile pour les autres de collaborer avec vous, si vous décidez de libérer votre code en open source, comme 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, et chaque déclaration de variable.
Personnellement, je pense que c`est un peu extrême. Si vous écrivez verbeux, les noms de variables d`expression, votre code est déjà auto-documenté. Cela dit, ne pas hésiter à ajouter des commentaires 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, vous êtes souvent rempli d`un immense élan d`enthousiasme. Vous lisez tout ce que vous pouvez sur votre langue choisie, le cadre ou la plate-forme. Vous commencez à rencontrer des concepts que vous ignoriez avant, et vous êtes trop désireux de les utiliser dans votre propre code.Comment apprendre la programmation sans tout le stressComment apprendre la programmation sans tout le stressPeut-ê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 vous commencez à se sentir dépassés. Pas si bien. Voici une aide pour faciliter votre voyage.Lire la suite
Des choses comme les opérateurs ternaires, qui vous permettent de condenser la logique d`une telle que « instruction if » celui-ci:
int X = 5-si ( X lt; dix) {y = 1-{ autre {y = 0-}
Dans une seule ligne, comme ceci:
int X = 5-int y = (X lt; dix) ? 1 : 0-printf("%dans", y)-
les opérateurs ternaires sont certainement cool, et je vous encourage à lire sur eux. Mais quand vous écrivez du code qui est facile pour les autres à lire, ils sont mieux éviter. C`est juste un exemple, bien que.
Le guide de style Arduino vous encourage également à éviter des pointeurs, des déclarations #define et types de données autres que la norme: booléen, char, octets, int, unsigned int, long, unsigned long, float, double, chaîne, tableau et vide. Vous devez éviter les types de données comme uint8_t, car ceux-ci sont moins fréquemment utilisés, pas expliqué dans la documentation, et pas très laconique.
Indentation et profiter de Whitespace
En ce qui concerne l`écriture de code propre, les utilisateurs Python sont avantagés, comme les mandats d`un interprète Python standard que tout le code doit être structurés de manière rationnelle et en retrait. Si vous n`indentez après chaque fonction et déclaration de classe, et instruction conditionnelle, votre programme simplement ne fonctionnera pas.
Sur Arduino, il n`y a rien qui vous empêche d`écrire du code non structuré, compacté. Ce, en fin de compte, est difficile à lire et difficile à maintenir.
Mais il n`y a rien qui vous empêche de structurer votre code mieux, que ce soit.
Tout d`abord, établir combien vous allez indenter. Vous devez utiliser la touche de tabulation judicieusement, chaque éditeur de texte traite le code ASCII onglet différemment, et si vous partagez votre code avec quelqu`un d`autre, il y a une chance qu`ils peuvent introduire par inadvertance des incohérences dans votre empreinte. Ces incohérences peuvent briser votre programme, en particulier si vous utilisez un langage des espaces sensibles comme CoffeeScript ou Python. Cet article de OpenSourceHacker explique plus en détail pourquoi il faut éviter la touche de tabulation.CoffeeScript est javascript sans les problèmesCoffeeScript est javascript sans les problèmesJe ne l`ai jamais vraiment aimé écrire tout ce que beaucoup javascript. Depuis le jour où je l`ai écrit ma première ligne à l`aide, je l`ai toujours que tout ce que je en voulais écrire en elle finit toujours par ressembler à un Jackson ...Lire la suite
J`ai tendance à utiliser quatre espaces pour chaque tiret, mais le nombre total est à vous. Juste aussi longtemps que vous êtes cohérent.
Vous pouvez configurer votre éditeur IDE et texte pour traiter chaque onglet comme un certain nombre d`espaces, cependant, vous permettant d`utiliser la touche de tabulation sans risque d`introduire des problèmes. Si vous utilisez Sublime Text 2, consultez leur documentation officielle. Si vous utilisez Vim, il suffit d`éditer votre .vimrc déposer ces lignes. L`éditeur Arduino fait automatiquement pour vous, et insère deux espaces chaque fois que vous appuyez sur l`onglet.
, Il vous suffit alors de savoir où indenter votre code. Comme une bonne règle de base, vous devez toujours tiret après chaque déclaration de fonction, et après chaque si, autre, pour, tandis que, commutateur, et Cas déclaration.
De nombreux éditeurs viennent avec la possibilité de retrait des blocs entiers de code à la fois. Si vous utilisez Sublime Text 2, vous pouvez mettre en place une combinaison ou combinaison de touches raccourci clavier. Dans le cas contraire, vous pouvez utiliser la combinaison par défaut, qui (sur 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 pas répéter vous-même
L`un des mantras les plus importants du bon développement de logiciels est ne pas vous répéter, qui est souvent abrégée SEC.
L`écriture de code DRY est extrêmement important, car il assure que la logique de votre programme est cohérent, vous permet de faire un changement une fois place et avoir réfléchi à l`échelle mondiale, et vous passez moins de temps à écrire la même chose encore et encore.
La meilleure façon de rester au sec est une utilisation libérale et généreuse les fonctions - l`encapsulation d`une tâche répétée avec un bloc de code que vous pouvez appeler encore et encore - et veiller à ce que chacun est distinct et bien écrit.
Une bonne fonction est court le guide PEP-8 en dit peu sur la longueur de la fonction, mais propre code: Manuel d`Agile Software par Bob Artisanat Martin (fortement recommandé) dit que « les fonctions ne devrait guère être 20 longues lignes ». De préférence, ils seraient même plus courte que celle.
Les fonctions doivent également faire exactement une chose. Besoin d`une fonction qui fait deux choses? Écrire deux fonctions.
Ces conseils rendent facile de suivre le déroulement d`un programme, et de déboguer en fin de compte si besoin est. Il y a aussi un avantage supplémentaire pour les utilisateurs Arduino, qui sont étroitement limités par les limites de stockage, comme sont supprimés les redondances. Cela se traduit par des programmes plus petits.
Soyez explicite
Un autre mantra important du développement de logiciel est « Explicite est mieux que implicite ». Cela signifie que votre code devrait plutôt crier bien ce qu`il fait au premier coup d`œil. Le guide de style Arduino dit cette chose comme cela devrait être évité:
si(ButtonPressed){faire quelque chose()-}
Au contraire, vous devez le rendre évident ce qui se passe. Au lieu de cela, écrire quelque chose comme ceci:
si (ButtonPressed == Vrai){faire quelque chose()-}
Sortez et code (bien)
code propre écriture est étonnamment simple. Vous devez simplement être cohérent dans tout ce que vous faites, d`éviter les redondances et être explicites. Rappelez-vous, code propre est simplement le code qui est lisible.
Il y a beaucoup de grand matériel de lecture à ce sujet. Un excellent point de départ est tutoriel Arduino et guides style API, suivi par la norme PEP-8 si vous construisez des applications Python pour le Raspberry Pi. Si vous utilisez une autre langue (comme javascript est désactivé sur la carte Tessel), Consultez Google pour un guide de style officiel.Construire Internet des choses, avec Tessel: Le Conseil du développement Node.jsConstruire Internet des choses, avec Tessel: Le Conseil du développement Node.jsTessel est une nouvelle race de conseil de développement qui fonctionne entièrement sur Node.js, et après un Kickstarter avec succès, ils ont maintenant atteint le point d`être accessible à tous.Lire la suite
Si vous cherchez une lecture plus académique sur le sujet, consultez le code propre: Manuel d`Agile Software par Bob l`artisanat 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 langues, comme Python et C pour Arduino.
Il y a aussi des messages de blog brillants en ligne qui illustrent comment écrire du code bien, descriptif, propre. Je vous recommande de vérifier « Clean, le code 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 de la rédaction code propre » par Chris Reynolds, écrit pour webdevstudios. com.
Bien que non explicitement liés à nettoyer le code, il est également utile d`apprendre ce que les fonctions et les bibliothèques sont à éviter dans votre langue de choix. Par exemple, si vous apprenez PHP, vous devriez éviter les « mysql » bibliothèques, et si vous construisez des produits physiques avec Arduino, vous devez ne jamais utiliser la fonction Delay.Retard Arduino Fonction, et pourquoi vous devriez pas l`utiliserRetard Arduino Fonction, et pourquoi vous devriez pas l`utiliserBien que retard () est pratique pour des démonstrations de base de la façon dont fonctionne Arduino, vous devriez vraiment pas l`utiliser dans le monde réel. Voici pourquoi, et ce que vous devez utiliser à la place.Lire la suite
Rappelez-vous, le code qui est plus facile à lire est plus facile à entretenir. De plus, si jamais vous êtes coincé avec quelque chose, il est plus facile pour quelqu`un de le lire et vous aider.
Avez-vous des conseils pour écrire un code propre? Ai-je raté quelque chose? Dîtes-moi! Laissez-moi un commentaire ci-dessous et laissez-moi savoir.
Crédits photo: Bed Dry (Premasagar), Little Tabulation (Kai Hendry), 2015 (Wikilogia)