Archive for the Programação Category

code_complete_br.jpg

Já faz um tempo que li esse livro e achei muito interessante. Queria ter postado antes. Ele fala sobre boas práticas na programação e no desenvolvimento (servindo tanto para programadores quanto para gerentes de projeto). Você já tentou explicar para alguém que estava participando do mesmo projeto que você que ele precisava usar o mesmo padrão de nomenclatura que todos da equipe, só que não sabia dizer o porquê (exceto que era por ser melhor para a equipe)? Ou quando intuitivamente você sabe que é preciso usar chaves em um bloco com if para melhorar a legibilidade de um código, só que não sabe dizer porque isso é bom (ok, exemplo tosco, mas é o melhor que eu consigo pensar!)? No livro coisas deste tipo são analisadas e mostradas com base em estatísticas nos ambientes de desenvolvimento diversos, tendo exemplos também da NASA e da IBM!

É leitura altamente recomendada para quem não acredita que Coding Standard é um requisito necessário para qualquer projeto. É claro que também é leitura para todos que querem aprimorar seus conhecimentos nessa área!

O autor mostra problemas encontrados nas mais variadas linguagens e ambientes de desenvolvimento de forma divertida e consciente, fruto dos vários anos de experiência. Leiam e depois me digam o que acharam!

P.S.: O livro em inglês é esse aqui para quem preferir.

Para quem há um bom tempo procura por um software que faz automação de teclas e mouse no Windows, entre outras coisas, aqui vai a dica: AutoHotKey. Ele é bem simples (eu diria que é tosco) se comparado à similares, mas é muito poderoso. Tem um gravador de ações que gera o código para ser usado com ele, e você pode associar à quaisquer combinações de teclas. Mas o melhor dele é que tem disponível uma série de comandos, como por exemplo, uma para colocar um caixa de entrada de valores, comparações, loops, e tudo o que se precisa em uma linguagem de programação. Sim, não me parece uma ferramenta para pessoas comuns, mas sim voltada para programadores. Melhor de tudo? É GPL, ou seja, software livre.

Atualização:
Para quem quer facilitar apagar as mensagens do inbox do orkut, adicione essas linhas ao script do AutoHotkey, que ao apertar a tecla Win+P as mensagens da página corrente serão apagadas. Mas atenção: foi feito para Mozilla Firefox, com monitor na resolução 1024×768.

#P::
SetKeyDelay, 50
MouseClick, left,  850,  401
Sleep, 100
WinWait, orkut - messages - inbox - Mozilla Firefox,
IfWinNotActive, orkut - messages - inbox - Mozilla Firefox, , 
WinActivate, orkut - messages - inbox - Mozilla Firefox,
WinWaitActive, orkut - messages - inbox - Mozilla Firefox,
Send, {ESC}{ESC}{ESC}{TAB}/
Send, {SHIFTDOWN}9{SHIFTUP}un{SHIFTDOWN}{TAB}
Send, {SHIFTUP}{SPACE}{TAB}d{TAB}{ENTER}

Faz tempo que eu não posto nada de útil por aqui, não? Hoje será diferente.
Fui ao primeiro dia do evento Extreme Programming Brasil 2004. Eu já tinha ouvido sobre XP antes, mas por falta de tempo não pude me atualizar. Alguns conceitos como refactoring, pair programming, test driving programming ficaram mais claros agora. Achei bem interessante, embora leve um tempo para amadurecer tudo e implementar isto num ambiente real de trabalho, mesmo porque tudo começa pelos testes, passa para a implementação e depois para o design em si, em um sentido completamente oposto à tradicional forma de se programar. Acho que vou começar em alguns projetos domésticos que tenho por aqui, só para ficar mais fácil.
Quem tiver alguma opinião sobre XP, casos, ou que trabalhe usando isso, por favor, os comments estão abertos!

Estou aprendendo C#, e como na maioria das linguagens que sei, aprendendo na prática! :-)
Até que estou me sentindo bem com isso. É uma mistura de C com Java (tem até ponteiros!). Algumas coisas acho realmente muito estranhas (como um tipo de funções chamadas delegate, que apontam para outras funções, que no fim das contas é bem útil, mas é meio bizarro). Tem também algumas diretivas meio estranhas no meio do código como [STAThread]. Mas acho que essas coisas todas devem soar esquisitas para mim porque eu estou aprendendo sem ter o conceito por trás da linguagem.

Uma coisa que gostei foi a forma de documentação de código gerada por ele. Limpa e funcional. E pelo que parece, geral em XML e XSL (ainda não vi isso a fundo).

A API .NET também é uma boa vantagem, e principalmente desenhar forms no bom e velho estilo VB, com uma linguagem mais poderosa.

Não. Eu não estou doando minha alma ao diabo. Ainda sou um programador C/C++ Linux com Anjuta e STL. Mas sabe como é, a empresa é M$ Solution Provider, então o melhor é aprender a usar, né não? :-)
Daqui a pouco posso tirar dúvidas de C# também, e contribuir para o desenvolvimento tecnológico do país! :-P

EU ODEIO VB6!!!!!!!!!!!!!!!
(A versão .NET ainda não vi, então não posso falar nada!)

Pronto. Desabafei.
Já estou melhor, obrigado. :-)

(Desculpem, mas ainda não acostumei a postar com frequencia!)

Tenho visto por aí muitos posts, artigos, mensagens e fóruns discutindo sobre “qual a melhor linguagem”. Engraçado é que nesses poucos anos que trabalho com programação sempre vejo esse assunto voltar à tona. Assim, acho legal expressar um pouco a minha opinião sobre o assunto.

Desde que comecei a programar (há mais ou menos 10 anos), estive envolvido em projetos grandes, pequenos, de curta, média e longa duração. Nesse período tive contato com diversas linguagens como C/C++, Java, VB, Clipper, Perl, Bash, gwbasic, Actionscript, e ainda programei para Dbase III, Lotus 1-2-3, Excel e Access. Se me perguntarem qual a melhor de todas, eu facilmente responderei: depende (sábio Fregni!). Por quê depende? Depende de vários fatores. Se o software precisa ser robusto, se o tempo de desenvolvimento é curto ou longo, se a solução precisa ser portável, e por aí vai. Essa é uma visão mais voltada para um projetista, um gerente de projeto. Isso não impede que esse mesmo cara prefira uma linguagem mais rápida para desenvolver os seus aplicativos domésticos. Aliás, isso acontece comigo normalmente. O que eu puder fazer em bash para não perder tempo, eu faço.

Em suma, tudo depende do que você vai fazer. Obviamente, isso implica em não necessariamente desenvolver em alguma linguagem que você domina, mas sim naquela que o projeto alcance os objetivos de forma eficaz, e com boa performance (quando é o caso).