O pair programming(programação em par) é um método de programação no
qual duas pessoas trabalham juntas em um único programa. A primeira pessoa é o “Motorista”, que escreve o código, a outra pessoa é o “Navegador” que revisa cada linha de código conforme é digitado, verificando se há erros. Eles trocam seus papéis regularmente.
O pair programming é como um estilo de programação em que dois
programadores trabalham lado a lado em um computador, colaborando continuamente no mesmo projeto, algoritmo, código e teste. Quando um programa é desenvolvido em um par, o Navegador inspeciona continuamente todo o código que é produzido. Esta inspeção contínua é uma oportunidade para detectar erros antecipadamente e reduzir defeitos no produto final. Isto resulta em melhor colaboração, maior qualidade, melhor código e melhores práticas de desenvolvimento sustentado. Ele permite o aprendizado e compartilhamento de informações entre os desenvolvedores e, em geral, duas pessoas pensando no mesmo problema podem criar soluções e cenários mais simples e mais eficazes. Como diz o ditado, “Duas cabeças são melhores do que uma”.
O pair programming também contribui para a solidez da equipe, pois a
constante troca de papéis e conhecimentos minimiza o impacto que a perda de um membro da equipe tem sobre a equipe.
Algumas vantagens da programação em par são as seguintes:
Reduz o erro – Quando há 2 pessoas em uma equipe, é mais provável que elas façam a coisa certa, já que uma pessoa irá revisar o trabalho da outra. Melhor fluxo de trabalho e foco – A atenção e o foco no trabalho serão mais fortes. Eles se ajudam mutuamente, permanecem focados em seu trabalho e criam um fluxo de trabalho contínuo. Este fluxo é mais resistente a interrupções porque uma pessoa lida com a interrupção enquanto a outra continua trabalhando. Melhora a moral – Trabalhar coletivamente traz mais satisfação e reconhecimento. Aprendizado mútuo e contínuo – Um indivíduo ensina o outro durante o projeto, assim a troca de conhecimento é mais eficiente e rápida. União em equipe – As pessoas se conhecem melhor quando trabalham em duplas, criando uma forte sinergia na equipe. O que é Refatoração? Refatoração é o processo de alterar o código fonte de uma maneira que não altere seu comportamento externo e ainda melhore a sua estrutura interna. É uma técnica disciplinada de limpar e organizar o código, e por consequência minimizar a chance de introduzir novos bugs. Durante o desenvolvimento e manutenção do software, é comum que algumas pessoas precisem alterar e/ou adicionar novas funcionalidades em códigos que foram escritos por outras pessoas. Isso pode fazer com que o sistema acabe perdendo a integridade pouco a pouco, pois as pessoas geralmente não programam da mesma maneira, e mesmo que o software tenha sido muito bem projetado e documentado, alguns desenvolvedores podem cometer alguns deslizes, como repetir código e colocar métodos em classes inapropriadas. Isso faz com que o código fonte acabe se distanciando um pouco do que foi planejado. Pensando em evitar que isto ocorra, é interessante refatorar o código para melhorar a sua conformidade com padrões e a legibilidade, o que facilita o seu entendimento sem alterar o seu comportamento externo. Isto é, quando um código refatorado é executado, ele continua tendo o mesmo resultado final. Como já informamos, a refatoração visa apenas à melhoria interna do código fonte.
Por que refatorar?
Melhora o projeto: sem refatoração a estrutura interna de um software geralmente se degrada com as mudanças que ocorrem no decorrer do tempo. Programadores que nunca viram o código antes são encarregados de adicionar uma nova funcionalidade e provavelmente vão fugir um pouco do padrão que foi utilizado quando o software foi projetado. Aplicar refatoração após a adição dessa nova funcionalidade poderá deixá-la em conformidade com os padrões que foram utilizados nas outras funcionalidades que o software já possui; Torna o software fácil de entender: desenvolvedores geralmente estão sempre com pouco tempo para terminar suas tarefas e entregar a funcionalidade pronta. Para conseguir entregar dentro do prazo, alguns acabam se apressando na hora de codificar, o que pode prejudicar a legibilidade (clareza do código) e alguns bugs podem passar despercebidos. Erros comuns são: não nomear as variáveis corretamente, não comentar, duplicar código, colocar métodos em classes inadequadas, entre outros. Ao empregar a refatoração, muito provavelmente, tais "sujeiras" serão removidas do código, o que o tornará muito mais fácil de compreender e manter; Ajuda a achar bugs: quando um desenvolvedor vai refatorar certo código, ele deve entender exatamente o que aquele código está fazendo. Entendendo muito bem o seu funcionamento, os possíveis bugs existentes naquele código acabam se tornando evidentes. Como o desenvolvedor já está alterando o código, recomenda-se também eliminar o bug; Ajuda a programar mais rápido: com todas as vantagens citadas até agora, pode-se notar que quando a refatoração é aplicada por uma pessoa que tem domínio sobre a técnica, a qualidade do software aumenta e o código fica mais fácil de entender. Assim, quando um desenvolvedor pega o código para adicionar uma nova funcionalidade e consegue compreendê-lo mais rapidamente, o processo de desenvolvimento também ocorre de maneira mais rápida e tranquila. Apesar de sua importância, a refatoração não é algo comum nos dias de hoje, e muitos a consideram um retrabalho desnecessário (“se está funcionando por que mudar?”). Uma forma de avaliar que este pensamento não está correto é acompanhando o processo de refatoração que demonstraremos a seguir, e observar as melhorias que o código irá sofrer.