A matéria prima do programador são as ideias e, assim como elas, a variedade de programas que podemos criar é infinita. Para contar um pouco sobre suas experiências, reunimos neste DevCast uma parte do nosso time de programadores. Se você está procurando uma nova área de atuação ou começando a programar, confira a seguir um pouco do que conversamos.
O que você mais curte fazer, como programador?
Uma APIs Application Programming Interface, permite que outros programas usem recursos da sua aplicação, como o API do Facebook. Atualmente muitas empresas investem na criação de APIs, disponibilizando uma ampla variedade de serviços, como a Busca CEP
Muitas vezes, por falta de suporte, limitações tecnológicas, etc, não é possível implementar no sistema legado as funcionalidade requiridas pelo cliente. Esta necessidade tem criado um mercado conhecido atualmente como Mercado de Integração de Aplicações, que procura criar uma maior interação entre processos e dados do negócio
Seja para seu aperfeiçoamento ou correção, reescrever partes do código é sempre uma necessidade. Refactoring reúne técnicas que nos permitem realizar esse processo com segurança, sem comprometer as regras de negócio ou funcionamento da aplicação
API
Com a popularização dos web services, em especial do modelo RESTful, cada vez mais empresas têm aderido à criação de APIs, tanto para consumo interno quanto externo. Google, Facebook, Twitter e outros gigantes da tecnologia vêm tornando essa estratégia uma tendência, disponibilizando acesso a seus dados por meio de APIs públicas. Com isso, o cliente se beneficia de serviço gratuitos, enquanto o fornecedor atrai programadores para sua plataforma.
Evitar que o usuário tenha que preencher longos formulários para se cadastrar na aplicação é uma das funcionalidades que podem ser obtidas através do consumo de APIs. Você já deve ter utilizado botões como este abaixo para ingressar mais rapidamente em algum site.
Outro exemplo muito comum de consumo de API é a utilização de um serviço de pagamento, como o PagSeguro, que permite vender a crédito. Geralmente, quando precisamos de um serviço especializado optamos por absorvê-lo de uma aplicação externa. Uma das vantagem dessa decisão é poupar tempo de desenvolvimento em serviços essenciais, mas que não são a prioridade do negócio.
Integração de aplicações
Diante do avanço tecnológico, aplicações precisam evoluir com rapidez a fim de se manterem relevantes para o cliente. Estar presente em múltiplas plataformas, bem como adicionar novas funcionalidades com certa frequência é uma preocupação constante, pois por vezes a percepção de valor vem da quantidade tarefas que podem ser realizadas por um mesmo sistema de forma fácil e a qualquer hora.
Entretanto, nem sempre é viável para a Software House atender a novos requisitos, por questões estratégicas, orçamentárias, etc. Em situações como essa, evitando perder seu investimento inicial, o cliente acaba adquirindo uma segunda aplicação, muitas vezes de um outro fornecedor. Ao manter as duas ferramentas a carência é suprida, ao custo de maiores dificuldades operacionais.
A integração de aplicações corporativas procura utilizar meios computacionais/arquiteturais para que aplicações distintas sejam incorporadas aos processos de negócio de uma organização, de forma transparente para o cliente. A partir do compartilhamento de arquivos, bancos de dados, entre outros meios, diferentes sistemas podem interagir fazendo com que a troca de informação ocorra com maior fluidez. Assim, dados de um comprador podem ser utilizados tanto pelo departamento de vendas quanto pelo atendimento, financeiro, etc, mesmo que diferentes sistemas estejam sendo utilizados em cada uma dessas áreas.
Refactoring
Aplicações tendem a se tornar maiores, mais complicadas e suscetíveis a erros à medida que novas funcionalidades vão sendo adicionadas para atender diferentes necessidades. Depois de várias alterações, muitas vezes realizadas por diferentes equipes de desenvolvimento, é natural que partes do código tenham que ser reescritas. Ao conjunto de técnicas que nos permite aperfeiçoar/reparar um sistema sem que as regras de negócio sejam adulteradas ou que sua qualidade seja comprometida damos o nome de Refatoring.
Dentre as principais ferramentas utilizadas nesse processo estão os testes unitários, que permitem reescrever partes do código sem alterar seu comportamento. Abaixo listamos alguns dos passos a serem executados durante a refatoração:
Análise dos métodos de composição: Em um primeiro momento identificamos métodos muito longos e a possibilidade de quebrá-los em funções menores. É aqui que identificamos códigos duplicados, bem como excesso de responsabilidades, que dificultam a compreensão do código. Com isso estamos preparando a aplicação para refatoração.
Mover funcionalidades entre objetos: Nesse ponto começamos a escrever novas classes, buscando uma maior coesão. Também procuramos abstrair os detalhes sobre a implementação de uma funcionalidade para acesso público.
Organização dos dados: A fim tornar as classes portáveis e reutilizáveis precisamos identificar as partes mutáveis do código, do ponto de vista do polimorfismo, analisar relacionamentos bidirecionais, remover números mágicos, além de muitas outras correções. Organizar os dados é um dos processos mais minuciosos e longos da refatoração.
Além disso, também fazem parte da refatoração a simplificação de expressões condicionais e chamada de métodos, utilizando para isso padrões de projeto como strategy, factory method, façade, entre outros.
Essas são apenas algumas dentre as muitas áreas da programação. Se você sentiu falta de alguma ou tem experiências para compartilhar com a gente comente!
Um ótimo final de semana para todos :)
Sugestão de conteúdo
- Curso Criando um serviço RESTful com Java
- Curso Criando serviços RESTful em .NET
- 5 minutos Números mágicos: O que são e como corrigir
- Guia de Consulta Testes e DevOps