Ergonomia de API’s empresariais

Olá, esta é a primeira vez que estou escrevendo um artigo para o blog, então deixe-me apresentar.
Trabalho a 12 anos com desenvolvimento de software, destes 12, 10 dedicados a Java e J2ee com os frameworks mais diversos.
Também trabalhei bastante com PHP e Javascript, e outras “aventuras” que sempre agregaram muito a minha carreira.

Sejam bem vindos, e boa leitura.

– Introdução

Ao participar de vários projetos de desenvolvimento, onde minha equipe precisava trabalhar ou disponibilizar rotinas e padrões, percebemos dificuldades nos dois lados.
Pessoas na equipe com conhecimento limitado e que não utilizavam inglês técnico.
Funções disponibilizadas pela empresa em bibliotecas internas, que já existiam na própria linguagem nativa, entre outros exemplos.
Sendo assim, ao analisar os fatos, se deparamos com o paradigma de criação e reutilização de código.
Assim, uma das boas práticas de desenvolvimento de software(eu diria a mais importante), é a própria reutilização de código.

Escrever a mesma coisa, ou “reinventar a roda” são problemas comuns do dia a dia dos desenvolvedores, e causam grande retrabalho e perda de tempo (time is money).
Para resolver este problema, utilizamos as chamadas API’s. Mas o que é uma API? Continuar lendo

Construindo uma aplicação à prova do tempo

Quando iniciamos o desenvolvimento de uma aplicação, ainda no papel, nos deparamos com várias dúvidas e uma delas é  ‘Quais tecnologias utilizar?’. Essa pergunta não é fácil de responder, cada cenário leva a uma (ou muitas!) respostas diferentes. Com a alta volatilidade das tecnologias que vivenciamos atualmente, o essencial para uma aplicação é que ela esteja preparada para evoluir, acompanhando o que há de melhor surgindo no mercado, e para isso, a melhor carta na manga é uma boa arquitetura.

Nesse artigo abordarei um pouco de uma arquitetura na qual trabalhei recentemente e que na minha opinião exemplifica bem a flexibilidade que necessitamos: SOFEA (também conhecida como Thin Server).

Service Oriented Front-End Architecture (ou Arquitetura Front-End Orientada a Serviço) é um padrão de arquitetura que tem como objetivo desacoplar toda a lógica de apresentação de uma aplicação do servidor, ou seja, nenhuma lógica de como mostrar os dados na tela ficará no servidor, deixando a responsabilidade para quem realmente tem o dever de fazer: a aplicação cliente do usuário.

Tradicionalmente o servidor, quando requisitado, costuma reunir todas as informações necessárias (inclusive muitas repetidas) e agrega-las a uma página (htmljsp, …) que é retornada ao browser, que por sua vez necessita parsear todo o conteúdo a cada nova requisição.

d-arqcomum

O Problema desse tipo de arquitetura é o alto grau de dificuldade em evoluir a aplicação, especialmente em uma época onde a cada dia surge uma nova necessidade (como por exemplo, um site mobile ou um app) e para adaptar-se acaba gerando muito retrabalho, engessando todo o processo e deixando-a obsoleta. Continuar lendo