Hoje em dia, para atender uma tarefa de criar um cadastro de clientes, por exemplo, o mesmo profissional poderá atuar em diversas frentes, como: realizar ajustes no banco de dados, criar serviços, controladores e testes, e customizar a interface visual. Como se não bastasse, o desenvolvedor precisa, ainda, garantir a qualidade do código e manter uma boa produtividade, para que não ocorram atrasos na entrega do software. Contudo, ser produtivo em um ambiente com diversos pontos a se preocupar não é uma tarefa fácil.
Em cenários como este, para enfrentar tantos desafios, um dos primeiros passos é conhecer bem a arquitetura do projeto, os frameworks e os padrões adotados pela equipe. No entanto, isso pode ser um grande problema, pois nem todos os desenvolvedores possuem a mesma facilidade para construir telas e estilizar layouts como têm para programar do lado servidor, por exemplo. E a mesma situação ocorre para desenvolvedores com perfil voltado para design de front-end. Deste modo, quando surge a necessidade de trabalhar onde não é o mais comum, a produtividade e a qualidade costumam cair consideravelmente. Não que seja por falta de capacidade, mas pelo fato do profissional ter focado seus estudos apenas no back-end ou no front-end.
Pensando nisso, com o intuito de aumentar a produtividade e a qualidade da codificação de seus sistemas, tanto no back-end quanto no front-end, serão abordadas no decorrer deste artigo dicas de ferramentas e boas práticas de implementação utilizando Java e AngularJS. Esta solução para servidor e cliente vem se tornando um padrão para aplicações em diversos projetos devido à eficiência, escalabilidade e crescimento de mercado dessas tecnologias.
Tecnologias a seu favor
Hoje em dia há uma grande oferta de tecnologias, linguagens, ferramentas e frameworks no mercado para facilitar o trabalho de um profissional de tecnologia da informação. Uma grande parte dessa oferta está disponível na rede sob licença open source, podendo ser utilizada ou até melhorada por qualquer pessoa que esteja interessada. Porém, essa grande diversidade de opções pode gerar muitas dúvidas, o que leva a escolhas de tecnologias que não se adequam à solução proposta e consequentemente provocam atraso no desenvolvimento do projeto.
Para que não ocorram escolhas indevidas, o desenvolvedor deve buscar conhecer melhor os pontos positivos e negativos de cada tecnologia ou ferramenta que está interessado em utilizar. Lembre-se que não existe uma solução “bala de prata” a ser aplicada em todos os casos. A escolha ideal é aquela em que os pontos negativos encontrados pela equipe podem ser contornados de tal forma que não atrapalhe o andamento das atividades e seus pontos positivos sejam suficientes para justificar a decisão.
Arquitetura x Design x Solução
Por mais que o conceito de arquitetura de software seja difícil de ser compreendido, é de grande importância ter ciência do quanto esse conhecimento pode afetar o andamento de um projeto. Segundo Martin Fowler, “o termo arquitetura envolve a noção dos principais elementos do sistema, as peças que são difíceis de ser mudadas. Uma fundação na qual todo o resto deve ser construído”. Já Ralph Johnson, do GoF, define como sendo “o conjunto de decisões de design que gostaríamos de ter feito no começo do projeto”.
Partindo dessas afirmações, ao pensar na construção de uma aplicação, saiba que as primeiras decisões de tecnologias, ferramentas e padrões irão afetar todo o resto do projeto, pois irão impactar no dia a dia de trabalho dos desenvolvedores e futuramente serão difíceis de serem alteradas, caso sejam encontrados problemas ou pouca aderência da equipe à solução. As escolhas corretas nessa etapa facilitarão as correções de problemas ou alterações futuras, caso surjam.
Depois de realizadas as escolhas das principais tecnologias, as próximas decisões serão sobre o design da aplicação. Para o arquiteto de software Neal Ford, as decisões de design são feitas em cima do que foi decidido para a arquitetura como, por exemplo, o comportamento do sistema e a interatividade com o usuário em casos ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais