"You are about to embark upon the Great Crusade, toward which we have striven these many months."
Dwight D. Eisenhower
Olá pessoal, bem-vindos ao curso de Código Limpo: Direto das Trincheiras. Estamos aqui hoje para falar de uma guerra que aflige muitas empresas de software do mundo. A Guerra do software.
Ela começa de um jeito bem típico. Uma necessidade por um novo sistema ou alguma mudança em um sistema existente. Mas ela vem combinada à inexperiência e, no pior dos casos, desleixo e um prazo apertado.
Mesmo assim, a maioria dos programadores são verdadeiros heróis. Nós entregamos.
Aqui trazemos um exemplo de uma demanda de software. Para fins didáticos, nos restringimos a uma única função em Javascript. Só reforçando, ela faz exatamente o que foi pedido. Ela funciona, sem nenhum defeito conhecido.
Funciona, então deixa quieto. Certo? Prestem bastante atenção nesta função. O que ela faz?
function s (a, b) {
var c = a - b;
var aux = b * b + a * 5;
if (0 == c)
return a * 2;
else if (!a)
return b;
else if (b == 0)
return a;
else
return b + a;
}
Como muitos podem ter percebido, a função acima simplesmente soma 2 números.
“Funciona… Deixa quieto…”
Deixar as coisas do jeito que estão seria certo se ninguém nunca mais tocasse naquele código, se ele realmente não tiver nenhum defeito e se você não quiser ter orgulho do que faz. Fim da guerra, podemos voltar pra casa tranquilos.
Mas, no mundo real, a guerra continua. Requisitos surgem, mudam, são retirados. Defeitos são encontrados. O código tem que ser mantido.
Assim, as gambiarras são feitas, novos defeitos surgem, são corrigidos, o prazo chega, o prazo passa, você tem que trabalhar horas extras, você se esforça mais e mais.
Então… Como resolver? Vamos declarar guerra ao código ruim. Vamos batalhar pelo código limpo, dentro do prazo e do escopo pedido.
Este curso tem como meta ajudar nesta luta.
Assim, os objetivos deste curso são:
Nossas aulas serão majoritariamente on-line, através deste site, e o aprendizado se dará principalmente através da resolução de exercícios individuais e da revisão de código com colegas e com um professor-tutor.
Para cada unidade, começaremos com um exercício de auto-avaliação sobre o tópico. Você deve buscar, sozinho ou com colegas, aprender o necessário para resolver o problema com a maior qualidade possível e, individualmente, resolver este exercício. Por se tratar apenas de uma auto-avaliação, independente da qualidade do código nesta primeira etapa, você poderá preencher um formulário de confirmação e seguir para a próxima lição.
Com isso, você terá acesso a um texto e/ou vídeo explicando o assunto, bem como a um conjunto maior de exercícios. Você deve aprender o conteúdo, realizar individualmente estes novos exercícios, revisar os exercícios anteriores de auto-avaliação, e enviar tudo para seu professor-tutor.
Após o envio, o professor-tutor irá corrigir o material recebido e lhe dar feedback, solicitando melhorias. Dependendo do caso, o professor-tutor pode liberar seu acesso a exercícios complementares (extras) de algum assunto ou unidade. Apenas quando o professor-tutor avaliar que o conteúdo foi realmente apreendido por você é que você deverá acessar a próxima unidade.
Durante todo o curso, um forum / lista de e-mails estará disponível. Além disso, ocasionalmente, o professor-tutor irá agendar reuniões presenciais ou reuniões on-line (através de ferramentas como Skype e/ou GTalk) para a discussão de assuntos, resolução sincrona de dúvidas e compartilhamento de informações.
Ementa