Determinar melhores práticas de codificação

8

Como novo programador, sempre foi difícil criar aplicativos, porque ainda estou no estágio de aprendizado.

Entendo que, para atingir um determinado efeito ou função em um aplicativo, haverá várias maneiras de obter o mesmo resultado.

No entanto, devo apenas criar uma função para seu estado de funcionamento, o que significa que, desde que funcione, da maneira que eu quero, então tudo ficará bem.

Qualquer programador de nível superior pode me informar a maneira correta de fazer as coisas?

pegada.
fonte
Eu sei que você perguntou sobre codificação, mas essa é uma parte muito pequena do que faz um engenheiro de software. Saiba mais sobre análise de requisitos, casos de uso, arquitetura de software, padrões de projeto, documentação detalhada do projeto, teste de unidade automatizado , teste do sistema, teste de integração, depuração, rastreamento de bugs, estimativa de esforço, planejamento de projetos, trabalho em equipe, chefes pontudos, horas extras não remuneradas, Mountain Dew ...
Mawg diz que restabelece Monica 26/02

Respostas:

4

Existem vários padrões de codificação "conhecidos" que você pode observar. Por exemplo, para o desenvolvimento C incorporado - MISRA C seria um bom começo. Este é um bom padrão de codificação em C ++. Provavelmente existem outros disponíveis para outros idiomas.

No final, é muito senso comum e práticas comuns, você ganha isso com a experiência. Obviamente, os locais de trabalho têm seus próprios padrões de codificação (ou pelo menos deveriam ter) aos quais você também deve aderir.

littleadv
fonte
Agora, tem sido algum tempo desde que eu lê-lo, mas eu me lembro que MISRA é uma piada total de #.
DeadMG
1
@DeadMG - Piada? Não por que? Ele é direcionado para um determinado nicho e, para aqueles que não estão nesse nicho, pode parecer um exagero. Mas, para um desenvolvimento crítico de segurança, essa seria uma orientação muito boa. Trabalhei com o MISRA C quando desenvolvia um padrão de codificação para minha equipe e tirei algumas coisas de lá (mas definitivamente não tudo, não estávamos desenvolvendo um código crítico de segurança que deveria ter zero bugs). No entanto, eu estou mencionando aqui como um exemplo de um padrão de codificação muito abrangente.
Littleadv
Já faz algum tempo desde que o li, então não recordo nenhum exemplo específico. Porém, lembro-me de lê-lo e de ter a firme convicção de que foi escrito por pessoas sem ideia do que estavam fazendo ou dizendo.
DeadMG
@DeadMG - então parece-me que você não tinha idéia para o que foi projetado.
Littleadv
4

O mantra que repito para meus desenvolvedores juniores é "Faça funcionar, depois faça bonito". Seu código deve seguir um padrão para nomear e quais não. Eu uso as diretrizes do Framework Design ao escrever C # com uma exceção: eu sempre coloco um _ antes do nome de um membro privado. Faz encontrá-los muito mais fácil.

Enfim, há uma segunda pergunta aqui. E é assim que você melhora o código que você escreveu. Vou apontar para Clean Code e Triple P, como deve ser lido para desenvolvedores que desejam aprender a codificar melhor.

Michael Brown
fonte
4

Ainda estamos todos na fase de aprendizado. Vai durar para sempre.

Eu acho que a melhor maneira de melhorar seu conhecimento é aprendendo com o código de outras pessoas ou fazendo a programação em pares com perfis mais altos que você.

Portanto, você deve fazer o seguinte:

  • Peça uma revisão ou programação de pares ativamente. Não espere que isso seja proposto a você. Se você é um desenvolvedor solo, considere plataformas de revisão on-line .

  • Leia o máximo de código possível. É assim que eu aprendo muitos dos recursos da estrutura .NET. "Oh, eu não sabia que poderia fazer isso em apenas uma linha de código!". É como escritores de romance que obtêm suas idéias de outros autores. Não sabe para onde olhar? Escolha um projeto de código aberto aleatório e navegue nele, assim como Stanley Kubrick fez para obter sua inspiração : ir à biblioteca e escolher QUALQUER livro em QUALQUER categoria.

Nas biografias de um de Kubrick, ele é descrito como usando um método simples para expandir sua base de conhecimento. Ele visitava sua biblioteca e selecionava livros aleatórios de categorias de informações aleatórias, sem sequer olhar para os títulos. Ele se forçaria a ler esses livros. Ao fazer isso, Stanley estava forçando sua mente a se expandir regularmente em novos territórios.

Para aprender ainda mais rapidamente, coloque em prática o que você vê, em seu próprio código ou em projetos de amostra. Isso ajudará muito a memorizar.

Aprender é provavelmente o que nos motiva a todos na programação. É uma exploração perpétua.

Comunidade
fonte
2

Realisticamente, você não pode se apropriar dos padrões de codificação de outras pessoas. Isso ocorre porque eles têm requisitos que você provavelmente não possui. Por exemplo, veja o guia de estilo C ++ do Google. É assim, não porque produz C ++ bom, mas precisamente o oposto - porque produz C ++ terrível com estilo C para que eles possam interagir com o código C legado.

A única maneira de desenvolver realisticamente bons padrões de codificação é herdá-los de alguém que já trabalhou na base de código por um longo tempo ou aprender com suas próprias experiências difíceis trabalhando nele.

Você deve criar primeiro e depois codificar. Entrar na programação é um mau hábito. Mas não faça bonito - isso é apenas uma perda de tempo.

DeadMG
fonte
0

Algumas boas maneiras de melhoria são:

  • lendo livros
  • trabalhando em equipe, sob a autoridade de desenvolvedores experientes

Você não nos fornece muitas informações para ajudá-lo com mais precisão ...

KLE
fonte
0

Eu abordaria melhorias de várias direções:

Use algumas ferramentas / plug-ins que fornecem feedback instantâneo durante a programação, para que você possa tornar seu código mais legível, utilizável, robusto, com desempenho, correto. Por exemplo, em Java, você pode usar checkstyle, PMD, Findbugs

Faça testes: isso sozinho melhora seu processo de desenvolvimento e fornece uma rede de segurança quando você está experimentando e tentando melhorar seu código, por exemplo, refatorando.

Use métricas para verificar seu resultado e obter mais dicas. Por exemplo, em Java, você é jdepend, métricas, JavaNCSS, EclEmma.

Obtenha novas idéias e informações por

  • lendo livros
  • revisão de código
  • programação em par
  • conversando com outros desenvolvedores, por exemplo, em reuniões com sacolas marrons / intervalos para almoço
  • ouvir podcasts
  • leia posts de stackexchange.
DaveFar
fonte
0

Pessoalmente, sou fã do padrão C ++ de alta integridade .

As regras são extremamente objetivas, não há convenção de nomenclatura, por exemplo.

3 Classe

3.1 Geral

Alta Integridade CPP Regra 3.1.1 Organizar definições 'classe' pelo nível de acesso, na seguinte ordem: public, protected, private. (QACPP 2108, 2109, 2191, 2192, 2195)

Justificação Ordene diminuindo o alcance do público. Os projetistas de programas clientes precisam conhecer membros públicos; os projetistas de subclasses em potencial precisam saber sobre membros protegidos; e apenas os implementadores da classe precisam conhecer membros e amigos particulares.

class C // correct access order
{
public: // ...
protected: // ...
private: // ...
};

Resistência industrial de referência C ++ A.12, A.13;

Matthieu M.
fonte