<?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: Leonardo Souza</title>
    <description>The latest articles on DEV Community by Leonardo Souza (@leonardosf).</description>
    <link>https://dev.to/leonardosf</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%2F1438176%2Fd48fcd0f-90d5-47c5-aae6-0d8037de238b.png</url>
      <title>DEV Community: Leonardo Souza</title>
      <link>https://dev.to/leonardosf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leonardosf"/>
    <language>en</language>
    <item>
      <title>Meu primeiro projeto REAL</title>
      <dc:creator>Leonardo Souza</dc:creator>
      <pubDate>Thu, 11 Jul 2024 18:15:39 +0000</pubDate>
      <link>https://dev.to/leonardosf/meu-primeiro-projeto-real-284e</link>
      <guid>https://dev.to/leonardosf/meu-primeiro-projeto-real-284e</guid>
      <description>&lt;h2&gt;
  
  
  Como tudo começou...
&lt;/h2&gt;

&lt;p&gt;Ano passado conheci a FCamara em um evento que eles organizaram junto ao GDG Santos. Descobri que às quintas-feiras o escritório fica aberto para pessoas que queiram estudar ou trabalhar. Desde então tenho frequentado o Orange Hub, onde em uma dessas idas conheci o Lucas Batista , desenvolvedor mobile sênior e coordenador do projeto que vou falar hoje.&lt;/p&gt;

&lt;p&gt;O Lucas me apresentou a Ariane Salerno , empreendedora local com a demanda de um sistema para cadastro de vendas personalizado. Até então o cadastro do seu negócio era realizado manualmente,  impossibilitando, ou pelo menos dificultando muito, a análise dos dados. De forma geral, o modo trabalho atual não possibilitava a tomada de decisões a partir de seu histórico.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o projeto
&lt;/h2&gt;

&lt;p&gt;Passamos então a ter reuniões semanais, sob a orientação do Lucas, para construir uma solução baseada nas especificidades do tipo de negócio da Ariane. Inicialmente alinhamos quais funcionalidades seriam necessárias e a partir disso caminhamos para o desenvolvimento e feedbacks.&lt;/p&gt;

&lt;p&gt;Considerando as necessidades apresentadas, alinhei com o Lucas que tecnologias seriam utilizadas, optando pelas quais eu tinha maior familiaridade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend: Nest.JS, com Prisma. &lt;/li&gt;
&lt;li&gt;Frontend: React, mais especificamente a biblioteca de componentes React Mantine, que utiliza Typescript nos componentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Funcionalidades
&lt;/h2&gt;

&lt;p&gt;As funções básicas de um CRUD (criar, ler, editar e deletar) foram as primeiras implementadas, assim como a autenticação. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmsfbfqzlp7tb0zfsjro.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmsfbfqzlp7tb0zfsjro.gif" alt="GIF do sistema demonstrando o cadastro, visualizando e deletando um registro" width="426" height="240"&gt;&lt;/a&gt;&lt;br&gt;
No momento estamos desenvolvendo o BackOffice para avançar na geração dos relatórios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Desafios
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Backend e uso de ORM
&lt;/h3&gt;

&lt;p&gt;Por mais que eu estivesse familiarizado com o Nest, não foi tão natural escrever um projeto do zero. Demorei certo tempo para entender como validar as requisições do backend e como usar o Prisma, coisa que nunca havia feito.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dados e normalização de dados
&lt;/h3&gt;

&lt;p&gt;No início, pensar nas tabelas, como elas se comunicariam, porque elas se comunicariam, foi algo que demandou muita análise, alguns testes e vários migrations.&lt;/p&gt;

&lt;h3&gt;
  
  
  React e Typescript
&lt;/h3&gt;

&lt;p&gt;No frontend as coisas ficaram mais complicadas. Fazia bastante tempo que não mexia com React e tive que recorrer à documentação. O typescript foi bem desafiador de implementar devido ao caráter verboso da linguagem, porém trouxe robustez ao sistema. &lt;/p&gt;

&lt;h3&gt;
  
  
  React - Passagem de dados entre componentes
&lt;/h3&gt;

&lt;p&gt;Alguns problemas na comunicação entre os componentes surgiram, como por exemplo mandar os dados de um componente filho para o pai para que ele atualizasse os dados das vendas. Implementando context e providers foi possível padronizar a comunicação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Versionamento
&lt;/h3&gt;

&lt;p&gt;Apesar de estar desenvolvendo sozinho, tenho utilizado o git para entender como seria o fluxo de trabalho em um projeto colaborativo, experienciando criação de branches para funcionalidades e correção de bugs, merge das branchs, criação de pull requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aprendizados
&lt;/h2&gt;

&lt;p&gt;O trabalho no projeto tem desenvolvido minhas habilidades de  comunicação e gestão de expectativas com a cliente, alinhando as demandas e traduzindo isso em código.&lt;br&gt;
Com o tempo tenho notado minha melhoria técnica, como maior agilidade em criar e gerenciar CRUDS e ter insights nas ferramentas e plataformas utilizadas, tornando o código mais robusto em termos de segurança e qualidade. &lt;br&gt;
Além disso, este projeto tem me proporcionado familiaridade com refatoração de código, hospedagem de serviços, desenvolvimento contínuo e colaborativo. &lt;/p&gt;

&lt;h2&gt;
  
  
  Próximos passos
&lt;/h2&gt;

&lt;p&gt;Tem sido um caminho de muito aprendizado até aqui, e o plano é continuar evoluindo tecnicamente, especialmente na comunicação entre os componentes do React, na elaboração de testes e no versionamento de código. Quero ainda explorar mais ferramentas cloud, como o Vercel e, futuramente, GCP e AWS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agradecimentos
&lt;/h2&gt;

&lt;p&gt;Algumas pessoas têm sido fundamentais para esse processo, especificamente com tecnologia, por me ajudarem de N formas a aprender algo novo, como Lucas Viana, Leonardo Santos Severino, Lucas Batista e Gabriel Sanzone . &lt;br&gt;
Obrigado pela dedicação e paciência em compartilhar conhecimento.&lt;br&gt;
Agradeço também à minha família e  Letícia  por acreditarem em mim e por todo apoio durante essa jornada&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>learning</category>
      <category>development</category>
    </item>
    <item>
      <title>Funções</title>
      <dc:creator>Leonardo Souza</dc:creator>
      <pubDate>Wed, 15 May 2024 01:29:00 +0000</pubDate>
      <link>https://dev.to/leonardosf/funcoes-251b</link>
      <guid>https://dev.to/leonardosf/funcoes-251b</guid>
      <description>&lt;p&gt;Queria começar a escrever uns artigos tem um tempo e hoje na aula de estrutura de dados tive essa idéia de escrever sobre funções e espero que possa servir para o pessoal da monitoria de algoritmos e pra você que possívelmente ficou curioso e veio ler.&lt;/p&gt;

&lt;p&gt;Funções primeiramente servem pra não repetirmos código. Existe um princípio de desenvolvimento de  software chamado DRY (Don't repeat yourself), uma versão diferente do que os menudos diriam "Não se repita".&lt;/p&gt;

&lt;p&gt;Imagina um código dessa forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;cmath&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Cálculo da área do retângulo&lt;/span&gt;

    &lt;span class="c1"&gt;//base 5 - altura 10&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;baseRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;alturaRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;areaRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;baseRetangulo&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;alturaRetangulo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"Área do retângulo: "&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;areaRetangulo&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;//base 7 - altura 11&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;baseRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;alturaRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;areaRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;baseRetangulo&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;alturaRetangulo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"Área do retângulo: "&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;areaRetangulo&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;//base 8 - altura 12&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;baseRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;alturaRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;areaRetangulo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;baseRetangulo&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;alturaRetangulo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"Área do retângulo: "&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;areaRetangulo&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Poderíamos facilmente ter escrito esse código dessa forma abaixo e perceba como ficou mais fácil de ler o que está acontecendo. Além disso, eu repito o código infinitamente menos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;cmath&amp;gt;&lt;/span&gt;&lt;span class="c1"&gt; &lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Função para calcular a área do retângulo&lt;/span&gt;
&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="nf"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;altura&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;altura&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Exemplos de uso das funções&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"Área do retângulo: "&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"Área do retângulo: "&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"Área do retângulo: "&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suponho que concorde que fica muito mais fácil de entender o código e usá-lo para calcular as áreas das formas geométrica. Eu escrevo muito menos linhas e consigo usar valores diferentes de uma forma muito mais fácil.&lt;/p&gt;

&lt;p&gt;E esse exemplo é bem simples, em um sistema mais complexo, os benefícios são infinitamente maiores.&lt;/p&gt;

&lt;p&gt;Para defini-las usamos essa estrutura:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;    &lt;span class="n"&gt;tipoDeRetorno&lt;/span&gt; &lt;span class="nf"&gt;nomeDafuncao&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tipoParametro1&lt;/span&gt; &lt;span class="n"&gt;nomeParametro1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tipoParametro2&lt;/span&gt; &lt;span class="n"&gt;nomeParametro2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;//conteúdo da função&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Primeiramente declaramos o tipo de retorno, ou seja, o que aquela função vai entregar pra gente. &lt;/p&gt;

&lt;p&gt;Pode ser void se não retornar nada, pode ser int se retornar um inteiro (igual a função da área do retângulo por exemplo), float se eu retornar números decimais...&lt;/p&gt;

&lt;p&gt;Agora entra a parte mais complicadinha, vamos falar sobre os parâmetros. Usando aquela função dá área do retângulo, percebe que no início, avisamos o programa que ela vai retornar um número decimal? E além disso, percebe que depois da abertura dos parênteses, temos duas variáveis?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="nf"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;altura&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;altura&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Essas variáveis são chamadas de parâmetros, elas dizem que pro funcionamento da função, eu vou precisar de 2 coisas, no caso o número da base e o número da altura. E se observamos a linha de baixo vemos que a única coisa que essa função faz é pegar esses valores e multiplica-los então claro, precisaremos de 2 valores para isso.&lt;/p&gt;

&lt;p&gt;Mas perceba, quando eu declaro essa função como fiz no código de cima, eu NÃO ESTOU PASSANDO VALOR NENHUM. Aquilo ali só diz pro computador, vou precisar de 2 coisas aqui, mas não tem valor nenhum definido ali.&lt;/p&gt;

&lt;p&gt;E como eu defino um valor? Simples, primeiro você precisa executar (chamar) essa função. E para isso é só fazer assim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;area&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se você definir a função da forma que fiz e executar esse código, perceberá que terá um erro. O erro nos diz o seguinte: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;candidate function not viable: requires 2 arguments, but 0 were provided&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ou seja, são necessários 2 argumentos mas eu não entreguei nenhum. E você pode se perguntar, mas o que são argumentos? Eles são justamente o valor que eu passo, o que preencherá o vazio que existe nos parâmetros (lembra que eles não existem? eles só avisam que eu vou precisar de alguma coisa ali?).&lt;/p&gt;

&lt;p&gt;E agora quando eu chamo a função dessa forma aqui:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;area&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calcularAreaRetangulo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Terei como resultado 12!&lt;/p&gt;

&lt;p&gt;Então lembra:&lt;/p&gt;

&lt;p&gt;PARÂMETRO É O QUE EU ESPERO RECEBER&lt;/p&gt;

&lt;p&gt;ARGUMENTO É O QUE EU MANDO PARA A FUNÇÃO SER EXECUTADA&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
