Codificação
A codificação é a principal tarefa realizada por um desenvolvedor de software e nesta seção abordaremos linguagens de programação, ferramentas e práticas utilizados para tal finalidade.
- Programe em (pelo menos) uma linguagem de programação orientada a objetos
- Programe em (pelo menos) uma linguagem de programação funcional
- Construa soluções guiadas por testes (TDD)
- Saiba utilizar um sistema de controle de versão
- Conheça sua IDE e/ou editor de texto
- Utilize boas práticas de codificação
- Saiba como refatorar código
Programe em (pelo menos) uma linguagem de programação orientada a objetos
Programação orientada a objetos é um paradigma de programação que abstrai os conceitos do mundo real em objetos. Cada objeto possui seus próprios dados e apenas ele é capaz de manipulá-los. Esse é um dos paradigmas de programação mais utilizados em aplicações corporativas. Algumas das linguagens mais famosas são (em ordem alfabética):
Recursos
Java
Ruby
Python
Programe em (pelo menos) uma linguagem de programação funcional
Programação funcional é um paradigma de programação que molda a computação através da avaliação de funções matemáticas e evita estado e dados mutáveis.
O paradigma funcional traz ênfase no uso de funções de forma declarativa, em contraste com programação procedural ou orientada a objetos, que enfatizam mudanças no estado de forma imperativa.
Apesar de ter suas origens em lambda calculus, um sistema formal desenvolvido na década de 1930, apenas mais recentemente linguagens funcionais ganharam popularidade. Inclusive, linguagens que eram tradicionalmente Orientadas a Objeto agora estão absorvendo estes conceitos.
Exemplos de linguagens funcionais (em ordem alfabética):
Recursos
- [Artigo] Functional Programming should be your #1 priority for 2015
- [Wikipedia] Functional Programming
- [Curso] Aprender Haskell será um grande bem para você
- [Artigo] Functional Programming Jargon
- [Artigo] A rant on Object Oriented Programming
Construa soluções guiadas por testes (TDD)
O desenvolvimento guiado por testes faz com que se foque num problema por vez, recebendo feedback e refatorando a cada etapa, tendo como resultado um código com testes automatizados, facilitando a integração com o código desenvolvido por outros membros da equipe.
Recursos
- [Artigo] Introdução ao TDD
- [Livro] Desenvolvimento Guiado por Testes - Kent Beck
- [Livro] TDD na Prática
Saiba utilizar um sistema de controle de versão
Sistemas de controle de versão além de realizar o armazenamento e versionamento de arquivos como o próprio nome diz, tem funcionalidades que auxiliam, por exemplo, no trabalho de forma colaborativa, na marcação de versões significativas e junção do código escrito em diferentes máquinas.
Dentre os mais utilizados temos:
Recursos
- [Livro] Pro Git
- [Tutorial] Git - Guia Prático
- [Livro] Controle de Versão com Subversion
- [Tutorial] Uso do Mercurial
- [Livro] Mercurial: The Definitive Guide
Conheça sua IDE e/ou editor de texto
Para programar é importante dominar ao menos um editor de texto ou IDE (Integrated Development Environment). Por mais que o editor possa mudar dependendo da linguagem usada em cada contexto, conhecer uma ferramenta extremamente bem irá ajuda-lo a ser mais eficiente e produtivo. Se a pessoa desenvolvedora é uma pintora, seu editor é seu pincel! Existem vários editores disponíveis -- é importante escolher aquele que te faça sentir mais confortável. Abaixo encontram-se alguns exemplos:
Utilize boas práticas de codificação
Ao desenvolver software, é importante lembrar que outras pessoas lerão e manterão o seu código. Levando isso em consideração, ressalta-se o quão fundamental é a aplicação de boas práticas de codificação.
Códigos mal escritos podem fazer com que muitas horas sejam perdidas, tanto para entendê-los quanto para reescrevê-los de forma mais legível.
É muito importante ter em mente essas práticas no momento de desenvolver soluções. Entenda como diferenciar código bom de um ruim. Criar bons nomes, objetos, funções e classes. E também formatar o código para máxima legibilidade.
Recursos
Saiba como refatorar código
"Refatoração é uma técnica disciplinada para reestruturar um corpo de código já existente, alterando sua estrutura interna sem alterar seu comportamento". - Martin Fowler (2011).
Refatoração é o ato de executar qualquer melhoria no código, seja ela em um simples método ou em quase toda aplicação.