Notas dos itens avaliados/N mero de itens avaliados
N º Questões Justificativa
3.4 TECNOLOGIAS, FERRAMENTAS E BIBLIOTECAS UTILIZADAS
Nesta etapa serão descritas quais tecnologias, ferramentas e bibliotecas foram utilizadas para o desenvolvimento prático da aplicação, dando detalhes de para que são utilizadas e por que foram escolhidas para o desenvolvimento.
3.4.1 Java
Figura 4 — Logo Java
Fonte: Oracle ([201-])
O Java1 é uma linguagem de programação que foi desenvolvida na década de
90 pela empresa Sun Microsystems. Inicialmente foi desenvolvida com o objetivo de ser utilizada em produtos eletrônicos como micro-ondas, agendas, etc., contudo, acabou não tendo tanto sucesso na área escolhida. Mas com a rápida popularização da Internet, os pesquisadores envolvidos no Java decidiram adaptar a linguagem para focar neste nicho, e foi então que a linguagem cresceu em uma velocidade assustadora, onde em pouco tempo, grandes empresas do mercado de tecnologia anunciaram suporte para o Java (INDRUSIAK, 1996).
Com isso, a linguagem conseguiu uma popularização fora de série, passando a ser usada amplamente na construção de documentos web que 1 https://www.java.com/pt_BR/
permitam maior interatividade. Os principais web browsers disponíveis comercialmente passaram a dar suporte aos programas Java, e outras tecnologias em áreas como computação gráfica e banco de dados também buscaram integrar-se com o novo paradigma proposto pela linguagem: aplicações voltadas para o uso de redes de computadores. (INDRUSIAK, 1996).
Em 2009 a Oracle Corporation adquiriu a Sun Microsystem, empresa responsável pelo Java por U$$ 7,4 bilhões (ORACLE, 2019).
Principais pontos positivos do Java:
• Compatibilidade: O Java roda a partir da Máquina virtual Java, que é um software que simula uma máquina física, onde pode gerenciar processos, programas, memórias e arquivos. Ou seja, seus recursos de hardware como processador, memória e outros são virtuais, não dependendo diretamente do hardware da maquina que esta rodando em si. Assim para executar um programa em Java, quem irá gerenciar é a máquina virtual e não o sistema operacional, isso cria uma independência do sistema, onde o código criado em Windows por exemplo pode rodar em Mac ou Linux (ROMANATO, 2013). Também ao atualizar versões antigas do java para versões novas, isto não irá quebrar o código da aplicação pois o mesmo mantém as funções antigas.
• Comunidade: O tamanho da comunidade e um ponto extremamente importante para a continuação de uma linguagem, além de direcionar para onde uma linguagem vai, solicitando melhorias específicas. Ela também fornece suporte com inúmeras discussões sobre a aplicação da linguagem, discussões de problemas comuns, desenvolvimento de frameworks, entre outros. A comunidade do Java é muito grande e estável devido ao seu grande tempo de mercado e utilização.
O Java foi escolhido para ser utilizado nesta aplicação, pois além de ser a linguagem que foi utilizada durante a faculdade para a aprendizagem de programação, ela possui uma ampla comunidade, como citado anteriormente, onde é possível encontrar inúmeras fontes de informação que auxiliam na resolução de problemas e, além disso, nos dias de hoje a linguagem permanece robusta e amplamente utilizada. Segundo a pesquisa anual do Stack Overflow (2019) o Java está com 41% de popularidade na categoria de linguagens de programação, scripts e linguagens de marcação, o que e um ponto crucial na seleção de uma linguagem para o desenvolvimento de uma aplicação, para que outras pessoas possam dar manutenção e continuidade.
3.4.2 Spring
Figura 5 — Ecossistema Spring
Fonte: Amit (2015)
O Spring2 é um conjunto de bibliotecas de código aberto, desenvolvidas
inicialmente para a linguagem Java. O Spring foi disponibilizado em 2003 e tem como seu foco facilitar a criação de aplicações corporativas Java, atualmente também possui suporte ao Groovy, Kotlin e linguagens alternativas que utilizam a máquina virtual Java (SPRING, 2020).
Dentre todo o ecossistema do Spring, foram utilizados neste projeto as seguintes ferramentas/bibliotecas:
Spring Initializr: Ferramenta Web que possibilita a criação de um projeto base, dando opções de bibliotecas, linguagens, gerenciadores de dependências, entre outros (SPRING, 2020b).
Spring Boot: Auxilia no gerenciamento de dependências por arquivo de configurações e facilita a criação de aplicações stand-alone (SPRING, 2020c).
Spring Data JPA: Auxilia na iteração com a base de dados, facilitando a manipulação e o armazenamento de dados (SPRING, 2020d).
O Spring foi escolhido para ser utilizado nesta aplicação, pois ele facilita muito a inicialização do projeto sem a necessidade de se preocupar com configurações básicas, provendo um projeto base já executável. Além de fornecer anotações para diversas funções, tornando o código muito mais limpo, com isso facilitando a manutenção e continuação do código.
3.4.3 Lombok
O Lombok é um framework que foi criado e está disponível com base na licença do MIT3, onde pode ser utilizado em qualquer projeto que utilize Java.
O objetivo principal do Lombok é diminuir a quantidade de código "clichê" ou repetitivo, como getters, setters, equals, hashCode, toString, entre muitos outros. Para fazer isso ele disponibiliza algumas anotações que podem ser utilizadas nas classes que possibilitam a utilização dos códigos repetitivos sem a necessidade de serem criados pelo desenvolvedor (LOMBOK PROJECT, [201-]). Com isto reduzindo um pouco da verbosidade da linguagem e tornando o código da aplicação muito mais claro e limpo.
O Lombok foi escolhido para ser utilizado nesta aplicação pelo seu principal objetivo, onde diminui drasticamente a verbosidade do Java, deixando o código muito mais limpo e legível.
3.4.4 Typescript
Figura 6 — Logo Typescript
Fonte: Microsoft ([201-])
O Typescript4 é um super conjunto de código aberto da linguagem Javascript.
Ele foi criado e disponibilizado em 2012 e continua sendo desenvolvido pela Microsoft.
O Typescript facilita a utilização do padrão de programação orientada a objetos, trazendo consigo estruturas e facilidades de tipagem (MICROSOFT, [201-]) , tornando o Javascript mais parecido com Java em sua forma de escrita. Com isso, algumas ferramentas de código como o Visual Studio Code, ao tipar algo, já é apresentado para o usuário todas as possibilidades que podem ser utilizadas baseando-se na tipagem inferida, facilitando muito o desenvolvimento por não ser necessário fazer uma pesquisa para encontrar estas possibilidades e isto acaba evitando possíveis erros já no ambiente de desenvolvimento. Além de que, ao usar o Typescript, não é necessário adicionar a tipagem em todo o código já feito em javascript na aplicação, podendo-se trabalhar em conjunto com partes com e sem tipagem. No final de tudo, o código feito em Typescript é transformado em um código puro Javascript para que possa ser lido pelo navegador.
O Typescript foi escolhido para ser utilizado nesta aplicação principalmente pela facilidade que ele traz de evitar erros durante o processo de desenvolvimento com as suas tipagens, além de que sua popularidade e comunidade crescem cada vez mais durante os anos. Segundo a pesquisa anual do Stack Overflow (2019) o Typescript está com 21% de popularidade na categoria de linguagens de programação.
3.4.5 React
Figura 7 — Logo React
Fonte: Facebook Open Source ([201-]a)
O React5 é uma biblioteca de código aberto para Javascript que foi lançada
para a comunidade em 2013 pelo Facebook. Atualmente ele é mantido por além do Facebook, também por uma comunidade de desenvolvedores e companhias.
O foco do React não é ser uma biblioteca completa, seu objetivo é criar componentes visuais de maneira mais fácil, declarativa e flexível. O React pode ser utilizado no desenvolvimento de aplicações de página única e também no desenvolvimento de aplicativos móveis com o React Native (FACEBOOK OPENSOURCE, [201-]a).
Dentro do ecossistema do React é possível utilizar o JSX. Ele é uma extensão de sintaxe para JavaScript que permite escrever HTML dentro do mesmo (FACEBOOK OPEN SOURCE, [201-]). Ao invés de separar tecnologias e lógica em arquivos distintos, é possível utilizar esta extensão para facilitar no desenvolvimento e utilizar os dois juntos.
Principais pontos positivos do React:
• Componentização: o React possui um grande foco em componentes, onde dividimos a interface em diversos componentes independentes que podem ser tratados de forma isolada (FACEBOOK OPEN SOURCE, [201-]c). Com isso não é sempre necessário a criação de componentes específicos e complexos. Pode-se criar componentes menores e com menos funcionalidades que podem ser reutilizados em outras partes da aplicação e combinados a partir da utilização de interfaces. Isso permite a grande reutilização de código, sem a necessidade de sempre criar mais, e também, permite que a evolução e a manutenção da aplicação seja feita de uma forma mais fácil já que os módulos são independentes.
• Comunidade: O React possui uma comunidade muito grande que continua em constante crescimento, a quantidade de discussões em fóruns e blogs relacionados a desenvolvimento provem um grande auxílio ao lidar com erros e inúmeros outros cenários, isto facilita muito no desenvolvimento da aplicação e também mantém a biblioteca atualizada por muito mais tempo.
O React foi escolhido para ser utilizado nesta aplicação principalmente pelo seu constante crescimento, onde segundo a pesquisa anual do Stack Overflow (2019) o React está com 31% de popularidade na categoria de web
frameworks, também pela sua utilização e sua grande comunidade, além de facilitar
muito o desenvolvimento do Front-End pela componentização e ser um framework
que o autor está utilizando em seu trabalho atualmente .
3.4.6 Bold
Figura 8 — Logo Bold
Fonte: Laboratório Bridge (2019b)
O Bold6 é um Design System acessível, de código aberto e customizável
desenvolvido e mantido pelo Laboratório Bridge e lançado em 2019. O Bridge é um laboratório de desenvolvimento de software vinculado a Universidade Federal de Santa Catarina (LABORATÓRIO BRIDGE, 2019a).
Um Design System é um conjunto de conteúdos que agrupa fontes de conhecimento que devem ser utilizadas pelas equipes para tomar decisões, projetar, realizar e desenvolver produtos e interfaces (HACQ, 2018).
O Bold foi construído seguindo as especificações de acessibilidade da Web
Content Accessibility Guidelines do Modelo de Acessibilidade em Governo
Eletrônico, o que permite criar produtos digitais inclusivos, melhorando a experiência do usuário (LABORATÓRIO BRIDGE, 2019b).
O Bold foi escolhido para ser utilizado nesta aplicação pois ele é desenvolvido onde o autor deste estudo trabalha, além do laboratório ter vínculo com a universidade. Como o Bold possui código aberto, ele é acessível a qualquer cidadão que queira contribuir com melhorias e correções ou apenas verificar como foi desenvolvido, possuindo transparência em todo seu código, desde suas melhorias até em bugs encontrados. Durante a utilização para o desenvolvimento desta aplicação, caso seja encontrado algum erro ou seja necessário o desenvolvimento de algum componente novo, é possível abrir uma issue no Github, com isso o autor pode também contribuir para o aperfeiçoamento do mesmo.
3.4.7 Highcharts
Figura 9 — Logo Highcharts
Fonte: Highcharts... ([201-]a)
O Hightcharts7 é uma biblioteca multi-plataforma que tem como seu foco o
desenvolvimento de gráficos baseando-se em SVG. Foi criado pela Highsoft e vem sendo desenvolvido desde 2009 (HIGHCHARTS..., [201-]a). Suas características mais marcantes dentre todas as bibliotecas de gráficos é que o Highcharts é altamente customizável, possuindo uma quantidade muito grande de gráficos em sua biblioteca para se utilizar, além da possibilidade de alteração de design muito fácil (HIGHCHARTS, [201-]b). Outra característica é a facilidade de implementação, onde é necessário muito pouco tempo para conseguir dispor algum gráfico em tela, possuindo uma curva de aprendizado muito pequena.
O Highcharts foi escolhido para ser utilizado nesta aplicação pela sua curva de aprendizado ser muito baixa, demandando muito pouco tempo para conseguir colocar um gráfico completo em tela, e inclusive, possui uma forma de desenvolvimento muito simples e intuitiva, facilitando para qualquer pessoa que queira continuar a aplicação ou apenas dar manutenção a código já existente. O Highcharts possui licença não comercial onde é gratuito.