<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Diego Lucas de Sousa</title>
    <description>The latest articles on DEV Community by Diego Lucas de Sousa (@diego-sousa).</description>
    <link>https://dev.to/diego-sousa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1023674%2Fd0d3fcfb-7f06-46d4-b3ae-3050386c903f.jpeg</url>
      <title>DEV Community: Diego Lucas de Sousa</title>
      <link>https://dev.to/diego-sousa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/diego-sousa"/>
    <language>en</language>
    <item>
      <title>As Frameworks Spring e Spring Boot</title>
      <dc:creator>Diego Lucas de Sousa</dc:creator>
      <pubDate>Fri, 05 Jan 2024 19:05:01 +0000</pubDate>
      <link>https://dev.to/diego-sousa/as-frameworks-spring-e-spring-boot-26mm</link>
      <guid>https://dev.to/diego-sousa/as-frameworks-spring-e-spring-boot-26mm</guid>
      <description>&lt;h2&gt;
  
  
  Entendendo as diferenças e utilidades de Spring e Spring Boot
&lt;/h2&gt;

&lt;p&gt;Ao tratar de linguagens de programação com propósitos generalizados, estamos englobando um universo de recursos incluídos em uma única plataforma, é o caso do Java. Trabalhar com programação em Java permite lidar com uma gama de opções e funcionalidades para o desenvolvimento das mais diversas aplicações. Contudo, o mercado possui demandas comuns que são repetidas em vários produtos.&lt;/p&gt;

&lt;p&gt;Nesse contexto, projetos começam a possuir um modelo relativamente repetido, que possui vários requisitos similares. Quanto maior o projeto, mais especificações, especialmente de segurança, são necessárias, e a configuração e produção do mesmo se torna cansativa. Assim encontramos soluções em frameworks, que trazem em si os elementos repetidos já pré-configurados e prontos para desenvolvimento.&lt;/p&gt;

&lt;p&gt;Por esse motivo, houve busca por estruturas e ferramentas de programação que tragam maior produtividade aos desenvolvedores de software e às corporações. Mais especificamente, a busca por soluções para o desenvolvimento em Java gerou diversas iniciativas, principalmente no universo de aplicações web. Nesse contexto que frameworks como Spring e Spring Boot surgiram.&lt;/p&gt;

&lt;p&gt;Soluções de baixo custo, versatilidade, segurança e alta demanda, essas frameworks são comumente usadas no mercado. O trabalho de configuração generalista e complexo se torna um peso a menos na vida do programador e passa a ser resolvido por essas ferramentas.&lt;/p&gt;

&lt;p&gt;Como um desenvolvedor de software Java, é importante entender essas diferentes ferramentas e suas aplicações no mercado atual, principalmente porque grandes empresas como Udemy, Ifood e MercadoLivre já reportaram que utilizam-nas em seus sistemas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spring
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcly46ood2v3s23esr3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcly46ood2v3s23esr3w.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Spring Framework é uma ferramenta de aplicação open-source para a plataforma Java. Os seus recursos principais, como a inversão de controle, podem ser usados por qualquer aplicação, sendo que há inúmeras extensões para a criação em web sobre a plataforma Java EE. Mesmo que a framework não exija nenhum modelo de programação, ela se tornou muito popular como adição ao modelo EJB (Enterprise JavaBeans) na comunidade de desenvolvedores.&lt;/p&gt;

&lt;p&gt;Como mencionado acima, é uma framework open-source, ou seja, livre para distribuição e modificação dos usuários. Seu objetivo é simplificar o desenvolvimento de  aplicações Java corporativas, assim como programação leve com Java POJOs (Plain Old Java Objects), minimizar código boilerplate* com classes assistentes. Além disso, ela também promove a utilização de injeção de dependência para vinculação fraca (loose coupling*) entre seus componentes.&lt;/p&gt;

&lt;p&gt;Spring oferece uma variada gama de recursos para melhorar a produtividade do programador em sua infraestrutura, separando-se em módulos. Alguns exemplos que incluem as principais funcionalidades que um projeto requer são: Spring MVC, Spring Security, Spring Test, entre outros. Cada um deles permite uma produção mais eficiente e robusta para aplicações, considerando os padrões da indústria.&lt;/p&gt;

&lt;p&gt;Podemos identificar vários benefícios na implementação de Spring, especialmente pelo fato de que pode ser usado em todas as camadas de desenvolvimento de uma aplicação. Já mencionado anteriormente, é uma opção leve para produção robusta. Além disso, é uma opção para desenvolvimento escalável, como no caso de microsserviços.&lt;/p&gt;

&lt;p&gt;Apesar de suas features trazerem grande mudança no mercado de desenvolvimento de software, ainda assim o Spring sofreu muitas críticas principalmente com relação ao modo como se configura seu container utilizando arquivos XML, que se tornavam cada vez mais difíceis de serem mantidos conforme a aplicação aumentava. Além disso, a gestão de dependências também foi alvo de reclamações por sua complexidade, algo que piorou com o tempo, já que a programação de aplicações também tem se tornado mais complexa.&lt;/p&gt;

&lt;p&gt;Boilerplate = termo usado para descrever código que deve ser repetido diversas vezes&lt;br&gt;
Loose Coupling = quando partes do sistema funcionam independentes entre si&lt;/p&gt;

&lt;h2&gt;
  
  
  Spring Boot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyt6gb54rl67a149xd317.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyt6gb54rl67a149xd317.png" alt=" " width="700" height="300"&gt;&lt;/a&gt;&lt;br&gt;
Então chegamos ao Spring Boot, que veio juntamente com a crescente demanda no mercado por uma opção de simples implementação e produção. Enquanto Spring se tornava cada vez mais complexo, gerando dificuldade na criação de aplicações baseadas nele, o Spring Boot veio para oferecer setup simples e pré-configurado.&lt;/p&gt;

&lt;p&gt;Spring Boot é um micro framework mantida pela Pivotal, uma empresa americana  multinacional de software e serviços fundada em 2013. A ideia por trás dessa ferramenta é aproveitar as tecnologias já existentes para aumentar a produtividade dos desenvolvedores. A mudança agora está na forma como se configura, organiza e executa o código das aplicações, como mencionado acima, trazendo uma solução para as críticas feitas anteriormente ao Spring 4.0.&lt;/p&gt;

&lt;p&gt;Alguns de seus principais recursos: Flexibilização na configuração de Java Beans, arquivos XML e transações da base de dados; Sem configurações manuais, tudo é auto-configurado pelo próprio Spring Boot; Aplicações baseadas em annotations; Facilita o gerenciamento de dependências.&lt;/p&gt;

&lt;p&gt;Basicamente, sua arquitetura pode ser explicada como uma fina camada que se sobrepõe em tecnologias e ferramentas já estabelecidas e consagradas no mercado, com a diferença principal sendo no modo como se acessa e configura essas soluções. A intenção por trás do Spring Boot é minimizar o código e torná-lo o mais simples possível.&lt;/p&gt;

&lt;p&gt;Porém, assim como Spring, ainda há diversos problemas envolvidos na produção com Spring Boot. Como tudo é pré-configurado, há um menor controle, além de uma quantidade de dependências não usadas que geram um arquivo grande. Além disso, não é considerada uma boa ferramenta para criação de aplicações em larga-escala (apesar de ser muito usada para desenvolvimento de microsserviços).&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Ambas são ferramentas utilizadas no mercado que trazem uma série de benefícios para um desenvolvedor Java. Spring é leve e auxilia na produção de código com boas práticas. Spring Boot é autoconfigurado e possui padrões intuitivos, aumentando a velocidade de programação e simplificando o código.&lt;/p&gt;

&lt;p&gt;Considerando isso, atualmente a prática comum é aplicar as duas em conjunto. Dificilmente será vantajoso utilizar Spring em sua essência. Apesar das configurações do Spring Boot vir acompanhado de várias dependências desnecessárias, ainda é uma opção viável na maioria dos casos.&lt;/p&gt;

</description>
      <category>springboot</category>
      <category>spring</category>
      <category>java</category>
    </item>
    <item>
      <title>O Básico Sobre a Certificação Java</title>
      <dc:creator>Diego Lucas de Sousa</dc:creator>
      <pubDate>Mon, 24 Apr 2023 19:28:49 +0000</pubDate>
      <link>https://dev.to/diego-sousa/o-basico-sobre-a-certificacao-java-2jbl</link>
      <guid>https://dev.to/diego-sousa/o-basico-sobre-a-certificacao-java-2jbl</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Oracle, a empresa responsável pela linguagem de programação Java, criou um exame para avaliar o nível de conhecimento que os desenvolvedores têm sobre a mesma e, a partir dessa avaliação, creditam o indivíduo como proficiente para uma gama extensa de companhias que reconhecem essa prova.&lt;/p&gt;

&lt;p&gt;Atualmente é necessário apenas um exame, porém até pouco tempo atrás dois exames faziam parte do processo de avaliação.&lt;/p&gt;

&lt;p&gt;Em caso de dúvidas, 1Z0-819 é o código que a Oracle utiliza para identificar esse exame, como faz com vários outros, incluindo 1Z0-816 e 1Z0-808&lt;/p&gt;

&lt;h2&gt;
  
  
  Versão do Java
&lt;/h2&gt;

&lt;p&gt;O Java SE 19 foi lançado em Setembro deste ano e terá suporte até 2023 e o Java SE 17 é uma versão de suporte a longo prazo (do inglês, Long Term Support - LTS). Nesse caso fica a dúvida de qual versão o desenvolvedor deve se atentar para fazer o exame.&lt;/p&gt;

&lt;p&gt;Apesar da variedade de versões que a Oracle disponibiliza regularmente, o foco deve ser dado a uma versão bem anterior: Java SE 11. O motivo é que a maior parte das outras versões tem suporte de curto prazo e logo se tornam obsoletas. Com relação a última versão LTS, ainda há muitas empresas que manterão o uso de versões anteriores até acabar o período de suporte oficial.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*LTS = Versões com suporte de manutenção pela Oracle a longo prazo.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Códigos Não Usuais
&lt;/h2&gt;

&lt;p&gt;Apesar de ser um tanto confuso para novos programadores, cada certificação disponibilizada pela Oracle tem seu código de identificação. Nesse caso estamos tratando do exame 1Z0-819, que é para se tornar um desenvolvedor Java certificado na versão 11. Essa avaliação possui 50 questões de múltipla escolha, com uma duração limite de 90 minutos e com um mínimo de 68% de acertos. Essa certificação, no entanto, foi desenvolvida para quem não possui qualquer certificação&lt;/p&gt;

&lt;p&gt;Há um exame para profissionais que já fizeram outras provas para as versões 6, 7 e 8: 1Z0-817. Aqui você terá 180 minutos para responder 80 questões, também de múltipla escolha, com um mínimo de 61% de acertos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Distribuidores
&lt;/h2&gt;

&lt;p&gt;Há uma grande variedade de opções pagas e gratuitas para desenvolvedores Java. Contanto que a versão do JDK (Java Development Kit) seja condizente com a versão do teste, todas as alternativas disponíveis são válidas para utilizar durante a preparação para a certificação. Algumas sugestões: Amazon, Red Hat, AdoptOpenJDK e a própria Oracle. Esses são os distribuidores mais populares.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qual IDE utilizar?
&lt;/h2&gt;

&lt;p&gt;Para os que já tiveram contato com linguagens de programação, os IDEs são uma ótima forma de facilitar e otimizar o tempo de programação. Não há nenhuma recomendação específica de utilização por parte da Oracle. Algumas das opções mais utilizadas são Intellij e Eclipse, porém a IDE é uma escolha mais pessoal que depende das preferências do usuário.&lt;/p&gt;

</description>
      <category>java</category>
      <category>certification</category>
      <category>career</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
