Arduino e pi framboesa iniciante? Veja como escrever código limpo
Video: Criptografia - Código Morse
Conteúdo
Quando você começa a ler mais e mais sobre desenvolvimento de software, você freqüentemente deparamos com a frase “código limpo”. Na sua forma mais pura, este é o código que é fácil para outras pessoas para ler. É expressivo e bonito, e você pode facilmente discernir a sua intenção simplesmente olhando para ele.
Escrever código limpo é mais fácil dizer do que fazer.
Se você é um Arduino tinkerer, ou você está construindo Raspberry Pi aplicações com Python, ou você é mesmo um desenvolvedor web, existem algumas dicas úteis a seguir que vai tornar seu código mais fácil de ler por outros. Aqui está o que você precisa saber.Começando com o Arduino: Guia de um novatoComeçando com o Arduino: Guia de um novatoArduino é uma plataforma electrónica de prototipagem de código aberto baseado em flexível e fácil de usar hardware e software. É destinado a artistas, designers, entusiastas e qualquer pessoa interessada em criar objetos ou ambientes interativos.consulte Mais informação
Ser consistente
Talvez a primeira, e mais óbvia dica, é ser consistente no que você faz. Um bom exemplo disto é seguindo os mesmos padrões ao nomear funções e variáveis. Você deve escolher uma convenção de nomenclatura, e ficar com ela.
Então, o que convenção de nomenclatura que você deve usar?
Bem, se você estiver escrevendo Python para Raspberry Pi, a resposta é clara. O padrão PEP-8 (o barómetro para um bom código Python, limpo) diz que nomes de variáveis devem ser em letras minúsculas, com cada palavra separadas por um sublinhado. Por exemplo: gpio_input e moisture_sensor_reading.
O guia de estilo Arduino afirma implicitamente que você deve escrever suas variáveis no que é conhecido como Camel Case. Aqui, as palavras não são separados por qualquer coisa, mas a primeira letra de cada palavra é maiúscula, exceto para a primeira palavra. Por exemplo: buttonPressed e temperatureReading.
Há, naturalmente, outros estilos de nomenclatura de variáveis. A descrição acima é simplesmente que é recomendado pelos guias oficiais de estilo. Mas o que você escolher, certifique-se ater por ele, e usar a mesma convenção de nomenclatura todo o seu programa.
Escrever significativas Comentários
Os comentários são uma ótima maneira de explicar o que o programa faz. Você pode afirmar que cada função faz e cada variável representa em suas próprias palavras. Isto torna mais fácil para um terceiro para ler o código, mas também faz seu código mais fácil de manter, como você finalmente entender melhor.
Mas se você não escrever seus comentários em uma forma que é óbvio, e expressivo, então você pode não tão bem se preocupar.
Ao escrever comentários, você deve tentar explicar o porquê do código, além do como. Experimente e tornar a intenção claro, e dizer algo sobre o código que ele não pode dizer-se. Então, em vez de:
// leitura atualização
Considere escrever:
// Atualiza o número de vezes que o feixe de laser foi quebrado, antes de twittar-lo
Certifique-se de que você escreve na íntegra, frases gramaticalmente corretas. Além disso, o padrão PEP-8 para Python diz que você deve sempre escrever seus comentários e variáveis em Inglês. Isto torna mais fácil para os outros a colaborar com você, se você decidir liberar seu código de fonte aberta, como o Inglês é praticamente a língua franca de desenvolvimento de software.
O guia de estilo Arduino vai ainda mais longe e diz que você deve comentar cada bloco de código, cada loop for, e cada declaração de variável.
Pessoalmente, eu acho que é um pouco exagerado. Se você está escrevendo, nomes de variáveis expressivas detalhado, então o seu código já é auto documentar. Dito isto, não hesite em adicionar comentários onde você acha que eles são necessários. Use seu bom senso.
Simplificar o seu código
Quando você está aprendendo a desenvolver pela primeira vez, muitas vezes você é preenchido com uma imensa onda de entusiasmo. Você lê tudo que puder sobre o seu idioma, estrutura, ou plataforma escolhida. Você começar a encontrar conceitos que você nunca soube antes, e está tudo muito ansioso para usá-los em seu próprio código.Como aprender programação sem todo o stressComo aprender programação sem todo o stressTalvez você decidiu seguir a programação, seja para uma carreira ou apenas como um hobby. Ótimo! Mas talvez você está começando a sentir-se oprimido. Não tão grande. Aqui está a ajuda para facilitar sua viagem.consulte Mais informação
Video: CLEAN CODE #2: O que é código limpo?
Coisas como operadores ternários, que permitem-lhe comprimir a lógica de um “if” como esta:
int X = 5-E se ( X lt; 10) {y = 1-{ outro {y = 0-}
Em uma única linha, como este:
int X = 5-int y = (X lt; 10) ? 1 : 0-printf("%dentro", y)-
operadores ternários são certamente legal, e eu encorajo-vos a ler sobre eles. Mas quando você está escrevendo código que é fácil para os outros a ler, eles estão melhor evitar. Isso é apenas um exemplo, no entanto.
O guia de estilo Arduino também incentiva-lo a evitar ponteiros, declarações #define, e outras que o padrão tipos de dados: boolean, carvão animal, byte, int, int não assinado, longo, sem assinatura longo, float, double, string, array e sem efeito. Você deve evitar os tipos de dados, como uint8_t, como estes são menos utilizados, não explicado na documentação, e não terrivelmente concisa.
Travessão, e tirar proveito de espaços em branco
Quando se trata de escrever um código limpo, os usuários do Python estão em vantagem, como os mandatos padrão interpretador Python que todo o código devo ser significativamente estruturada e recuado. Se você não recuar depois de cada função e declaração de classe e instrução condicional, seu programa simplesmente não vai funcionar.
Em Arduino, não há nada que você parar de escrever código desestruturado, compactado. Este, em última análise, é difícil de ler e difícil de manter.
Mas não há nada que impeça você de estruturar seu código melhor, também.
Em primeiro lugar, estabelecer o quanto você está indo para recuar por. Você deve usar a tecla tab criteriosamente, já que cada editor de texto trata o código ASCII para guia de forma diferente, e se você está compartilhando seu código com outra pessoa, há uma chance de que eles podem inadvertidamente introduzir inconsistências em seu recuo. Essas inconsistências podem quebrar o seu programa, especialmente se você estiver usando uma linguagem sensível ao espaço em branco como CoffeeScript ou Python. Este artigo da OpenSourceHacker explica mais detalhadamente por que a tecla Tab deve ser evitado.CoffeeScript é javascript sem a cabeçaCoffeeScript é javascript sem a cabeçaEu nunca realmente gostei de escrever javascript tanto assim. Desde o dia em que escrevi minha primeira linha de usá-lo, eu sempre se ressentia de que tudo o que eu escrever nele sempre acaba parecendo um Jackson ...consulte Mais informação
I tendem a usar quatro espaços para cada travessão, mas o número total é até você. Contanto que você está consistente.
Você pode configurar o editor IDE e um texto para tratar cada aba como um determinado número de espaços, no entanto, permitindo que você use a tecla tab, sem o risco de introduzir problemas. Se você usar texto Sublime 2, consulte a sua documentação oficial. Se você usa Vim, basta editar o seu .vimrc arquivo com estas linhas. O editor Arduino faz isso automaticamente para você, e insere dois espaços sempre que você pressionar guia.
Então, você simplesmente precisa saber onde recuar seu código. Como uma boa regra de ouro, você deve sempre travessão após cada declaração de função, e depois de cada E se, outro, para, enquanto, interruptor, e caso declaração.
Muitos editores vêm com a capacidade de recuar blocos inteiros de código ao mesmo tempo. Se você usar texto Sublime 2, você pode configurar uma tecla de atalho ou combinação de teclas. Caso contrário, você pode usar a combinação padrão, que (no OS X) é Cmd + [. No editor de Arduino, você pode corrigir o recuo do seu arquivo automaticamente, premindo Ctrl + T no Windows e Linux, e Cmd + T no OS X.
Depende inteiramente o seu editor, então ler o manual!
Não Repeat Yourself
Um dos mantras mais importantes do bom desenvolvimento de software é Não se repita, que é muitas vezes abreviado para SECO.
Escrever código DRY é extremamente importante, pois garante que a lógica do seu programa é consistente, permite-lhe fazer uma mudança em uma vez lugar e tê-lo refletido no mundo, e você gasta menos tempo a escrever a mesma coisa uma e outra vez.
A melhor maneira de ficar seco é com um uso liberal e generosa funções - encapsular uma tarefa repetida com um bloco de código que você pode chamar de novo e de novo - e garantir que cada um é diferente e bem escrito.
Uma boa função é curto o guia PEP-8 diz pouco sobre o comprimento função, mas Clean Code: Um Manual de Agile Software Craftsmanship por Bob Martin (altamente recomendado) diz que “funções devem quase nunca ser de 20 linhas long”. De preferência, eles estariam ainda menor do que.
Funções também deve fazer exatamente uma coisa. Precisa de uma função que faz duas coisas? Escrever duas funções.
Essas dicas torná-lo fácil de seguir o fluxo de um programa, e em última análise, depurá-lo se for necessário. Há também um benefício adicional para os usuários Arduino, que são fortemente condicionados por limitações de armazenamento, como redundâncias são removidos. Isso resulta em programas menores.
Seja explícito
Outro mantra importante de desenvolvimento de software é “Explícito é melhor do que implícito”. Isso significa que seu código deve praticamente gritar o que está fazendo à primeira vista. O guia de estilo Arduino diz que algo como isso deve ser evitado:
E se(buttonPressed){faça alguma coisa()-}
Em vez disso, você deve deixar claro o que está acontecendo. Em vez disso, escrever algo como isto:
E se (buttonPressed == Verdade){faça alguma coisa()-}
Vá para fora e de Código (Bem)
Escrever código limpo é surpreendentemente simples. Você simplesmente tem que ser coerente em tudo o que fizer, evitar redundâncias, e ser explícito. Lembre-se, código limpo é apenas o código que é legível.
Video: 1001: O CÓDIGO BINÁRIO
Há uma grande quantidade de material ótima leitura sobre este assunto. Um grande ponto de partida é tutorial e estilo API guias Arduino, seguido pelo padrão PEP-8 se você está construindo aplicativos Python para o Raspberry Pi. Se você estiver usando outro idioma (como javascript na placa Tessel), Verifique Google para um guia oficial estilo.Construir A Internet das Coisas, Com Tessel: O Conselho de Desenvolvimento Node.jsConstruir A Internet das Coisas, Com Tessel: O Conselho de Desenvolvimento Node.jsTessel é uma nova geração de placa de desenvolvimento que é executado inteiramente no Node.js, e depois de um Kickstarter bem sucedida, eles agora chegou ao ponto de estar disponível para todos.consulte Mais informação
Se você está procurando uma leitura mais acadêmico sobre o assunto, veja Código de Limpeza: A Handbook of Agile Software Craftsmanship por Bob Martin. Eu mencionei isso no início deste artigo, e é altamente recomendado. Embora ele usa Java para ilustrar os conceitos, muitas das idéias pode ser transmitida a outras linguagens, como Python e C para Arduino.
Há também alguns posts brilhantes on-line que ilustram como escrever código bom, descritivo, limpo. Eu recomendo que você verifique “Clean, código de alta qualidade: um guia sobre como se tornar um programador melhor” por Arash Arabi escrevendo para butterfly.com.au, e “Os fundamentos de escrever código limpo” por Chris Reynolds, escrevendo para webdevstudios. com.
Embora não explicitamente relacionado para limpar o código, também é útil para aprender o que funciona e bibliotecas devem ser evitados no idioma de sua escolha. Por exemplo, se você está aprendendo PHP, você deve evitar as bibliotecas “mysql”, e se você está construindo produtos físicos com Arduino, você deve nunca utilize a função Delay.Arduino Delay Função, e por que você não deve usá-loArduino Delay Função, e por que você não deve usá-loEnquanto delay () é útil para demonstrações básicas de como Arduino funciona, você realmente não deve usá-lo no mundo real. Aqui está o porquê, e que você deve usar em seu lugar.consulte Mais informação
Lembre-se, o código que é mais fácil de ler é mais fácil de manter. Além disso, você deve sempre ficar preso com alguma coisa, é mais fácil para alguém para lê-lo e ajudá-lo.
Você tem dicas para escrever código limpo? Eu perdi alguma coisa? Conte-me! Deixe-me um comentário abaixo e deixe-me saber.
Créditos das fotos: Bed seco (Premasagar), Little TAB chave (Kai Hendry), 2015 (Wikilogia)