<?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: agatha-vieira</title>
    <description>The latest articles on DEV Community by agatha-vieira (@agathavieira).</description>
    <link>https://dev.to/agathavieira</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%2F654744%2Fe01c8449-ee81-4b42-9216-2d4b6ee8d0c9.jpg</url>
      <title>DEV Community: agatha-vieira</title>
      <link>https://dev.to/agathavieira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agathavieira"/>
    <language>en</language>
    <item>
      <title>Test-driven Development: códigos limpos e prontos para implementação!</title>
      <dc:creator>agatha-vieira</dc:creator>
      <pubDate>Thu, 23 Sep 2021 20:49:26 +0000</pubDate>
      <link>https://dev.to/fireworkweb/test-driven-development-codigos-limpos-e-prontos-para-implementacao-4e09</link>
      <guid>https://dev.to/fireworkweb/test-driven-development-codigos-limpos-e-prontos-para-implementacao-4e09</guid>
      <description>&lt;p&gt;A sigla TDD significa Test-driven Development, ou Desenvolvimento dirigido/orientado a testes. São várias as tecnologias e processos para testar os componentes de uma solução de software corretamente, alguns visam testar a integração entre esses componentes, enquanto outros visam testar cada componente de maneira isolada. O TDD é uma dessas metodologias que auxiliam a aplicar testes no nosso código de forma mais granular.&lt;/p&gt;

&lt;p&gt;Descoberto ou criado em 2003 pelo kent Beck, o pai do XP ( Extreme Programming), o TDD se baseia essencialmente em testes unitários, ou seja, que testam a menor unidade de uma aplicação, o que normalmente, nas linguagens estruturadas orientadas a objetos funcionais, são os métodos ou as funções. &lt;/p&gt;

&lt;p&gt;A premissa principal quando a gente vai implementar o TDD, é escrever o teste antes do código. Isso mesmo, escrever o teste antes mesmo do código existir! Pode parecer estranho e alguns desenvolvedores podem considerar o TDD uma perda de tempo, porém o Test-driven Development traz diversas vantagens, a primeira delas é que você desenvolve facilmente um código limpo. &lt;/p&gt;

&lt;p&gt;Segundo Robert Martin, mais conhecido como Uncle Bob, um dos 17 signatários originais do Manifesto Ágil em 2001 e autor do livro Clean Code, quando você desenvolve um teste antes de desenvolver um código, você desenvolve um código fácil de ser testado e consequentemente, desenvolve um código muito mais limpo. A razão disso é que: seguindo o TDD você reduz naturalmente os acoplamentos da sua aplicação. &lt;/p&gt;

&lt;p&gt;ENTENDA DO PROCESSO DE TEST-DRIVEN DEVELOPMENT &lt;/p&gt;

&lt;p&gt;Pra ficar mais fácil entender, veja como funciona a implementação. O processo do Test-driven Development se baseia na repetição de um ciclo de desenvolvimento e testes em 3 fases: fase vermelha, verde e refatoração. &lt;/p&gt;

&lt;p&gt;Na fase vermelha, você escreverá um teste unitário que ao ser executado irá falhar pois o código em si ainda não existe. &lt;br&gt;
Depois, na fase verde, você deve  implementar um código que seja suficiente para passar no teste unitário recém escrito.&lt;br&gt;
Na terceira fase, você faz a refatoração do código, melhorando a leitura, eliminando redundâncias e adotando boas práticas.&lt;br&gt;
Assim fica mais fácil entender como o ciclo do TDD nos ajuda a projetar um código mais limpo e nos motiva a sempre limpar nosso código. Afinal, estamos atrelados a este ciclo de testes e refatoração.&lt;/p&gt;

&lt;p&gt;Segundo Uncle Bob, você estará sempre alternando entre escrever seus testes e escrever seus códigos, portanto estará constantemente testando de forma rápida e tudo sempre estará funcionando. No final, como seu código está sendo desenvolvido e orientado a testes, você reduz os bugs e o seu tempo gasto em debug. Além disso, o TDD é uma forma de documentar como cada parte do sistema funciona de uma forma clara para que outros programadores interpretem facilmente. &lt;/p&gt;

&lt;p&gt;Uncle Bob ainda diz que, além de todas as outras vantagens, a real razão para se implementar o TDD, é que assim que seu código passa por esse ciclo de desenvolvimento e teste, ele estará pronto para implementação. &lt;/p&gt;

&lt;p&gt;MANUAL DO DEV – TDD&lt;/p&gt;

&lt;p&gt;Confira este conteúdo em vídeo no Manual do Dev com a desenvolvedora Julia Reche: &lt;a href="https://youtu.be/1JVvRWFBXS8"&gt;https://youtu.be/1JVvRWFBXS8&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  O que achou do artigo? Conta para gente nos comentários!
&lt;/h2&gt;

&lt;p&gt;Aprenda mais nos nossos canais digitais!&lt;br&gt;
Site: &lt;a href="https://fireworkweb.com.br"&gt;https://fireworkweb.com.br&lt;/a&gt;&lt;br&gt;
Youtube:&lt;a href="https://bit.ly/2GwqNU1"&gt;https://bit.ly/2GwqNU1&lt;/a&gt;&lt;br&gt;
Insta: @fireworkweb&lt;br&gt;
Face: @fireworkweb&lt;br&gt;
Linkedin: Firework Web &amp;amp; Mobile&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>basics</category>
      <category>tdd</category>
    </item>
    <item>
      <title>Testes de Software: quais os tipos e por que implementar?</title>
      <dc:creator>agatha-vieira</dc:creator>
      <pubDate>Tue, 31 Aug 2021 11:46:39 +0000</pubDate>
      <link>https://dev.to/fireworkweb/testes-de-software-quais-os-tipos-e-por-que-implementar-4p8c</link>
      <guid>https://dev.to/fireworkweb/testes-de-software-quais-os-tipos-e-por-que-implementar-4p8c</guid>
      <description>&lt;p&gt;Testes de software focam na investigação ou validação de funcionalidades que comprovam a qualidade do software ou produto que está sendo testado, para os envolvidos no projeto. Aprenda mais sobre este processo essencial para garantia a qualidade de um software 👇&lt;br&gt;
Quais são os tipos de testes de software?&lt;/p&gt;

&lt;p&gt;Geralmente existem dois tipos de testes:&lt;/p&gt;

&lt;p&gt;Funcionais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit Testing&lt;/li&gt;
&lt;li&gt;Integration Testing&lt;/li&gt;
&lt;li&gt;System Testing&lt;/li&gt;
&lt;li&gt;Sanity Testing&lt;/li&gt;
&lt;li&gt;Smoke Testing&lt;/li&gt;
&lt;li&gt;Interface Testing&lt;/li&gt;
&lt;li&gt;Regression Testing&lt;/li&gt;
&lt;li&gt;Beta/Acceptance Testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Load Testing&lt;/li&gt;
&lt;li&gt;Stress Testing&lt;/li&gt;
&lt;li&gt;Volume Testing&lt;/li&gt;
&lt;li&gt;Security Testing&lt;/li&gt;
&lt;li&gt;Compatibility Testing&lt;/li&gt;
&lt;li&gt;Install Testing&lt;/li&gt;
&lt;li&gt;Recovery Testing&lt;/li&gt;
&lt;li&gt;Reliability Testing&lt;/li&gt;
&lt;li&gt;Usability Testing&lt;/li&gt;
&lt;li&gt;Compliance Testing&lt;/li&gt;
&lt;li&gt;Localization Testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Como definir quais testes devem ser implementados?&lt;/p&gt;

&lt;p&gt;Para definir os testes de um sistema, é importante se perguntar quais são as funcionalidades que o sistema tem, e o que ele precisa para funcionar. Depois de se fazer estas perguntas, é muito mais fácil identificar quais pontos os testes cabem. Inclusive se você é iniciante no mundo de testes e qualidade de software, pode ser uma maneira mais rápida de encontrar o teste que precisa, antes de se familiarizar mais profundamente com os nomes e categorias de cada um.&lt;/p&gt;

&lt;p&gt;A Implementação de testes varia por projeto e pelas tecnologias sendo usadas. Sistemas muito grandes geralmente precisam de testes de performance, pois tem um volume de usuários muito alto. Os demais podem se beneficiar muito de testes de regressão, testando o sistema por completo. Mas os mais comuns são os testes funcionais, pois são mais assertivos, e requerem um acompanhamento eficiente com a documentação, e tarefas bem descritas. Ajudando na organização do projeto e na detecção de erros antes de chegar ao cliente.&lt;/p&gt;

&lt;p&gt;É importante documentar os testes. Descrevendo qual o resultado esperado, o que está sendo testado, e caso necessário alguma instrução mais específica para seu time. Manter um bom controle de quais testes existem, e de detalhes de cada um previne a divergência de coordenação entre os desenvolvedores do projeto. Um time organizado pode chegar aos cenários de teste sendo estudados juntos, anotando também os requisitos funcionais, de database, especificações técnicas, entre outros.&lt;/p&gt;

&lt;p&gt;Comunicação é crucial para a criação de testes que trazem valor para o projeto. Faça reuniões com seus colegas, identifique os pontos mais fracos do sistema e use os testes para fortalecer esses pontos. &lt;/p&gt;

&lt;p&gt;Lembre-se que testes também podem melhorar a qualidade do código no seu projeto. Algumas ferramentas como PHP-cs-fixer, PHP Mess Detector, eslint, etc. Ajudaram a manter uma qualidade de código dentro do projeto com todos os desenvolvedores.&lt;br&gt;
Qual o impacto de testes contínuos em software para empresas?&lt;/p&gt;

&lt;p&gt;Fazer testes contínuos é o único jeito de garantir a qualidade de software. Então são essenciais, se adaptando aos requerimentos do projeto. O maior impacto, além de manter a qualidade, é garantir que o sistema continue funcionando como esperado e ajudando os desenvolvedores a encontrar erros antes de liberar o acesso para os clientes. &lt;/p&gt;

&lt;p&gt;Mais importante que prevenir erros de sistema ou uma experiência de usuário ruim, são os impactos financeiros e legais. Um sistema sem testes, é mais vulnerável a ter vulnerabilidades de segurança, usar pacotes desatualizados, ou ter Bugs que podem ser usados de maneira maliciosa por terceiros. Horrível não!? Então não se esqueça de implementar testes no seu software/sistema, e caso você não saiba por onde começar entre em contato conosco!&lt;/p&gt;




&lt;p&gt;Aprenda mais nos nossos canais digitais!&lt;br&gt;
Site: &lt;a href="https://fireworkweb.com.br"&gt;https://fireworkweb.com.br&lt;/a&gt;&lt;br&gt;
Youtube:&lt;a href="https://bit.ly/2GwqNU1"&gt;https://bit.ly/2GwqNU1&lt;/a&gt;&lt;br&gt;
Insta: @fireworkweb&lt;br&gt;
Face: @fireworkweb&lt;br&gt;
Linkedin: Firework Web &amp;amp; Mobile&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>testing</category>
    </item>
    <item>
      <title>Livewire – Revolução no desenvolvimento front-end Laravel?</title>
      <dc:creator>agatha-vieira</dc:creator>
      <pubDate>Wed, 18 Aug 2021 20:46:51 +0000</pubDate>
      <link>https://dev.to/fireworkweb/livewire-revolucao-no-desenvolvimento-front-end-laravel-2jf8</link>
      <guid>https://dev.to/fireworkweb/livewire-revolucao-no-desenvolvimento-front-end-laravel-2jf8</guid>
      <description>&lt;p&gt;Quem nunca teve problemas na hora de fazer o desenvolvimento do seu front-end? Quem nunca queria usar Vue, mas por não saber usar muito bem, sofreu para conseguir um resultado igual ele? Pois bem, a recém-nascida lib do Laravel chamada Livewire promete resolver esses problemas! Entenda melhor a ferramenta neste post 😉&lt;/p&gt;

&lt;p&gt;AFINAL, O QUE É LIVEWIRE?&lt;br&gt;
O Livewire é uma biblioteca que foi adicionada em 2019 pelo famosíssimo framework Laravel. &lt;/p&gt;

&lt;p&gt;A proposta dela é criar interfaces dinâmicas (similares ao Vue) com os códigos do blade e do próprio Laravel. Sim! Exatamente! Você, programador Back-end, poderá criar um front-end bem desenvolvido com o Livewire!&lt;/p&gt;

&lt;p&gt;Indo direto ao ponto, o Livewire funciona de um jeito beeem peculiar. Qualquer interação que acontecer com ele, se faz uma requisição AJAX e o HTML é renderizado do lado do servidor e depois retornado ao cliente. Esse fluxo permite que ele seja reativo, porém, um pouco mais lento. Ele tem algo parecido com um DOM virtual, onde ele compara as alterações com o DOM renderizado e então aplica as modificações.&lt;/p&gt;

&lt;p&gt;VANTAGENS E DESVANTAGENS DO LIVEWIRE&lt;br&gt;
Os principais pontos positivos do Livewire são:&lt;/p&gt;

&lt;p&gt;A facilidade de trabalho, pois é simples de entender para quem já usa o Laravel. &lt;br&gt;
O nível profissional dele permite uma avalanche de possibilidades com simples comandos, todos com um resultado bem próximo de um Vue. &lt;/p&gt;

&lt;p&gt;Porém, nem tudo são flores. Apesar de parecer um paraíso, o Livewire possui pontos negativos também. O primeiro deles, é que, por ser uma ferramenta muito recente, o suporte e dúvidas tiradas são poucas, até nos fóruns mais conhecidos dos desenvolvedores, como o Stack Overflow. &lt;/p&gt;

&lt;p&gt;Outro ponto, é que, por ter a proposta de não usar uma linguagem diferente, no caso, o JavaScript. Porém, esse problema pode ser resolvido usando a micro framework AlpineJS como adicional, menor e sem ser tão pesada quanto um Angular, por exemplo.&lt;/p&gt;

&lt;p&gt;Durante o trabalho com Livewire, podemos usar comandos do Laravel para criar os componentes, como “php artisan make:livewire Teste”. A lib trabalha com dois arquivos separados: a view e o arquivo que comanda a view. No caso, um deles tem a extensão .blade.php, o qual estamos acostumados a criar os estilos da tela e tudo que aparecerá para o cliente. No outro, o qual possui o mesmo nome da blade, é o controlador, onde terão as funções chamadas por métodos e eventos da blade e onde são declaradas as variáveis presentes na tela.&lt;/p&gt;

&lt;p&gt;Exemplificando, criando um componente para ser um contador e mostrar em tempo real o número sendo adicionado na tela em cada clique do botão, usaremos o comando “php artisan make:livewire contador”. Dois arquivos são criados, o “Contador.php” e o “contador.blade.php”. Este último, temos o botão e a variável do número que será adicionado. O primeiro, por sua vez, terá toda a lógica por trás da funcionalidade, como a função de incrementar número e a variável número.&lt;/p&gt;

&lt;p&gt;Em resumo, a biblioteca Livewire é uma ferramenta muito interessante e essencial para quem não se adaptou ou não conhece o Vue.  Entretanto, como trata-se de uma lib muito recente (lançada em julho de 2019), seu suporte é limitado e ela é pouco abordada em fóruns da internet. É perfeito para aqueles que já estão acostumados com Laravel e querem criar interfaces de forma prática. Esclarecidos esses pontos, é necessário uma análise dos prós e contras para optar pelo uso desse recurso, que é muito promissor e acrescenta demais ao programador front-end.&lt;/p&gt;




&lt;p&gt;Aprenda mais nos nossos canais digitais!&lt;br&gt;
Site: &lt;a href="https://fireworkweb.com.br"&gt;https://fireworkweb.com.br&lt;/a&gt; &lt;br&gt;
Youtube:&lt;a href="https://bit.ly/2GwqNU1"&gt;https://bit.ly/2GwqNU1&lt;/a&gt; &lt;br&gt;
Insta: @fireworkweb&lt;br&gt;
Face: @fireworkweb&lt;br&gt;
Linkedin: Firework Web &amp;amp; Mobile&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
