Cuidado, você pode ser um péssimo programador PHP

Aviso importante!

Eu sei que você não quer ver propagandas, porém o conteúdo gratuito só está aqui graças a publicidade. Considere desativar o AdBlock para esse site.

Criticar a maneira como os outros trabalham é a tarefa mais simples do mundo, mas eu quero ver se você é capaz de olhar "para o próprio umbigo" e dizer: eu sou um péssimo programador.

Lógico que ninguém vai falar isso assim de cara, então eu vou citar pontos importantes para que você seja considerado um bom profissional, e você apenas terá que responder algumas perguntas básicas, ok?

Você planeja antes de começar a codificar?

Iniciar um novo projeto não significa criar um New Project dentro de sua IDE, mas sim fazer uma checklist com as principais tarefas que você precisa fazer para então começar a programar. Infelizmente são poucos que fazem isso, e depois de algumas páginas codificadas os problemas começam a aparecer e é necessário disperdiçar um precioso tempo para achar soluções ou implementar "gambiarras" para tudo funcionar.

Sem contar que geralmente quando não há um planejamento inicial, a necessidade de refazer funções é quase inevitável, uma vez que nada foi pensado antes de executar.

Você comenta seu código fonte?

Quando estamos desenvolvendo tudo está fresquinho na nossa mente, mas quando chega a hora de dar manutenção para o sistema as dores de cabeça começam. Você não precisa comentar cada linha de código, uma vez que isso reduz muito a produtividade, mas um mínimo de informação seu código precisa ter.

Faça comentários no início de cada função a fim de identificar para que serve, que tipos de dados a função deve receber e devolver. Em páginas que não tem funções ou classes, faça um comentário no início da página relatando qual finalidade daquele arquivo, isso já é suficiente e dará um norte na hora de fazer manutenção.

Você prefere abreviar estruturas e nomes de variáveis?

Imagine que um ano depois que você entregou um sistema, o usuário peça uma alteração em determinada rotina. Depois de encontrar a tal rotina, você se depara com uma variável chamada $email, e agora, que raio de email é esse???

Não seria muito mais simples se a variável tivesse recebido um nome mais intuitivo, como por exemplo $email_pagseguro ou outro nome sugestivo de acordo com o contexto da rotina?

Você usa { } em estruturas de controle e repetição?

Esse é um erro que praticamente todos programadores cometem, mesmo sem perceber o problema que estão plantando para o futuro. Digo isso pois eu também sempre usava as chaves para esse tipo de estrutura, até o dia que precisei fazer a manutenção do meu primeiro sistema.

Imagine você pegar um arquivo de mais de 500 linhas de código e lá no meio encontrar um } (fechamento de chaves) perdido em meio a tanto código. Como saber do que se trata o fechamento sem nenhum comentário para ajudar?

Por isso use sempre os comandos END para suas estruturas, por exemplo, se você iniciar um IF, finalize o mesmo usando um ENDIF, se iniciar um FOREACH, finalize com um ENDFOREACH. Assim todo código fica mais legível e é fácil localizar o final das estruturas.

Você faz indentação de código?

Deixar de lado a indentação pensando que ela não será importante é um grande erro. Agora se você não sabe o que é indentação, o erro é mais grave ainda, comece a pesquisar sobre o assunto agora mesmo!

Podemos comparar a indentação de código em programação com a pontuação na língua portuguesa. Imagine ler um livro que não tenha vírgulas, pontos e parágrafos. Ficaria complicado não acha?

Você duplica código fonte?

Duplicar código é igual dar um tiro no próprio pé. Programador que não sabe criar funções e códigos reutilizáveis não merece ser chamado de programador, e olha que tem muitos desses por aí.

O mínimo que se espera de um desenvolvedor é que ele saiba separar a lógica do sistema da parte visual, e não fique fazendo uma salada de códigos, onde dentro do HTML vai ter SQL, PHP e tudo mais que puder ser misturado na mesma página.

Você acha que sabe tudo e não estuda mais?

Eu sei, chega um determinado ponto em que é chato pra caramba continuar estudando, afinal de contas 80% do que vamos encontrar em um curso já sabemos, e as vezes sabemos até melhor do que o tutor do curso.

O que você precisa é aprender a aprender. Ficou confuso, vou explicar então: eu não tinha mais paciência para ver aulas depois que tinha um certo nível de conhecimento, então comecei a deixar detalhes da linguagem de lado durante os curso e passei a prestar atenção somente na lógica usada pelo tutor.

Fazendo isso você aprende a pensar de formas diferentes sobre um mesmo assunto, sem contar que as vezes você aprende como não deve fazer as coisas, e isso também é válido.

Você tenta solucionar seus erros e problemas?

Isso eu canso de ver em fóruns e blogs internet a fora. O cidadão está seguindo um tutorial ou curso, e quando acontece algum tipo de erro ao invés de tentar achar a solução, se dedicar para ver o que houve de errado, ele simplesmente posta um comentário do tipo: Estou com um problema... blá blá blá... e fica sentado na frente do PC esperando a resposta "cair do céu".

Francamente, se você ainda faz esse tipo de coisa, vá procurar outra profissão, pois programdor não é um ser dependente dos outros para resolver seus problemas.

Você faz testes?

Essa é outra situação muito vista em fóruns e blogs, onde o tutor ensina fazer determinada tarefa, por exemplo: $a + $b = $c. Daí chega um "programador" e posta a seguinte pergunta: mas se eu trocar o A por X vai funcionar também?

Sinceramente, não sei por que as pessoas perdem tempo com esse tipo de pergunta, uma vez que se tivesse feito o teste além de ter descoberto sozinho, teria mostrado que é capaz de andar com as próprias pernas.

E você, é um bom programador ou descobriu algo que não gostou? Lembre-se que sempre é possível melhorar, corra atrás dos resultados, só depende de você.

Sobre o autor

Ricardo Bernardi

Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.

Comentários

Atualmente temos 32 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • fcbinfo comentou em

    Olá Ricardo.

    Sobre os {} não tenho muitos problemas com eles. Estou tão acostumado a usa-los, que se tentar trocar pra outra forma, ai sim vou acabar tendo problemas. Hoje em dia temos os editores que marcam o colchete do inicio e o do fim.

    Mas sobre os códigos "Salada mista"... acho que não há 1 código feito por mim que não seja.

    Sei fazer funções, mas as vezes quando começo a fazer algo penso: "acho que vou fazer uma função pra isso... ai depois penso... ah só vou usar 2 ou 3 vezes, vou fazer assim mesmo. No final das contas copio e colo umas 30 vezes. Lol.

    O que eu mais queria, seria conseguir enfiar no meu "teimoso" cérebro é uma coisinha chamada "objeto". Não sei o que acontece, minha cabeça parece não aceitar pensar em "objetos". Toda vez que começo a fazer algo eu tento usar, ai acabo apagando tudo e fazendo estruturado.

    Vou ver se consigo arrumar um tempo, e gastar o resto de todos os créditos que tenho em aulas de objeto. Quem sabe eu acabo engatando a segunda marcha e vou em frente. =)

    Responder
  • Tenório comentou em

    Já tive um php com mais de 3000 linhas acusando falta de uma } e arrumei em 5 minutos.
    Bom programador sabe debugar seu código.

    Responder
  • Douglas comentou em

    Olá Ricardo li suas dicas, gostei muito de verdade, mas lendo me surgiu uma dúvida mais quando você fala em não usar {} (laços) e sim usar o comando END, o comando END não seria correto utilizar quando eu não declarar um ELSE ou quando eu só quero definir o IF?

    Exemplo:

    if($ex == '1'){
    echo 'Mensagem blá blá';
    }else{
    echo 'Mensagem blá blá';
    }

    da maneira que você mencionou o código ficaria assim:

    if($ex == '1'):
    echo 'Mensagem blá blá';
    endif;

    ou seja uma validação única, pois eu só estou determinando que o IF. Não estou críticando seu método de programar, só estou com dúvida mesmo, pois eu aprendi da seguinte forma que devemos usar o laço para validação e usar o : + ENDIF somente quando eu for fazer UMA condição sem ELSE.

    Responder
  • Cícero Joceilton comentou em

    Gosto de aprender cada vez mais e este post foi um "puchão de orelha", obrigado.

    Responder
  • Renato comentou em

    Eu ja termenei 2 cursos de PHP me considero razoavel ... e concordo plenamente com o que foi dito antes procurava esses foruns hj em dia gosto de soluciona meus problemas nem que passe horas, entre outras coisas valida ai que posso adotar, muito bom mesmo, eu tenho um defeito que quanto mais aprendo mais parece que nao sei nada -.-

    Responder
  • Natália comentou em

    Parabéns pelo post, achei muito interessante e esclarecedor. Postagens como esta nos fazem refletir sobre nossos erros, e encontrar as soluções para os mesmos.

    Responder
  • Lucas Santos comentou em

    Olá,Ricardo parabéns pelo post.
    Gostaria de saber quanto tempo você levou para aprender a programar?

    Responder
  • Davidson comentou em

    Muito bem detalhado Ricardo

    Parabens pelo post ficou muito bom mesmo são coisas que todos que programa deveria saber principalmente se falando em planejamento uma das coias fundamental como vc disse ai .

    Responder
  • Allan Gadelha comentou em

    Mais um para os favoritos. Há mais de ano conheço seu site e confesso ser seu fã. Realmente existem coisas que passam despercebidas e que são de grande importância. Além do que conhecimento é sempre importante.

    Responder
  • van comentou em

    Ricardo parabéns pelo post, e obrigado por compartilhar conhecimento.
    Estou começando agora e fazendo uma auto critica vim q preciso melhorar, pois referente as {} eu sempre comento o fechamento (while do array de retorno do select, if da validação da data) das estruturas, nome de variavel acho q peco até pelo tamanho q coloco, mas acho q meu maior problema é no talvez, na parte mais importante do projeto que é PLANEJAR, agora com esse post seu vou corrigir meus maus habitos, já até anotei as perguntas q tu colocou no post pra mim sempre olhar e fazer uma auto critica.
    Muito obrigado

    Responder
  • Crystian comentou em

    Muito bom artigo!

    Desde quando comecei a programar PHP, aprendi a fazer um código com uma identação correta, tudo bem planejado e sempre estudar mais e mais.
    Com relação ao uso de { } eu prefiro assim do quem com if/endif, pois com um código bem identado, fica fácil de se localizar. Mas isso é relativo a cada pessoa, uns acham melhor trabalhar com {} e outros com o comando escrito.

    Responder
  • Daniel Hequer comentou em

    Com relação aos estudos é que muita gente
    se esquece que informática é algo que evolui a cada dia e se agente fica parado sem estudar fica pra traz, é como meu professor de TI que é tão orgulhoso e arrogante (não gosta de ensinar, tem medo que a Gente saiba) mas ele esquece que informação é pra ser compartilhada. Obrigado pelo artigo Ricardo e desde já peço que me agudem com o meu sistema de chat para uma rede escolar que estou desenvolvendo, ou seja uma dica de como devo criar utilizado PHP, Mysql e Ajax

    Responder
  • Marlene comentou em

    Ricardo, você planeja antes de começar a codificar? Se sim, como faz seu planejamento? Algum passo-a-passo ou dica? Ilustre como você faz.

    Responder
    • Sem planejamento nenhum projeto sai da teoria, e se sai sempre terá furos e bugs muitas vezes sem solução. Sobre planejamento sugiro estudar um pouco sobre engenharia de software.

      Responder
      • Daniel Hequer comentou em

        Bom Ricardo com relação ao planejamento eu lhe pergunto: quando gravaste a 2ª aula do curso Criando um portfólio dinâmico escreveste tudo em um papal no Word. Sera que foi um planejamento?

        Responder
  • Alan Silva de Albuquerque comentou em

    Olá Ricardo parabéns pelo post.

    Todos os pontos estão perfeitos, só o que eu acho em questão das {} em estrutura de repetição, não quer dizer que quem usar este tipo será um péssimo programador, eu particularmente uso desta maneira pois os softwares que uso me seleciona muito bem os trechos onde existe as repetições me facilitando muito a manutenção e sem esquecer dos comentários que faço. Não me lembro de algum editor me selecionar o trecho de código se encontrar o if/endif.

    Acho que isso é costume, no final de tudo não muda nada no desempenho do código e sim na maneira em que a pessoa está mais familiarizada.

    Só uma dica para quem está começando agora, estudem, estudem, só perguntem quando não conseguir solucionar mesmo.
    Valeu.

    Responder
    • Concordo, mas e se um dia por algum motivo você precisar trabalhar sem sua IDE que faz a boa identificação, como fica?
      Outro detalhe, acho q não consegui me expressar direito no post, o que eu me refiro é quando há muitas estruturas aninhadas umas dentro das outras, por exemplo, vários IFs e dentro dos IFs vários WHILEs ou FOREACHs. Eu quis dizer que com um } você não vai saber se é de um IF, de um ELSE, de um WHILE ou de um FOREACH, sempre precisa ficar voltando no código para saber do que se trata, concorda comigo?

      Responder
      • Alan Silva de Albuquerque comentou em

        Olá Ricardo, quando estava comentando pensei nisso que você falou "mas e se um dia por algum motivo você precisar trabalhar sem sua IDE que faz a boa identificação, como fica?", Realmente nestes casos sim.

        É concordo com você quando há muitas estruturas aninhadas uma dentro de outras eu já usei o if/endif e foreach/endforeach, senti essa necessidade em um projeto que tive muitos loops em um arquivo PHP.

        Como gosto muito das {}, eu comento todo fim de uma "}" - // falando de quem ele é fim

        Mais uma vez parabéns pelo post e essas experiências são de grande valia.

        Responder
        • Renato comentou em

          Cara eu uso muito {} tmb faço isso deixo um comentario sobre o que é... será que tem algo contra isso ou um defeito?

          Responder
  • Cristian Etchebest comentou em

    kkkk... Muito bom Ricardo, ao terminar de ler, percebi que você fez um resumo das dicas já repassadas em posts anteriores e com certeza, sempre será válido relembrar requisitos importantes para o desenvolvimento de um bom programador. Eu não sigo tudo o que você comentou, mas estou me corrigindo :). Obrigado.

    Responder
  • super2000 comentou em

    Olá Ricardo, meu nome e Gabriel tenho 16 anos, e comecei a aprender a programar ja faz 3 meses e estou seguindo suas aulas e voce me ensinou e eu procuro tudo que e tipo de fonte para aprender nao sei se vou me dar bem, mas tento de tudo para fazer uma boa programacao, fico horas na frente do pc e tento e tento. Comecei um curso de html e php em alemao com meu profesor e ele me ensina a teoria mas eu vejo seus videos e pratico com aquilo que aprendi na teoria e faco tudo junto, ainda tenho muito para aprender, mas nao sei se estou no caminho certo... muito obrigado pelo post, foi legal....

    Responder
  • Renato Silva Nascimento comentou em

    Excelente artigo como sempre Ricardo.

    Tenho estudado com afinco para o processo auto evolutivo a UML e o GIT.

    Abraço

    Responder
  • Willians comentou em

    Parabéns Ricardo pelo artigo, serei sincero a você, desejo muito iniciar a carreira como programador em Php, e ao ver este artigo me fez entender a importância da disciplina. Não existe fórmulas mágicas para solucionar problemas, devemos nos dedicar incansavelmente para obter o aperfeiçoamento necessário, só depende do nosso próprio esforço.

    Abraço.

    Responder
  • Junior comentou em

    A parte que mais me chamou a atenção, é: Você duplica código fonte?
    Creio que muitos ainda não caíram em si que reaproveitar código, não é o mesmo que copiar e sair colando a "doidado". A implementação não deve estar ligado apenas a "OO"(que muitos acham que são apenas classes para organizar ou dar forma a trechos de códigos), mas sim SOLID e Patterns, estes são esquecidos ou nem conhecidos(Singleton, Factory e Adapter são lembrados mas, nem sempre utilizados). Não existe OO sem princípios de aplicabilidade, forçando alguns desenvolvedores criarem classes, achando que estão programando OO, e duplicar trechos dessas classes dentro de outras formando assim uma colcha de retalhos denominando-se no final programadores.

    Responder
  • Daniel Hequer comentou em

    Achei bem legal o tutorial que o escreveste, na verdade tem muitos por ali com características péssimas de programador, eu acredito que sou um deles mais vou melhorar no que concerne a " Você duplica código fonte?" na verdade eu ainda faço isso e não uso as funções. mas obrigado pela dica.
    Sempre ligado com o rbtech, ops!video e ficheiro

    Responder
    • Vitor comentou em

      Pessoal

      Eu trabalhei em um projeto sendo coordenados por dois engenheiros de SOFTWARE, onde os caras desenvolveram 10 telas que executavam a mesma ação.Quando os questionei, e tentei mostrar que um objeto seria muito mais util, eu levei o seguinte puxão de orelha..."Amigo esqueça isso, aqui não trabalhamos assim, nós somos engenheiros formados pela PUC, isso que vc quer fazer n existe e n está correto!!"
      Depois da demissão dos dois por incompetencia eu tive que corrigir a cagada que fizeram e olha que não foi só essa.Esse artigo maravilhoso, prova a capacidade de muitos profissionais para certos contratantes que são leigos no assunto.Foi bom para min.Obrigado!

      Responder

Deixe seu comentário