Como explicar a um hacker escola que recuar e nomes detalhado variáveis ??são coisas boas?

StackOverflow https://stackoverflow.com/questions/533958

Pergunta

Ele é bom programador (ganhou algumas competições), mas ele absolutamente ignora formatação. Ele considera i, j, k linda ... eu espero que ele não vai descobrir sobre a existência de Goto palavra-chave.

Foi útil?

Solução

Eu disse a meus alunos (pós-secundário) que tinham a escolha de escrever código bem ou de me escrever suas atribuições no mesmo tipo de forma que eles escreveram seu código. Eu lhes disse que iria escrever o seguinte programa:

  • levar o texto da atribuição
  • procurar um número de palavras em um dicionário de sinônimos e substituí-los com as versões obscuras
  • remover toda a pontuação
  • remover todos os espaços em branco
  • converter tudo para minúsculas
  • Inserir espaço em branco aleatória
  • capitalizar letras aleatórias

Eles poderiam então ter a atribuição ... hey seu "direito" (todas as palavras estão lá) boa sorte entender o que a atribuição é apesar de tudo.

Curiosamente as queixas pararam nesse ponto: -)

Eu também comparou-o para Inglês. Usamos quebras de parágrafo, capitalizações, etc ... como uma convenção. Quando alguém escolhe não seguir as convenções que torna a leitura muito mais difícil.

Outras dicas

escrever algum código em seu "estilo" e, em seguida, pedir-lhe para lê-lo e explicar-lhe o que está fazendo.

bom do que para o ganso e tudo ...

contar-lhe sobre python:)

Faça-o manter o código de outra pessoa que está escrito do jeito que ele escreve. Em seguida, fazê-lo manter o código de outra pessoa que foi escrito com bom estilo.

A combinação de FORTRAN77 e Python deve classificar-lo.

Código de manutenção

Coisas que eu não me importava na escola nem:)

Escrever um bando de "seu" código e pedir-lhe para encontrar uma determinada peça de código.

Dê-lhe algum código mal escrito com um bug nele e pedir-lhe para encontrar o bug.

Bem, se ele planeja fazer isso para viver apenas explicar que ele terá uma vida muito áspera em uma equipe de verdade se não, pelo menos, fazer algum esforço para seguir as normas da equipe. Se ele não pretende fazê-lo para a vida, não se preocupe com isso.

Você também pode determinar se há alguém (s) que ele admira. Se houver, então há uma boa chance bonita que eles seguem padrões.

Gostaria de salientar que ter um código limpo é um sinal de uma mente organizada e inteligente. No entanto, o verdadeiro assassino vai ser quando ele escreve uma grande quantidade de código. Eu duvido que você será capaz de convencê-lo, porque mais do que provável que ele está ficando animado sobre a lógica do aplicativo e não o processo. Vai levar experiência para ensinar-lhe uma lição dura. Então, aqui estão minhas sugestões.

  • Dê a ele um projeto cheio de bagunça não formatado mal chamado código e deixá-lo sofrer.
  • Encoraje-o a trabalhar em um projeto com uma grande base de código e deixá-lo ver o quão bem ele se lembra de seus próprios nomes de variáveis ??após o arquivo de origem 1000.
  • Você provavelmente não pode. Algumas pessoas simplesmente não obtê-lo. Eu uso os nomes de variáveis ??de auto-descrevendo tanto no trabalho como em privado, onde ninguém me diz para. Eu também tenho alguma apreciação no trabalho para a utilização longa e nomes compreensíveis.

    Se um cara não fazê-lo nem para si ou para seu projeto, em seguida, você tem esse tipo de cara. Mostre-lhe alguns documentos sobre a política de estilo de código-fonte. Explicar por que isso é importante.

    Você começa a usar a convenção de nomenclatura logo após você tem alguma experiência e você ver como e por que isso foi útil. Sem experiência é apenas uma conversa abstrato.

    P.S. Às vezes eu ficar preso com nomes de variáveis, porque eu não tenho certeza se esse nome em particular se conforma com o uso de estilo I linguística comum no projeto atual ou como é que a escala nome na linguagem de alto literatura. O problema de usar bool b1 vs. bool IsSomePropertyAvailable nunca vir para cima desde os primeiros anos da universidade.

    Eu tenho certeza que você pode misconfigure um embelezador de código para presentes, tais saída horrível. Obfuscaters são comuns, e fazer essencialmente a mesma coisa (nomes de variáveis ??inúteis curtas, sem recuo, má utilização de espaços em branco).

    Dê a ele a tarefa de tomar um programa existente com o seu estilo e adicionando um recurso trivial.

    Além disso, o código de take ele escreveu 6 meses ou mais atrás e dar a mesma tarefa.

    -Adam

    Talvez ele não seja ignorante, talvez ele esteja apenas inspirado por Kernighan e Pike.

    i, j, k é bom para loops.

    Eu, pessoalmente, prefiro usar uma carta vars em iterações ...

    foreach ($test as $t) 
    {
    }
    

    linda: D

    Licenciado em: CC-BY-SA com atribuição
    Não afiliado a StackOverflow
    scroll top