Postagem em destaque

Código Limpo: Nomes Significativos

Imagem
Às vezes fico com um assunto na cabeça por semanas, até achar uma situação ou um exemplo que esclareça a situação. Explico: estava querendo já a algum tempo escrever sobre boas práticas de programação, e pensei em iniciar por "Nomes Significativos", para seguir a nomenclatura utilizada pelo ótimo livro Código Limpo , de Robert C. Martin.  Entretanto, ficava sempre amarrado em exemplos que pareciam ser bons, mas que ainda eu não tinha visto a utilidade prática.  Antes de continuar preciso explicar que tenho um hábito de anotar num bloco de papel todas as ideias que surgem, pois elas desaparecem com a mesma velocidade que aparecem. Para isso tenho um bloco e caneta na mesa de cabeceira (além de um no banheiro), pois esses são os lugares onde tenho mais ideias... Vai entender... Semana passada, estava com um problema bem complicado e tive uma ideia: "vou criar uma variável para indicar que quando um arquivo tiver um certo tamanho deve gravar algumas informações no log. Pois

Linguagem de programação, qual usar?

Atualizado às 12:30.

Às vezes, me perguntam qual linguagem de programação deve-se usar. Sempre respondo que todas (ou muitas), pois depende do que você quer desenvolver.

Se você perguntar para um desenvolvedor Java, ele vai falar que Java é melhor; se perguntar para um desenvolvedor C#, o C# é melhor, é lógico. O mesmo ocorre com todas as outras linguagens de programação. Portanto, não existe uma resposta mágica.

Mas (sempre há um "mas"), podemos mostrar quais são as melhores e/ou mais utilizadas. No Google Code Jam, que conheci através do site do Daniel Quadros (ele tem mais paciência que eu e explica detalhadamente cada problema da competição, vale a pena dar uma olhada), milhares dos melhores programadores do mundo tentam avançar pelas várias etapas da competição, e já que são os melhores é de supor que as linguagens por eles utilizadas também sejam as melhores. No terceiro round do GCJ 2011, as linguagens mais utilizadas foram:
  • C++, com 49%
  • Java, com 21%
  • Python, com 11%
Para finalizar, o texto abaixo ilustra um pouco das características mais marcantes de cada linguagem:

Como um programador mata um dragão

Java - Chega, encontra o dragão, desenvolve um framework para aniquilamento de dragoes em multiplas camadas, escreve varios artigos sobre o framework mas nao mata o dragao

.NET - Chega, olha a ideia do Javanes e a copia, tenta matar o dragao, mas é comido pelo reptil

C - Chega, olha para o dragao com olhar de desprezo, puxa seu canivete, degola o dragao, encontra a princesa, mas a ignora para ver os ultimos checkins no cvs do kernel do linux

C++ - cria um canivete basico e vai juntando funcionalidades até ter uma espada complexa que apenas ele consegue entender ? mata o dragao mas trava no meio da ponte por causa dos memory leaks

COBOL - Chega, olha o dragao, pensa que ta velho demais para conseguir matar um bicho daquele tamanho e pegar a princesa e, então, vai embora

Pascal - Se prepara durante 10 anos para criar um sistema de aniquilamento de dragao ? chegando lá descobre q o programa só aceita lagartixas como entrada

VB - monta uma arma de destruição de dragoes a partir de varios componentes, parte pro pau pra cima do dragao e, na hora H, descobre que a espada só funciona durante noites chuvosas?

PL/SQL - Coleta dados de outros matadores de dragão, cria tabelas com N relacionamentos complexidade ternaria, dados em 3 dimensões, OLAP, demora 15 anos para processar a informação. Enquanto isso a princesa virou lésbica

Ruby - chega com uma p*t* fama, falando que é o melhor faz tudo, quando vai enfrentar o dragão mostra um videozinho dele matando um dragao ? o dragão come ele de tédio

Smalltalk - chega, analisa o dragao e a princesa, vira as costas e vai embora, pois eles sao muito inferiores.

shell - cria uma arma poderosa para matar os dragoes, mas, na hora H, nao se lembra como usá-la

shell(2) - o cara chega no dragão com um script de 2 linhas que mata, corta, stripa, empala, pica em pedacinhos e impalha o bicho, mas na hora q ele roda o script aumenta, engorda, enfurece, e coloca alcool no fogo do dragão

ASSEMBLY - acha que ta fazendo o mais certo e enxuto, porém troca um A por D, mata a princesa e transa com o dragão

Fortran - Chega desenvolve uma solução com 45000 linhas de codigo, mata o dragão vai ao encontro da princesa ? mas esta o chama de tiuzinho e sai correndo atras do programador java que era elegante e ficou rico

FOX PRO - Desenvolve um sistema para matar o dragão, por fora é bunitinho e funciona, mas por dentro está tudo remendado, quando ele vai executar o aniquilador de dragoes lembra que esqueceu de indexar os DBF

CLIPPER - Monta uma rotina que carrega um array de codeblocks para insultar o dragão, cantar a princesa, carregar a espada para memória, moer o dragão, limpar a sujeira, lascar leite condensado com morangos na princesa gostosa, transar com a princesa, tomar banho, ligar o carro, colocar gasolina e voltar pra casa. Na hora de rodar recebe um ?Bound Error: Array Access? e o dragão come ele com farinha.

PHP - Faz um script que mata, empala, assa o dragão, transa com a princesa em tempo recorde, mas na hora de executar dá Error 404 - Page not found!

Analistas de Processos - Chega ao dragão com duas toneladas de documentação desenvolvida sobre o processo de se matar um dragão genérico, desenvolve um fluxograma super complexo para libertar a princesa e se casar com ela, convence o dragão que aquilo vai ser bom pra ele, e que não será doloroso. Ao executar o processo ele estima o esforço e o tamanho do estrago que isso vai causar, a assinatura do papa, do buda e do Raul Seixas para o plano, e então compra 2 bombas nucleares, 45 canhões, 1 porta aviões, contrata 300 homens armados até os dentes, quando na verdade necessitaria apenas da espada que estava na sua mão o tempo todo.

Observação: encontrei tantos links para ele que não sei quem é o pai da criança - acredito que já seja de domínio público).

Comentários

Postagens mais visitadas deste blog

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP