{"id":65470,"date":"2022-08-28T15:26:04","date_gmt":"2022-08-28T20:26:04","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/"},"modified":"2022-08-28T15:26:04","modified_gmt":"2022-08-28T20:26:04","slug":"arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/","title":{"rendered":"Arduino och Raspberry Pi nyb\u00f6rjare? S\u00e5 h\u00e4r skriver du ren kod"},"content":{"rendered":"<div>\n<p>N\u00e4r du b\u00f6rjar l\u00e4sa mer och mer om mjukvaruutveckling st\u00f6ter du ofta p\u00e5 frasen \u201cren kod\u201d.  I sin renaste form \u00e4r detta kod som \u00e4r l\u00e4tt f\u00f6r andra att l\u00e4sa.  Det \u00e4r uttrycksfullt och vackert, och du kan enkelt urskilja dess avsikt helt enkelt genom att <strong>tittar p\u00e5 den<\/strong>.<\/p>\n<p>Att skriva ren kod \u00e4r l\u00e4ttare sagt \u00e4n gjort.<\/p>\n<p>Oavsett om du \u00e4r en Arduino-pysslare, eller du bygger Raspberry Pi-applikationer med Python, eller om du till och med \u00e4r en webbutvecklare, finns det n\u00e5gra anv\u00e4ndbara tips att f\u00f6lja som g\u00f6r din kod l\u00e4ttare att l\u00e4sa av andra. <strong>H\u00e4r \u00e4r vad du beh\u00f6ver veta<\/strong>.<\/p>\n<h2 id=\"be-consistent\"><span class=\"ez-toc-section\" id=\"Var_konsekvent\"><\/span>  Var konsekvent<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Det f\u00f6rsta och mest uppenbara tipset \u00e4r kanske att vara det <strong>konsekvent<\/strong> i det du g\u00f6r.  Ett bra exempel p\u00e5 detta \u00e4r att f\u00f6lja samma m\u00f6nster n\u00e4r man namnger funktioner och variabler.  Du b\u00f6r v\u00e4lja en namnkonvention och h\u00e5lla fast vid den.<\/p>\n<p>S\u00e5, vilken namnkonvention ska du anv\u00e4nda?<\/p>\n<p>Tja, om du skriver Python f\u00f6r Raspberry Pi \u00e4r svaret tydligt.  PEP-8-standarden (barometern f\u00f6r bra, ren Python-kod) s\u00e4ger att variabelnamn ska skrivas med gemener, med varje ord separerat med ett understreck.  Till exempel: <em>gpio_input <\/em>och <em>moisture_sensor_reading<\/em>.<\/p>\n<figure>\n<\/figure>\n<p>Arduinos stilguide s\u00e4ger implicit att du ska skriva dina variabler i det som kallas Camel Case.  H\u00e4r \u00e4r ord inte \u00e5tskilda av n\u00e5gonting, men den f\u00f6rsta bokstaven i varje ord \u00e4r versal, f\u00f6rutom det f\u00f6rsta ordet.  Till exempel: <em>knapp nedtryckt<\/em> och <em>temperaturavl\u00e4sning<\/em>.<\/p>\n<p>Det finns naturligtvis andra stilar av variabelnamn.  Ovanst\u00e5ende \u00e4r helt enkelt det som rekommenderas av de officiella stilguiderna.  Men vad du \u00e4n v\u00e4ljer, se till att du h\u00e5ller dig till det och anv\u00e4nd samma namnkonvention genom hela programmet.<\/p>\n<p>Kommentarer \u00e4r ett bra s\u00e4tt att f\u00f6rklara vad ditt program g\u00f6r.  Du kan ange vad varje funktion g\u00f6r och varje variabel representerar med dina egna ord.  Detta g\u00f6r det enkelt f\u00f6r en tredje part att l\u00e4sa din kod, men g\u00f6r ocks\u00e5 din kod l\u00e4ttare att underh\u00e5lla, eftersom du i slut\u00e4ndan f\u00f6rst\u00e5r den b\u00e4ttre.<\/p>\n<p>Men om du inte skriver dina kommentarer p\u00e5 ett s\u00e4tt som \u00e4r uppenbart och uttrycksfullt, kanske du inte lika g\u00e4rna bryr dig.<\/p>\n<p>N\u00e4r du skriver kommentarer b\u00f6r du f\u00f6rs\u00f6ka f\u00f6rklara varf\u00f6r koden \u00e4r, f\u00f6rutom hur.  F\u00f6rs\u00f6k att g\u00f6ra avsikten mycket tydlig och s\u00e4g n\u00e5got om koden som den inte kan s\u00e4ga sj\u00e4lv.  S\u00e5, snarare \u00e4n:<\/p>\n<pre>\/\/ update reading<\/pre>\n<p>\u00d6verv\u00e4g att skriva:<\/p>\n<pre>\/\/ Update the number of times the laser beam has been broken, before tweeting it out<\/pre>\n<p>Se till att du skriver hela, grammatiskt korrekta meningar.  Dessutom s\u00e4ger PEP-8-standarden f\u00f6r Python att du alltid ska skriva dina kommentarer och variabler p\u00e5 engelska.  Detta g\u00f6r det l\u00e4ttare f\u00f6r andra att samarbeta med dig om du skulle besluta dig f\u00f6r att sl\u00e4ppa din kod som \u00f6ppen k\u00e4llkod, eftersom engelska i stort sett \u00e4r spr\u00e5ket f\u00f6r mjukvaruutveckling.<\/p>\n<p>Arduino-stilguiden g\u00e5r \u00e4nnu l\u00e4ngre och s\u00e4ger att du m\u00e5ste kommentera varje kodblock, varje for-loop och varje variabeldeklaration.<\/p>\n<p>Personligen tycker jag att det \u00e4r lite extremt.  Om du skriver utf\u00f6rliga, uttrycksfulla variabelnamn, \u00e4r din kod redan sj\u00e4lvdokumenterande.  Som sagt, tveka inte att l\u00e4gga till kommentarer d\u00e4r du tycker att de beh\u00f6vs.  Anv\u00e4nd ditt eget goda omd\u00f6me.<\/p>\n<h2 id=\"simplify-your-code\"><span class=\"ez-toc-section\" id=\"Forenkla_din_kod\"><\/span>  F\u00f6renkla din kod<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>N\u00e4r du l\u00e4r dig att utvecklas f\u00f6r f\u00f6rsta g\u00e5ngen fylls du ofta av en enorm entusiasm.  Du l\u00e4ser allt du kan om ditt valda spr\u00e5k, ramverk eller plattform.  Du b\u00f6rjar st\u00f6ta p\u00e5 begrepp som du aldrig visste f\u00f6rut, och du \u00e4r alltf\u00f6r ivrig att anv\u00e4nda dem i din egen kod.<\/p>\n<p>Saker som tern\u00e4ra operatorer, som l\u00e5ter dig kondensera logiken i en \u201cif-sats\u201d som den h\u00e4r:<\/p>\n<pre><br\/>int x = 5;<br\/>if ( x &lt; 10) {<br\/>y = 1;<br\/>{\u00a0else {<br\/>y = 0;<br\/>}<br\/><\/pre>\n<p>P\u00e5 en enda rad, s\u00e5 h\u00e4r:<\/p>\n<pre>int x = 5; <br\/>int y = (x &lt; 10) ? 1 : 0;<br\/>printf(\"%i<br\/>\", y);<br\/><\/pre>\n<p>Tern\u00e4ra operat\u00f6rer \u00e4r verkligen coola, och jag uppmuntrar dig att l\u00e4sa om dem.  Men n\u00e4r du skriver kod som \u00e4r l\u00e4tt f\u00f6r andra att l\u00e4sa, \u00e4r det b\u00e4st att undvika dem.  Det \u00e4r dock bara ett exempel.<\/p>\n<p>Arduino-stilguiden uppmuntrar dig ocks\u00e5 att undvika pekare, #define-satser och andra datatyper \u00e4n standarden: boolean, char, byte, int, unsigned int, long, unsigned long, float, double, string, array och void.  Du b\u00f6r undvika datatyper som uint8_t, eftersom dessa \u00e4r mindre vanliga, inte f\u00f6rklaras i dokumentationen och inte \u00e4r s\u00e4rskilt kortfattade.<\/p>\n<h2 id=\"indent-and-take-advantage-of-whitespace\"><span class=\"ez-toc-section\" id=\"Indrag_och_dra_fordel_av_blanksteg\"><\/span>  Indrag och dra f\u00f6rdel av blanksteg<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>N\u00e4r det g\u00e4ller att skriva ren kod har Python-anv\u00e4ndare en f\u00f6rdel, eftersom standard Python-tolken kr\u00e4ver att all kod <strong>m\u00e5ste<\/strong> vara f\u00f6rnuftigt strukturerad och indragen.  Om du inte g\u00f6r indrag efter varje funktion och klassdeklaration och villkorssats, kommer ditt program helt enkelt inte att k\u00f6ras.<\/p>\n<figure>\n<\/figure>\n<p>P\u00e5 Arduino finns det inget som hindrar dig fr\u00e5n att skriva ostrukturerad, komprimerad kod.  Detta \u00e4r i slut\u00e4ndan sv\u00e5rt att l\u00e4sa och sv\u00e5rt att underh\u00e5lla.<\/p>\n<p>Men det finns inget som hindrar dig fr\u00e5n att strukturera din kod b\u00e4ttre heller.<\/p>\n<p>Fastst\u00e4ll f\u00f6rst hur mycket du ska dra in med.  Du b\u00f6r anv\u00e4nda tabbtangenten med omtanke, eftersom varje textredigerare behandlar ASCII-koden f\u00f6r tab p\u00e5 olika s\u00e4tt, och om du delar din kod med n\u00e5gon annan, finns det en chans att de av misstag kan inf\u00f6ra inkonsekvenser i din indragning.  Dessa inkonsekvenser kan bryta ditt program, s\u00e4rskilt om du anv\u00e4nder ett blankstegsk\u00e4nsligt spr\u00e5k som CoffeeScript eller Python.  Den h\u00e4r artikeln fr\u00e5n OpenSourceHacker f\u00f6rklarar mer i detalj varf\u00f6r tabbtangenten b\u00f6r undvikas.<\/p>\n<figure>\n<\/figure>\n<p>Jag brukar anv\u00e4nda fyra blanksteg f\u00f6r varje indrag, men det totala antalet \u00e4r upp till dig.  Bara s\u00e5 l\u00e4nge du \u00e4r konsekvent.<\/p>\n<p>Du kan konfigurera din IDE och textredigerare f\u00f6r att behandla varje flik som ett visst antal utrymmen, dock s\u00e5 att du kan anv\u00e4nda tabbtangenten utan risk f\u00f6r problem.  Om du anv\u00e4nder Sublime Text 2, kolla in deras officiella dokumentation.  Om du anv\u00e4nder Vim, redigera bara din <em>.vimrc<\/em> fil med dessa rader.  Arduino-redigeraren g\u00f6r detta automatiskt \u00e5t dig och infogar tv\u00e5 mellanslag n\u00e4r du trycker p\u00e5 tabb.<\/p>\n<p>Sedan beh\u00f6ver du helt enkelt veta var du ska dra in din kod.  Som en bra tumregel b\u00f6r du alltid g\u00f6ra indrag efter varje funktionsdeklaration och efter varje <em>om<\/em>, <em>annan<\/em>, <em>f\u00f6r,<\/em> <em>medan<\/em>, <em>v\u00e4xla<\/em>, och <em>fall<\/em> p\u00e5st\u00e5ende.<\/p>\n<p>M\u00e5nga redakt\u00f6rer kommer med m\u00f6jligheten att dra in hela kodblock p\u00e5 en g\u00e5ng.  Om du anv\u00e4nder Sublime Text 2 kan du st\u00e4lla in en snabbtangent eller en tangentkombination.  Annars kan du anv\u00e4nda standardkombinationen, som (p\u00e5 OS X) \u00e4r <strong>Cmd+[[<\/strong>.  I Arduino-redigeraren kan du fixa din fils indrag automatiskt genom att trycka p\u00e5 <strong>Ctrl+T<\/strong> p\u00e5 Windows och Linux, och <strong>Cmd+T<\/strong> p\u00e5 OS X.<\/p>\n<p>Det beror helt p\u00e5 din redakt\u00f6r, s\u00e5 <em>l\u00e4s manualen<\/em>!<\/p>\n<h2 id=\"don-t-repeat-yourself\"><span class=\"ez-toc-section\" id=\"Upprepa_inte_dig_sjalv\"><\/span>  Upprepa inte dig sj\u00e4lv<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ett av de viktigaste mantrana f\u00f6r bra mjukvaruutveckling \u00e4r <strong>upprepa inte dig sj\u00e4lv<\/strong>, som ofta f\u00f6rkortas till <strong>TORR.<\/strong><\/p>\n<p>Att skriva DRY-kod \u00e4r otroligt viktigt, eftersom det s\u00e4kerst\u00e4ller att logiken i ditt program \u00e4r konsekvent, g\u00f6r att du kan g\u00f6ra en f\u00f6r\u00e4ndring p\u00e5 en g\u00e5ng och f\u00e5 den reflekterad globalt, och du spenderar mindre tid p\u00e5 att skriva samma sak om och om igen.<\/p>\n<p>Det b\u00e4sta s\u00e4ttet att h\u00e5lla sig torr \u00e4r med en liberal och gener\u00f6s anv\u00e4ndning av <em>funktioner<\/em> \u2013 kapsla in en upprepad uppgift med ett kodblock som du kan ringa om och om igen \u2013 och se till att var och en \u00e4r distinkt och v\u00e4lskriven.<\/p>\n<figure>\n<\/figure>\n<p>En bra funktion \u00e4r kort;  PEP-8-guiden s\u00e4ger lite om funktionsl\u00e4ngd, men Clean Code: A Handbook of Agile Software Craftsmanship av Bob Martin (rekommenderas starkt) s\u00e4ger att \u201cfunktioner b\u00f6r knappast n\u00e5gonsin vara 20 rader l\u00e5nga\u201d.  Helst skulle de vara det <strong>\u00e4nnu kortare \u00e4n s\u00e5<\/strong>.<\/p>\n<p>Funktioner b\u00f6r ocks\u00e5 g\u00f6ra exakt en sak.  Beh\u00f6ver du en funktion som g\u00f6r tv\u00e5 saker? <strong>Skriv tv\u00e5 funktioner.<\/strong><\/p>\n<p>Dessa tips g\u00f6r det enkelt att f\u00f6lja fl\u00f6det av ett program och att i slut\u00e4ndan fels\u00f6ka det om det beh\u00f6vs.  Det finns ocks\u00e5 en extra f\u00f6rdel f\u00f6r Arduino-anv\u00e4ndare, som \u00e4r h\u00e5rt begr\u00e4nsade av lagringsbegr\u00e4nsningar, eftersom redundanser tas bort.  Detta resulterar i mindre program.<\/p>\n<h2 id=\"be-explicit\"><span class=\"ez-toc-section\" id=\"Var_tydlig\"><\/span>  Var tydlig<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ett annat viktigt mantra f\u00f6r mjukvaruutveckling \u00e4r <strong>\u201cexplicit \u00e4r b\u00e4ttre \u00e4n implicit\u201d<\/strong>.  Det betyder att din kod i stort sett borde skrika vad den g\u00f6r vid f\u00f6rsta anblicken.  Arduino-stilguiden s\u00e4ger att s\u00e5dant h\u00e4r b\u00f6r undvikas:<\/p>\n<pre>if(buttonPressed){ <br\/>doSomething();<br\/>}<br\/><\/pre>\n<p>Snarare b\u00f6r du g\u00f6ra det uppenbart vad som h\u00e4nder.  Skriv n\u00e5got s\u00e5 h\u00e4r ist\u00e4llet:<\/p>\n<pre>if (buttonPressed == True){ <br\/>doSomething(); <br\/>}<br\/><\/pre>\n<h2 id=\"go-out-and-code-well\"><span class=\"ez-toc-section\" id=\"Ga_ut_och_koda_tja\"><\/span>  G\u00e5 ut och koda (tja)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Att skriva ren kod \u00e4r f\u00f6rv\u00e5nansv\u00e4rt enkelt.  Du m\u00e5ste bara vara konsekvent i allt du g\u00f6r, undvika upps\u00e4gningar och vara tydlig.  Kom ih\u00e5g att ren kod bara \u00e4r kod som \u00e4r l\u00e4sbar.<\/p>\n<p>Det finns mycket bra l\u00e4smaterial om detta \u00e4mne.  En bra utg\u00e5ngspunkt \u00e4r Arduino-tutorial och API-stilguider, f\u00f6ljt av PEP-8-standarden om du bygger Python-appar f\u00f6r Raspberry Pi.  Om du anv\u00e4nder ett annat spr\u00e5k (som Javascript p\u00e5 Tessel-tavlan), kolla Google f\u00f6r en officiell stilguide.<\/p>\n<p>Om du letar efter en mer akademisk l\u00e4sning om \u00e4mnet, kolla in Clean Code: A Handbook of Agile Software Craftsmanship av Bob Martin.  Jag n\u00e4mnde det tidigare i den h\u00e4r artikeln, och det rekommenderas starkt.  \u00c4ven om den anv\u00e4nder Java f\u00f6r att illustrera koncept, kan m\u00e5nga av id\u00e9erna f\u00f6ras vidare till andra spr\u00e5k, som Python och C f\u00f6r Arduino.<\/p>\n<p>Det finns ocks\u00e5 n\u00e5gra lysande blogginl\u00e4gg online som illustrerar hur man skriver bra, beskrivande, ren kod.  Jag rekommenderar att du kollar in \u201cRen kod av h\u00f6g kvalitet: en guide om hur man blir en b\u00e4ttre programmerare\u201d av Arash Arabi som skriver f\u00f6r butterfly.com.au och \u201cThe Fundamentals of Writing Clean Code\u201d av Chris Reynolds, skriver f\u00f6r webdevstudios. com.<\/p>\n<p>\u00c4ven om det inte \u00e4r uttryckligen relaterat till ren kod, \u00e4r det ocks\u00e5 bra att l\u00e4ra sig vilka funktioner och bibliotek som b\u00e4st undviks p\u00e5 ditt val av spr\u00e5k.  Till exempel, om du l\u00e4r dig PHP b\u00f6r du undvika \u201cmysql\u201d-biblioteken, och om du bygger fysiska produkter med Arduino b\u00f6r du aldrig anv\u00e4nda Delay-funktionen.<\/p>\n<p>Kom ih\u00e5g att kod som \u00e4r l\u00e4ttare att l\u00e4sa \u00e4r l\u00e4ttare att underh\u00e5lla.  Dessutom, om du n\u00e5gonsin skulle fastna med n\u00e5got \u00e4r det l\u00e4ttare f\u00f6r n\u00e5gon att l\u00e4sa det och hj\u00e4lpa dig.<\/p>\n<p><strong>Har du n\u00e5gra tips f\u00f6r att skriva ren kod?  Har jag missat n\u00e5got?  Ber\u00e4tta f\u00f6r mig!  L\u00e4mna en kommentar nedan och l\u00e5t mig veta.<\/strong><\/p>\n<p>  Fotokrediter: Dry Bed (Premasagar), Little TAB Key (Kai Hendry), 2015 (Wikilogia)<\/p>\n<p>    <strong class=\"section-sub-title\">Om f\u00f6rfattaren<\/strong><\/p>\n<p>            <strong class=\"bio-title\">Matthew Hughes (383 artiklar publicerade)<br \/><\/strong><\/p>\n<p>Matthew Hughes \u00e4r en mjukvaruutvecklare och f\u00f6rfattare fr\u00e5n Liverpool, England.  Han hittas s\u00e4llan utan en kopp starkt svart kaffe i handen och fullkomligt avgudar sin Macbook Pro och sin kamera.  Du kan l\u00e4sa hans blogg p\u00e5 http:\/\/www.matthewhughes.co.uk och f\u00f6lja honom p\u00e5 twitter p\u00e5 @matthewhughes.<\/p>\n<p>                            Mer fr\u00e5n Matthew Hughes<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Prenumerera_pa_vart_nyhetsbrev\"><\/span>Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>G\u00e5 med i v\u00e5rt nyhetsbrev f\u00f6r tekniska tips, recensioner, free e-b\u00f6cker och exklusiva erbjudanden!<\/p>\n<p>Klicka h\u00e4r f\u00f6r att prenumerera<\/p>\n<\/p><\/div>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Var_konsekvent\" >Var konsekvent<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Forenkla_din_kod\" >F\u00f6renkla din kod<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Indrag_och_dra_fordel_av_blanksteg\" >Indrag och dra f\u00f6rdel av blanksteg<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Upprepa_inte_dig_sjalv\" >Upprepa inte dig sj\u00e4lv<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Var_tydlig\" >Var tydlig<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Ga_ut_och_koda_tja\" >G\u00e5 ut och koda (tja)<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogging-techies.com\/sw\/arduino-och-raspberry-pi-nyborjare-sa-har-skriver-du-ren-kod\/#Prenumerera_pa_vart_nyhetsbrev\" >Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>N\u00e4r du b\u00f6rjar l\u00e4sa mer och mer om mjukvaruutveckling st\u00f6ter du ofta p\u00e5 frasen \u201cren kod\u201d. I sin renaste form \u00e4r detta kod som \u00e4r l\u00e4tt f\u00f6r andra att l\u00e4sa. Det \u00e4r uttrycksfullt och vackert, och du kan enkelt urskilja dess avsikt helt enkelt genom att tittar p\u00e5 den. Att skriva ren kod \u00e4r l\u00e4ttare [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":65471,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/ipotek.net\/wp-content\/uploads\/2022\/01\/Arduino-och-Raspberry-Pi-nyborjare-Sa-har-skriver-du-ren.jpg","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[34831,88,11785,3781,26,6792,21194,1120,2239],"class_list":["post-65470","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-arduino","tag-har","tag-kod","tag-nyborjare","tag-och","tag-raspberry","tag-ren","tag-sa","tag-skriver"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/65470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=65470"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/65470\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/65471"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=65470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=65470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=65470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}