<?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: Guilherme Lara</title>
    <description>The latest articles on DEV Community by Guilherme Lara (@devguilara).</description>
    <link>https://dev.to/devguilara</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%2F1173278%2F2905cd18-210e-4e39-94f9-e86a868a95a6.png</url>
      <title>DEV Community: Guilherme Lara</title>
      <link>https://dev.to/devguilara</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devguilara"/>
    <language>en</language>
    <item>
      <title>Spring Boot: A Revolução no Desenvolvimento de Aplicações Java</title>
      <dc:creator>Guilherme Lara</dc:creator>
      <pubDate>Wed, 11 Sep 2024 20:51:14 +0000</pubDate>
      <link>https://dev.to/devguilara/spring-boot-a-revolucao-no-desenvolvimento-de-aplicacoes-java-1i53</link>
      <guid>https://dev.to/devguilara/spring-boot-a-revolucao-no-desenvolvimento-de-aplicacoes-java-1i53</guid>
      <description>&lt;p&gt;Se você desenvolve em Java, já deve ter ouvido falar de Spring Boot. Mas se ainda não conhece, prepare-se para descobrir uma das ferramentas mais poderosas e práticas que revolucionou o jeito de criar aplicações Java!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é o Spring Boot?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O Spring Boot é um framework que facilita (e muito!) o desenvolvimento de aplicativos Java. Ele tira de você aquela dor de cabeça de configurar tudo manualmente, como banco de dados, segurança, APIs, entre outras coisas. Com ele, você pode criar rapidamente uma aplicação pronta para rodar, com pouquíssimas linhas de código e quase nenhuma configuração.&lt;/p&gt;

&lt;p&gt;Por que o Spring Boot é tão incrível?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configuração automática: Quer um exemplo? Se você conectar um banco de dados no projeto, o Spring Boot vai automaticamente configurar tudo pra você.&lt;/li&gt;
&lt;li&gt;Aplicações "standalone": Crie aplicativos que podem rodar como um .jar simples, sem precisar de servidores externos como Tomcat ou JBoss. Tudo está dentro do projeto!&lt;/li&gt;
&lt;li&gt;Facilidade com REST APIs: Criar APIs com Spring Boot é extremamente simples. Veja só como fica a criação de um endpoint que retorna uma lista de usuários:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@RestController
public class UserController {

    @GetMapping("/users")
    public List&amp;lt;String&amp;gt; getUsers() {
        return Arrays.asList("John", "Jane", "Doe");
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em poucos segundos, você já tem uma API funcional!&lt;br&gt;
Como começar?&lt;/p&gt;

&lt;p&gt;Para criar uma aplicação com Spring Boot, você pode usar o Spring Initializr, uma ferramenta que te dá o pontapé inicial criando o projeto já configurado! Tudo que você precisa fazer é escolher as dependências que quer usar, como banco de dados, segurança, etc.&lt;br&gt;
Passo a passo rápido:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Acesse &lt;a href="https://start.spring.io/" rel="noopener noreferrer"&gt;Spring Initializr&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Escolha as opções: Maven, Java e a versão do Spring Boot.&lt;/li&gt;
&lt;li&gt;Selecione suas dependências favoritas (banco de dados, web, segurança).&lt;/li&gt;
&lt;li&gt;Clique em Generate e baixe o projeto.&lt;/li&gt;
&lt;li&gt;Descompacte, abra no seu editor preferido e comece a codar!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Vamos te dar um exemplo....&lt;/p&gt;

&lt;p&gt;Imagine que você quer criar uma API que retorna uma lista de produtos. Com o Spring Boot, isso pode ser feito em minutos:&lt;/p&gt;

&lt;p&gt;No arquivo ProductController.java:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@RestController
public class ProductController {

    @GetMapping("/products")
    public List&amp;lt;Product&amp;gt; getProducts() {
        return List.of(
            new Product("Notebook", 2500.00),
            new Product("Smartphone", 1500.00)
        );
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No arquivo Product.java:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class Product {
    private String name;
    private Double price;

    // Construtor, getters e setters
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;public class Product {&lt;br&gt;
    private String name;&lt;br&gt;
    private Double price;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Construtor, getters e setters
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;E pronto! Você acabou de criar uma API REST que retorna uma lista de produtos. Muito fácil, né?&lt;br&gt;
O que mais posso fazer com o Spring Boot?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>springboot</category>
      <category>java</category>
      <category>development</category>
    </item>
    <item>
      <title>Você sabe o que é SaaS?</title>
      <dc:creator>Guilherme Lara</dc:creator>
      <pubDate>Tue, 28 Nov 2023 18:29:58 +0000</pubDate>
      <link>https://dev.to/devguilara/voce-sabe-o-que-e-saas-1c1c</link>
      <guid>https://dev.to/devguilara/voce-sabe-o-que-e-saas-1c1c</guid>
      <description>&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%2Fksfmdmnz37yrkipngv4t.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%2Fksfmdmnz37yrkipngv4t.png" alt="Image description" width="750" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SaaS significa "Software as a Service" (Software como Serviço, em português). É um modelo de distribuição de software em que o software é hospedado na nuvem e disponibilizado pela internet sob demanda.&lt;/p&gt;

&lt;p&gt;Em vez de adquirir e instalar o software localmente em um computador, os usuários acessam o software através de um navegador da web ou de um aplicativo. Eles pagam por assinatura, geralmente mensal ou anual, para utilizar o serviço.&lt;/p&gt;

&lt;p&gt;Alguns exemplos claros de SaaS incluem:&lt;/p&gt;

&lt;p&gt;Microsoft 365: Anteriormente conhecido como Office 365, oferece acesso online às ferramentas de produtividade da Microsoft, como Word, Excel, PowerPoint, Outlook, entre outros. Os usuários pagam uma assinatura para acessar e utilizar essas ferramentas diretamente pelo navegador.&lt;/p&gt;

&lt;p&gt;Salesforce: Uma plataforma de CRM (Customer Relationship Management) baseada na nuvem. Ajuda empresas a gerenciar relacionamentos com clientes, vendas, serviços e marketing. Os clientes acessam e utilizam seus recursos por meio de um navegador.&lt;/p&gt;

&lt;p&gt;Netflix: Embora não seja um software empresarial, o modelo de negócios da Netflix é um exemplo de SaaS na indústria do entretenimento. Os assinantes acessam filmes e programas de TV via streaming, pagando uma taxa mensal para utilizar o serviço.&lt;/p&gt;

&lt;p&gt;Slack: Uma plataforma de comunicação empresarial que oferece bate-papo, colaboração em equipe e integração de ferramentas. Os usuários acessam o Slack através de um aplicativo ou navegador, pagando por planos de assinatura conforme o uso.&lt;/p&gt;

&lt;p&gt;Adobe Creative Cloud: Fornece acesso a uma variedade de aplicativos para criação, como Photoshop, Illustrator e Premiere Pro. Os usuários podem acessar e utilizar esses aplicativos mediante assinatura.&lt;/p&gt;

&lt;p&gt;Estes são apenas alguns exemplos de SaaS, mas há muitos outros disponíveis em diferentes setores e para várias finalidades, todos seguindo o modelo de entrega baseado na nuvem e pagamento por assinatura.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Laravel - Uma introdução ao framework</title>
      <dc:creator>Guilherme Lara</dc:creator>
      <pubDate>Thu, 16 Nov 2023 14:09:33 +0000</pubDate>
      <link>https://dev.to/devguilara/laravel-uma-introducao-ao-framework-3m69</link>
      <guid>https://dev.to/devguilara/laravel-uma-introducao-ao-framework-3m69</guid>
      <description>&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%2F50ub154ri8du693srxu7.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%2F50ub154ri8du693srxu7.png" alt="Image description" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Laravel é um dos frameworks PHP mais populares e amplamente utilizados no desenvolvimento web nos dias de hoje. &lt;br&gt;
Ele oferece uma estrutura poderosa e elegante para a construção de aplicativos da web robustos, seguindo o paradigma MVC (Model-View-Controller) e oferecendo uma gama de recursos que simplificam o desenvolvimento.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mas o que é um framework? 🤔
&lt;/h3&gt;

&lt;p&gt;De forma geral....&lt;br&gt;
Frameworks são conjuntos de ferramentas, bibliotecas e convenções que oferecem uma estrutura para desenvolver aplicativos de software. Eles são criados para simplificar e acelerar o processo de desenvolvimento, fornecendo um esqueleto onde os desenvolvedores podem construir seu código.&lt;/p&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%2Fp2p94uyhwon4r6a3r0pp.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%2Fp2p94uyhwon4r6a3r0pp.png" alt="Image description" width="630" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  O que é o Laravel? 🚀
&lt;/h3&gt;

&lt;p&gt;O Laravel é uma estrutura de desenvolvimento de aplicativos da web em PHP, conhecida por sua sintaxe elegante, facilidade de uso e uma vasta gama de funcionalidades integradas. Criado por Taylor Otwell, o Laravel simplifica tarefas comuns de desenvolvimento, permitindo que os desenvolvedores se concentrem na lógica de negócios do aplicativo em vez de se preocuparem com tarefas rotineiras.&lt;/p&gt;

&lt;h3&gt;
  
  
  Principais Características do Laravel:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sistema de Roteamento:&lt;/strong&gt; O Laravel oferece um sistema de roteamento simples e expressivo que permite definir rotas de maneira clara e organizada.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blade Templating Engine:&lt;/strong&gt; Um mecanismo de template poderoso que facilita a criação de layouts e incluições, tornando a criação de interfaces de usuário mais simples e intuitiva.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ORM Eloquent:&lt;/strong&gt; Um sistema ORM (Object-Relational Mapping) chamado Eloquent, que permite trabalhar com bancos de dados de forma mais orientada a objetos, simplificando as consultas e as operações de banco de dados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Migrations e Seeds:&lt;/strong&gt; O Laravel fornece ferramentas para versionar e controlar o banco de dados através de migrações e seeds, facilitando a colaboração entre desenvolvedores e a manutenção do esquema do banco de dados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Autenticação e Autorização:&lt;/strong&gt; Recursos integrados para lidar com autenticação de usuários, gerenciamento de sessões e controle de acesso.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Laravel Mix:&lt;/strong&gt; Um wrapper simplificado ao redor do webpack, que facilita a compilação de ativos CSS e JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Notificações e Filas:&lt;/strong&gt; O Laravel facilita o envio de notificações por e-mail, SMS e outros meios, bem como o gerenciamento de tarefas em filas para melhorar o desempenho do aplicativo.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Como o Laravel Funciona:
&lt;/h3&gt;

&lt;p&gt;O Laravel segue o padrão MVC (Model-View-Controller), o que significa que separa a lógica de negócios, a apresentação e a interação com o usuário em três componentes principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Representa a estrutura de dados do aplicativo e interage com o banco de dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;View:&lt;/strong&gt; Responsável pela exibição dos dados para o usuário.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controller:&lt;/strong&gt; Faz a mediação entre o Model e a View, processando as requisições do usuário, manipulando os dados e respondendo adequadamente.&lt;/li&gt;
&lt;/ul&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%2F4pwa1iwm8xzumujnic7d.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%2F4pwa1iwm8xzumujnic7d.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Através do seu ecossistema de bibliotecas e ferramentas integradas, o Laravel simplifica o desenvolvimento de aplicativos web complexos, reduzindo o tempo necessário para tarefas comuns e incentivando boas práticas de programação.&lt;/p&gt;

&lt;p&gt;Se você está buscando uma estrutura moderna, expressiva e com uma comunidade ativa e colaborativa, o Laravel pode ser a escolha ideal para seus projetos de desenvolvimento web em PHP. Sua documentação detalhada e vasta comunidade de desenvolvedores tornam o aprendizado e a resolução de problemas uma experiência mais agradável.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>php</category>
      <category>laravel</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Metodologias Ágeis em Desenvolvimento de Softwares</title>
      <dc:creator>Guilherme Lara</dc:creator>
      <pubDate>Thu, 16 Nov 2023 13:56:34 +0000</pubDate>
      <link>https://dev.to/devguilara/metodologias-ageis-em-desenvolvimento-de-softwares-1bna</link>
      <guid>https://dev.to/devguilara/metodologias-ageis-em-desenvolvimento-de-softwares-1bna</guid>
      <description>&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%2Fd6r7gsdmlvptom3uwn8w.jpg" 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%2Fd6r7gsdmlvptom3uwn8w.jpg" alt="Image description" width="600" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As metodologias ágeis revolucionaram a forma como o software é desenvolvido, proporcionando uma abordagem mais flexível, colaborativa e orientada a resultados. Elas são um conjunto de práticas e princípios que priorizam a adaptação às mudanças, a entrega contínua de valor e a interação constante com o cliente. Vamos explorar um pouco mais sobre elas!&lt;/p&gt;

&lt;h3&gt;
  
  
  O Mundo Ágil: Mais do que um Conjunto de Metodologias
&lt;/h3&gt;

&lt;p&gt;As metodologias ágeis, como Scrum, Kanban, XP (Extreme Programming), entre outras, compartilham valores fundamentais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Indivíduos e interações acima de processos e ferramentas&lt;/strong&gt;: Priorizam as pessoas e a comunicação eficaz dentro das equipes, reconhecendo que a colaboração é essencial para o sucesso do projeto.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Software funcionando mais do que documentação abrangente&lt;/strong&gt;: Valorizam a entrega contínua de incrementos de software funcional, permitindo que o cliente veja o progresso real e ofereça feedback constante.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Colaboração com o cliente mais do que negociação de contratos&lt;/strong&gt;: Envolvem o cliente de forma contínua no processo de desenvolvimento, buscando entender suas necessidades e adaptando o produto de acordo com seus feedbacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Responder a mudanças mais do que seguir um plano&lt;/strong&gt;: Abraçam a natureza dinâmica do desenvolvimento de software, permitindo e até mesmo valorizando mudanças nos requisitos ao longo do tempo.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Importância das Metodologias Ágeis no Desenvolvimento de Software
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adaptabilidade e Flexibilidade&lt;/strong&gt;: As metodologias ágeis permitem que as equipes se adaptem rapidamente a mudanças de requisitos, prioridades ou até mesmo tecnologias, tornando-as ideais para ambientes de incerteza e rápida evolução.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Entrega Incremental de Valor&lt;/strong&gt;: Elas promovem a entrega contínua de funcionalidades, o que significa que o cliente obtém valor desde o início do projeto e pode influenciar diretamente a direção do produto.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maior Envolvimento do Cliente&lt;/strong&gt;: A interação frequente com o cliente garante que as necessidades e expectativas sejam entendidas e atendidas de forma mais precisa.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Melhoria Contínua e Feedback Rápido&lt;/strong&gt;: Ciclos curtos de desenvolvimento e feedback constante permitem que as equipes aprendam e melhorem continuamente, resultando em produtos de maior qualidade.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maior Satisfação da Equipe&lt;/strong&gt;: Ao dar mais autonomia às equipes, as metodologias ágeis promovem um ambiente de trabalho mais colaborativo e empoderador.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Adotar metodologias ágeis não é apenas sobre seguir um conjunto de práticas, mas sim sobre abraçar uma mentalidade de flexibilidade, colaboração e melhoria contínua. Esses princípios são valiosos não apenas no desenvolvimento de software, mas também em muitos outros contextos onde a adaptação e a entrega de valor são essenciais.&lt;/p&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/devguilara"&gt;@devguilara&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>scrum</category>
      <category>agile</category>
    </item>
  </channel>
</rss>
