Arduino a Raspberry Pi začátečník? Zde je návod, jak napsat čistý kód

  • Lesley Fowler
  • 3
  • 4510
  • 743
reklama

Když začnete a více o vývoji softwaru, často se s frází setkáte “čistý kód”. Ve své nejčistší podobě je to kód, který si ostatní lidé snadno přečtou. Je to expresivní a krásné a jeho záměr snadno poznáte při pohledu na to.

Psaní čistého kódu se snadněji říká, než udělá.

Ať už jste Arduino Začínáme s Arduino: Průvodce pro začátečníky Začínáme s Arduino: Průvodce pro začátečníky Arduino je prototypová platforma s otevřeným zdrojovým kódem založená na flexibilním, snadno použitelném hardwaru a softwaru. Je určen pro umělce, designéry, fandy a kohokoli, kdo má zájem o vytváření interaktivních objektů nebo prostředí. tinkerer, nebo stavíte Raspberry Pi Raspberry Pi: Neoficiální výuka Raspberry Pi: Neoficiální výuka Ať už jste současným majitelem Pi, který se chce dozvědět více, nebo potenciálním vlastníkem tohoto zařízení velikosti kreditní karty, není to průvodce, který si chcete nechat ujít. aplikací s Pythonem, nebo jste dokonce vývojářem webu, je zde několik užitečných tipů, které vám usnadní čtení kódu ostatním. Zde je to, co potřebujete vědět.

Být konzistentní

Možná první a nejzjevnější tip má být konzistentní v tom, co děláte. Dobrým příkladem je postupovat podle stejných vzorců při pojmenovávání funkcí. Absolutní základy programování pro začátečníky (část 2) Absolutní základy programování pro začátečníky (část 2) V části 2 našeho absolutního začátečníka průvodce programováním, budu pokrývající základní funkce, návratové hodnoty, smyčky a podmíněné. Než se s tím vypořádáte, přečtěte si část 1, kde jsem vysvětlil ... a proměnné Základy počítačového programování 101 - Proměnné a datové typy Základy počítačového programování 101 - proměnné a datové typy Po představení a mluvení o objektově orientovaném programování dříve a odkud pochází jeho jmenovec, myslel jsem, že je čas, abychom prošli absolutními základy programování jiným způsobem než jazykem. Tento… . Měli byste si vybrat pojmenovací konvenci a držet se ní.

Jaký konvence pojmenování byste tedy měli použít?

Pokud píšete Python pro Raspberry Pi, odpověď je jasná. Standard PEP-8 (barometr pro dobrý, čistý Pythonův kód) říká, že názvy proměnných by měly být malými písmeny, přičemž každé slovo by mělo být odděleno podtržítkem. Například: gpio_input a vlhkosti_sensor_reading.

Průvodce stylem Arduino implicitně uvádí, že byste měli psát své proměnné do tzv. Camel Case. Zde slova nejsou oddělena ničím, ale první písmeno každého slova je velké, s výjimkou prvního slova. Například: buttonPressed a teplotaČtení.

Existují samozřejmě i jiné styly pojmenování proměnných. Výše uvedené je jednoduše to, co doporučují oficiální průvodci stylem. Ale ať už si vyberete cokoli, ujistěte se, že se tím budete držet, a ve svém programu používejte stejné pojmenovací konvence.

Napište smysluplné komentáře

Komentáře jsou skvělým způsobem, jak vysvětlit, co váš program dělá. Můžete říci, co každá funkce dělá a každá proměnná představuje vlastními slovy. Usnadňuje to čtení kódu třetím stranám, ale také usnadňuje jeho údržbu, protože mu nakonec lépe rozumíte.

Ale pokud nepíšete své komentáře způsobem, který je zřejmý a výrazný, nemusíte se ani tak obtěžovat.

Při psaní komentářů byste se měli pokusit vysvětlit, proč je kód navíc, kromě toho, jak. Pokuste se objasnit záměr hojně a řekněte něco o kódu, který nedokáže sám říci. Takže spíše než:

// aktualizace čtení

Zvažte psaní:

// Aktualizujte, kolikrát byl laserový paprsek přerušen, než jej rozepnete

Ujistěte se, že píšete celé, gramaticky správné věty. Kromě toho standard PEP-8 pro Python říká, že byste měli vždy psát své komentáře a proměnné v angličtině. To usnadňuje ostatním spolupracovat s vámi, pokud se rozhodnete vydat váš kód jako open source, protože angličtina je do značné míry lingua franca vývoje softwaru.

Průvodce stylem Arduino jde ještě dále a říká, že musíte komentovat každý kódový blok, každý za smyčku a každou deklaraci proměnné.

Osobně si myslím, že je to trochu extrémní. Pokud píšete výstižné, expresivní názvy proměnných, váš kód již dokumentuje. Neváhejte a přidejte komentáře tam, kde si myslíte, že jsou potřeba. Použijte svůj vlastní dobrý úsudek.

Zjednodušte svůj kód

Když se učíte vyvíjet poprvé Jak se učit programování bez stresu Jak se učit programování bez stresu Možná jste se rozhodli programovat, ať už pro kariéru nebo jen jako koníček. Skvělý! Ale možná se začínáte cítit ohromeni. Není to tak skvělé. Zde je nápověda, která vám usnadní cestu. , jste často naplněni obrovským nadšením. Čtete vše, co můžete, o zvoleném jazyce, rámci nebo platformě. Začnete se setkávat s koncepty, které jste nikdy předtím neznali, a jste příliš dychtiví je použít ve svém vlastním kódu.

Věci jako ternární operátoři, které vám umožňují kondenzovat logiku “pokud prohlášení” jako je tento:

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

Na jeden řádek, jako je tento:

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

Ternární operátoři jsou určitě v pohodě a já vás vyzývám, abyste si je přečetli. Ale když píšete kód, který je pro ostatní snadno čitelný, je nejlepší se jim vyhnout. To je jen jeden příklad.

Průvodce stylem Arduino také doporučuje vyhýbat se ukazatelům, #definovaným příkazům a datovým typům jiným, než je standardní: boolean, char, byte, int, unsigned int, long, unsigned long, float, double, string, array a neplatné. Měli byste se vyhnout datovým typům, jako je uint8_t, protože se používají méně často, nejsou vysvětleny v dokumentaci a nejsou příliš strnulé..

Odsadit a využít výhody mezery

Pokud jde o psaní čistého kódu, uživatelé Pythonu mají výhodu, protože standardní interpret jazyka Python nařizuje, aby veškerý kód musí být rozumně strukturovaná a odsazená. Pokud po každé deklaraci funkce a třídy a podmíněném příkazu neodsadíte, program se prostě nespustí.

Na Arduinu vám nic nebrání v psaní nestrukturovaného kompaktního kódu. To je v konečném důsledku obtížně čitelné a obtížně udržovatelné.

Ale nic vám nebrání v lepší struktuře kódu.

Nejprve zjistěte, o kolik se chystáte odsadit. Klíč karty byste měli používat uvážlivě, protože každý textový editor zachází s kódem ASCII pro kartu jinak, a pokud svůj kód sdílíte s někým jiným, existuje šance, že by neúmyslně mohlo do vašeho odsazení zavést nekonzistence. Tyto nekonzistence mohou narušit váš program, zejména pokud používáte jazyk citlivý na bílé znaky, jako je CoffeeScript CoffeeScript je JavaScript bez bolesti hlavy CoffeeScript je JavaScript bez bolesti hlavy Nikdy jsem moc rád psal JavaScript tolik. Od chvíle, kdy jsem použil svůj první řádek, jsem vždycky nesnášel, že to, co v něm napíšu, vždy skončí jako Jackson… nebo Python. Tento článek z OpenSourceHacker podrobněji vysvětluje, proč by se nemělo používat klávesu tab.

Mám tendenci používat čtyři mezery pro každou odrážku, ale celkový počet je jen na vás. Jen tak dlouho, dokud jsi konzistentní.

Můžete nakonfigurovat svůj IDE a textový editor tak, aby s každou kartou zacházel jako s množstvím mezer, což vám umožní používat klávesu tabulátoru bez rizika zavádění problémů. Pokud používáte Sublime Text 2, podívejte se na jejich oficiální dokumentaci. Pokud používáte Vim, stačí upravit svůj .vimrc soubor s těmito řádky. Editor Arduino to automaticky provede za vás a vloží dvě mezery, kdykoli stisknete kartu.

Pak stačí vědět, kde chcete odsadit kód. Jako obecné pravidlo byste vždy měli odsadit po každém deklaraci funkce a po každém deklaraci funkce -li, jiný, pro, zatímco, přepínač, a případ prohlášení.

Mnoho editorů přichází s možností odsazení celých bloků kódu najednou. Pokud používáte Sublime Text 2, můžete nastavit kombinaci klávesových zkratek nebo klávesových zkratek. Jinak můžete použít výchozí kombinaci, která (v OS X) je Cmd + [. V editoru Arduino můžete odsazení souboru opravit automaticky stisknutím Ctrl + T na Windows a Linux, a Cmd + T v OS X.

To záleží zcela na vašem editoru přečtěte si příručku!

Neopakujte se

Jedním z nejdůležitějších manter dobrého vývoje softwaru je neopakuj se, na které se často zkracuje SUCHÝ.

Psaní kódu DRY je neuvěřitelně důležité, protože zajišťuje konzistentnost logiky vašeho programu, umožňuje provádět změny na jednom místě a nechat se odrážet globálně a trávíte méně času psáním stejné věci znovu a znovu.

Nejlepší způsob, jak zůstat DRY, je s liberálním a štědrým využitím funkce - zapouzdření opakovaného úkolu blokem kódu, který můžete volat znovu a znovu - a zajistit, aby každý z nich byl odlišný a dobře napsaný.

Dobrá funkce je krátká; Průvodce PEP-8 říká málo o délce funkcí, ale Čistý kód: Příručka agilního softwarového řemesla od Boba Martina (velmi doporučeno) říká, že “funkce by nikdy neměly být dlouhé 20 řádků”. Nejraději by byli ještě kratší než to.

Funkce by také měly dělat přesně jednu věc. Potřebujete funkci, která dělá dvě věci? Napište dvě funkce.

Tyto tipy usnadňují sledování průběhu programu a v případě potřeby jej ladí. Další výhodou pro uživatele Arduino, kteří jsou pevně omezeni omezeními úložiště, protože se odstraní nadbytečnost. Výsledkem jsou menší programy.

Buďte výslovní

Další důležitou mantrou vývoje softwaru je “explicitní je lepší než implicitní”. To znamená, že váš kód by měl na první pohled křičet, co dělá. Průvodce stylem Arduino říká, že by se takové věci nemělo vyhýbat:

if (buttonPressed) doSomething ();  

Spíše byste měli objasnit, co se děje. Místo toho napište něco takového:

if (buttonPressed == True) doSomething ();  

Jděte ven a kód (dobře)

Psaní čistého kódu je překvapivě jednoduché. Musíte pouze být důslední ve všem, co děláte, vyhnout se propouštění a být výslovní. Pamatujte, že čistý kód je pouze kód, který lze číst.

Na toto téma je spousta skvělých čtecích materiálů. Skvělým výchozím bodem jsou návody Arduino a průvodce stylem API, následovaný standardem PEP-8, pokud vytváříte aplikace Python pro Raspberry Pi. Pokud používáte jiný jazyk (jako Javascript na desce Tessel Budování internetu věcí, s Tessel: Rada pro vývoj Node.js Vytváření internetu věcí, s Tessel: Rada pro vývoj Node.js Tessel je nové plemeno vývojová deska, která běží výhradně na Node.js, a po úspěšném Kickstarteru dosáhli bodu, kdy jsou k dispozici všem.) Podívejte se na oficiálního průvodce stylem Google..

Pokud hledáte více akademické čtení na toto téma, podívejte se na Clean Code: Handbook of Agile Software Craftsmanship od Boba Martina. Zmínil jsem se o tom dříve v tomto článku a je to vysoce doporučeno. Ačkoli to používá Javu pro ilustraci pojmů, mnoho z nápadů může být předáno do jiných jazyků, jako Python a C pro Arduino.

Existuje také několik skvělých blogových příspěvků online, které ilustrují, jak psát dobrý, popisný a čistý kód. Doporučuji vyzkoušet “Čistý, vysoce kvalitní kód: průvodce, jak se stát lepším programátorem” Arash Arabi, který píše pro butterfly.com.au, a “Základy psaní čistého kódu” od Chris Reynolds, psaní na webdevstudios.com.

Přestože to není výslovně spojeno s čistým kódem, je také užitečné zjistit, kterým funkcím a knihovnám se ve vašem jazyce nejlépe vyhnete. Například, pokud se učíte PHP, měli byste se vyhnout “mysql” knihovny a pokud stavíte fyzické produkty s Arduino, neměli byste nikdy používat funkci Delay Arduino Delay Function a proč byste ji neměli používat Arduino Delay Function a proč byste neměli používat I když je užitečné zpoždění () pro základní demonstrace toho, jak Arduino funguje, byste jej opravdu neměli používat ve skutečném světě. Zde je proč a co byste měli místo toho použít. .

Pamatujte, že kód, který je snadněji čitelný, se snáze udržuje. Navíc, pokud byste někdy něco uvízli, někdo to snáze přečte a pomůže vám.

Máte nějaké tipy pro psaní čistého kódu? Chybí mi něco? Řekni mi to! Zanechte mi komentář níže a dejte mi vědět.

Foto Kredity: Suchá postel (Premasagar), Malý klíč TAB (Kai Hendry), 2015 (Wikilogia)




iosuqawayed ([email protected])
24.09.22 11:41
http://slkjfdf.net/ - Edehom <a href="http://slkjfdf.net/">Ihecum</a> hde.yupo.cs.unedose.fr.ttf.gs http://slkjfdf.net/
ogurefiyaz ([email protected])
24.09.22 04:54
http://slkjfdf.net/ - Egatafas <a href="http://slkjfdf.net/">Iguzuxuax</a> etk.phki.cs.unedose.fr.zae.pp http://slkjfdf.net/
ivqivihob ([email protected])
24.09.22 04:37
http://slkjfdf.net/ - Aweujazo <a href="http://slkjfdf.net/">Ejusupi</a> qbl.qgqg.cs.unedose.fr.yat.ig http://slkjfdf.net/
O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.