<?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>Forem: Fabiano Raiser</title>
    <description>The latest articles on Forem by Fabiano Raiser (@fabianoraiser).</description>
    <link>https://forem.com/fabianoraiser</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%2F1042177%2Fe16a4018-14be-4118-88c6-21df74a72251.jpeg</url>
      <title>Forem: Fabiano Raiser</title>
      <link>https://forem.com/fabianoraiser</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/fabianoraiser"/>
    <language>en</language>
    <item>
      <title>Apps Script: o ambiente JS para o Ecossistema Google</title>
      <dc:creator>Fabiano Raiser</dc:creator>
      <pubDate>Tue, 02 Jul 2024 18:36:15 +0000</pubDate>
      <link>https://forem.com/fabianoraiser/apps-script-o-ambiente-js-para-o-ecossistema-google-2ihb</link>
      <guid>https://forem.com/fabianoraiser/apps-script-o-ambiente-js-para-o-ecossistema-google-2ihb</guid>
      <description>&lt;h2&gt;
  
  
  Conteúdo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Descobrindo o Apps Script&lt;/li&gt;
&lt;li&gt;Aprendendo com o Apps Script&lt;/li&gt;
&lt;li&gt;Explorando os Recursos&lt;/li&gt;
&lt;li&gt;Desafios e Melhorias&lt;/li&gt;
&lt;li&gt;Considerações Finais&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Você provavelmente já trabalhou ou trabalha com ferramentas do Ecossistema Google. Seu Drive deve estar cheio de arquivos do Docs, Planilhas e mais Planilhas contendo Dados, Formulários de onde você pegou esses dados, Apresentações .ppt com os gráficos desses dados, etc e etc...&lt;/p&gt;

&lt;p&gt;O Google Apps Script é uma plataforma de script poderosa que permite criar extensões e automações personalizadas nos produtos Google. Essa ferramenta é ideal para quem trabalha com o Ecossistema Google e busca soluções flexíveis e integradas com outros produtos da empresa.&lt;/p&gt;

&lt;h3&gt;
  
  
  Descobrindo o Apps Script &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Em um dos meus projetos recentes, tive a oportunidade de trabalhar com grandes volumes de dados espalhados por diversos arquivos. Buscando otimizar os processos, pesquisei por ferramentas que facilitassem a manipulação desses dados. Como desenvolvedor front-end, pensei em criar uma landing page para automatizar as operações. No entanto, ao me deparar com as APIs da Google, percebi a necessidade de um cartão de crédito para confirmação de identidade e cobrança de excedentes.&lt;/p&gt;

&lt;p&gt;Em um ambiente público com burocracias complexas, essa solução não era viável. Foi aí que encontrei o Google Apps Script, a alternativa perfeita para minhas necessidades.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aprendendo com o Apps Script &lt;a&gt;&lt;/a&gt;
&lt;/h3&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%2Fvvgyh9e0p0pthkz5xl2l.png" 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%2Fvvgyh9e0p0pthkz5xl2l.png" alt="Tela com a primeira página da documentação do Apps Script" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mesmo a documentação e tutoriais da própria plataforma e no canal da Google Workspace Developers serem em inglês, me desenrolei e dominei ferramenta. A curva de aprendizado foi desafiadora, tendo muitas idas e vindas.&lt;/p&gt;

&lt;p&gt;Um dos pontos que também me incomodou foi a falta de um recurso de autocompletar no editor de código, similar ao Emmet do VSCode. Essa limitação dificultou a escrita do código, tornando-a mais lenta e trabalhosa, e por vez estressante.&lt;/p&gt;

&lt;h3&gt;
  
  
  Explorando os Recursos do Apps Script &lt;a&gt;&lt;/a&gt;
&lt;/h3&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%2Fumz241fy7asv0g3syak9.png" 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%2Fumz241fy7asv0g3syak9.png" alt="Imagem da modal com as APIs integradas ao Apps Script" width="514" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O Apps Script possui diversas vantagens que o tornam uma ferramenta valiosa para desenvolvedores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integração nativa com APIs da Google:&lt;/strong&gt; Permite fácil acesso e manipulação de dados de outros produtos Google, como Drive, Planilhas e Gmail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambiente nativo baseado em JavaScript:&lt;/strong&gt; Familiar e fácil de aprender para quem já possui conhecimento em JavaScript, assim como eu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Criação de extensões e automações personalizadas:&lt;/strong&gt; Possibilita automatizar tarefas repetitivas e criar soluções personalizadas para suas necessidades, como verificar repetições de dados ou inserções.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suporte para genAI e Chatbots:&lt;/strong&gt; Abre novas possibilidades para desenvolvimento de soluções inovadoras, como chatbots e interfaces interativas, o qual ainda irei estudar um pouco melhor.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Desafios e Melhorias &lt;a&gt;&lt;/a&gt;
&lt;/h3&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%2Fmrqois75t6m97gjkrnb4.png" 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%2Fmrqois75t6m97gjkrnb4.png" alt="Tela da página do Canal no Youtube da Google Workspace Developers" width="800" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apesar dos seus pontos fortes, o Apps Script ainda apresenta alguns desafios que podem ser aprimorados, e ao meu ver, deveriam ser implementados de imediato:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Falta de tutoriais em português:&lt;/strong&gt; Dificulta o aprendizado para quem não domina o inglês, o que ao meu ver é um ponto crucial, já que muitos usuários da Google não tem esse conhecimento.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentação com termos não localizados:&lt;/strong&gt; Pode gerar confusão e dificultar a compreensão, sorte que já tinha experiência e vi os erros.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editor de código sem autocompletar:&lt;/strong&gt; Torna a escrita de código mais lenta e deixando o fluxo de trabalho enfadonho.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Considerações Finais &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;O Google Apps Script é uma ferramenta poderosa e versátil para quem trabalha com o Ecossistema Google. Apesar de alguns desafios que precisam ser superados, como a falta de tutoriais em português e a documentação incompleta, o Apps Script tem um grande potencial para automatizar tarefas, criar soluções inovadoras e otimizar o trabalho com os produtos Google.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Uma Lista errada em HTML</title>
      <dc:creator>Fabiano Raiser</dc:creator>
      <pubDate>Wed, 15 Mar 2023 17:40:55 +0000</pubDate>
      <link>https://forem.com/fabianoraiser/uma-lista-errada-em-html-d67</link>
      <guid>https://forem.com/fabianoraiser/uma-lista-errada-em-html-d67</guid>
      <description>&lt;h2&gt;
  
  
  No Inicio...
&lt;/h2&gt;

&lt;p&gt;Antes de tudo, realmente estou no inicio da minha carreira como programador. E tenho feitos muitos erros, admito. Isso por si não é um problema tão grande. O ponto é que eu estava insistindo em um erro sem saber.&lt;/p&gt;

&lt;p&gt;Quando estava aprendendo a criar as minhas primeiras páginas HTML fui ensinado a trabalhar com as mais diversas &lt;code&gt;&amp;lt;tags&amp;gt;&lt;/code&gt;, e dentre elas as listas, &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  O erro
&lt;/h2&gt;

&lt;p&gt;Foi então que eu comecei a desenvolver minhas páginas e em toda lista que eu precisava fazer em vez de colocar tag &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; de List Item, eu colocava &lt;code&gt;&amp;lt;ln&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;O problema aqui é que essa tag não existe no HTML. Ou seja, durante todo esse tempo eu estava usando um elemento HTML que só existia nos meu códigos e que não gerava qualquer diferença para a estrutura dos mesmos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uma visão de fora
&lt;/h2&gt;

&lt;p&gt;Segui assim até essa semana, quando durante uma discussão sobre os códigos junto aos meus colegas de estudos, um deles me perguntou o que era aquela tal &lt;code&gt;&amp;lt;ln&amp;gt;&lt;/code&gt;, e eu não soube responder.&lt;/p&gt;

&lt;p&gt;Essa duvida inundou o meu pensamento, pois mais ninguém sabia se realmente existia essa tag. Perguntei para alguns outros conhecidos no mundo da TI que possuem bem mais experiência do que eu, e dois deles me deram as seguintes respostas:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Pode ser que tenha alguma equivalência em versões anteriores do HTML.&lt;br&gt;
-- &lt;a href="https://www.linkedin.com/in/bruno-de-lucca/"&gt;Bruno de Lucca&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;Por padrão, no HTML puro, sem frameworks ou similares, quando você nomeia uma tag, ele a considera como uma &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; genérica com &lt;code&gt;display:block&lt;/code&gt;.&lt;br&gt;
-- &lt;a href="https://www.linkedin.com/in/airamvieira/"&gt;Leonardo Airam Vieira&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Foi aí que notei meu erro, e obtive uma explicação do porque ainda sim funcionava o código.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mas mesmo errando se adquire conhecimento
&lt;/h2&gt;

&lt;p&gt;No entanto, durante a minha busca, utilizei o queridinho do momento, o ChatGPT, para saber se realmente existia a &lt;code&gt;&amp;lt;ln&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Porem encontrei outro recurso. Alem das famosas &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; com  suas &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;, "descobri" sobre as tags &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt;, cuja estrutura semântica é a seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;dl&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;Termo 1&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;Definição 1&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;Termo 2&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;Definição 2&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;Termo 3&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;Definição 3&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;dl&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;A tag &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt; é usada para criar a lista de definições. Ela deve ser usada como o elemento pai que contém todas as definições da lista.&lt;/li&gt;
&lt;li&gt;A tag &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; é usada para representar o termo ou item que está sendo definido. Ela deve ser usada como um elemento filho da tag &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A tag &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt;, por sua vez, é usada para representar a definição do termo ou item. Ela deve ser usada como um elemento filho da tag &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt;, após o &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; correspondente.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Essa estrutura de lista é utilizada principalmente para dicionários ou artigos que utilizam Termos que necessitam de uma explicação, ou como a própria tag indica, uma definição externa ao conteúdo apresentado.&lt;/p&gt;

&lt;p&gt;Um exemplo prático seria o seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;
&lt;span class="nt"&gt;&amp;lt;dl&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;HyperText Markup Language, ou Linguagem de Marcação de HyperTexto,
      utilizado para estruturar a maior parte das
      páginas Web na internet.&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;CSS&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;Cascading Style Sheets, ou Folha de Estilo em Cascata,
      utilizado para "decorar" e estilizar as páginas HTML.&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;JavaScript&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;Uma linguagem de programação utilizada em páginas web para
      gerar interações com o usuário e
      se comunicar com servidores, etc.&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dl&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusões
&lt;/h2&gt;

&lt;p&gt;Sendo assim, um pequeno erro que já nem lembro mais como se iniciou, me gerou uma dúvida, e essa dúvida me trouxe dois novos conhecimentos sobre o HTML:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Que &lt;code&gt;&amp;lt;tags&amp;gt;&lt;/code&gt; inexistentes são lidas como &lt;code&gt;&amp;lt;divs&amp;gt;&lt;/code&gt;; e&lt;/li&gt;
&lt;li&gt;Existe um conjuntos de tags expecificas para a criação de uma lista de definições dentro HTML.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Logo, vejo que eu realmente tenho muito o que aprender, porém, mesmo os mais experientes não sabem de tudo.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>html</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
