<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by João Pedro || Zero on Medium]]></title>
        <description><![CDATA[Stories by João Pedro || Zero on Medium]]></description>
        <link>https://medium.com/@zerocowl?source=rss-f408d82de493------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*22GrJpKwA6Jb4qcoJyOQnQ.jpeg</url>
            <title>Stories by João Pedro || Zero on Medium</title>
            <link>https://medium.com/@zerocowl?source=rss-f408d82de493------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 15:02:37 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@zerocowl/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[O GraphQL resolve!! (Parte I)]]></title>
            <link>https://medium.com/@zerocowl/graphql-resolve-pt1-72697a655917?source=rss-f408d82de493------2</link>
            <guid isPermaLink="false">https://medium.com/p/72697a655917</guid>
            <category><![CDATA[graphql]]></category>
            <category><![CDATA[apollo]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[João Pedro || Zero]]></dc:creator>
            <pubDate>Fri, 09 Mar 2018 18:23:01 GMT</pubDate>
            <atom:updated>2018-03-09T20:38:39.348Z</atom:updated>
            <content:encoded><![CDATA[<p>Não podemos falar de uma solução sem antes conhecer um problema, que neste caso vai ser listar todos os alunos de uma escola e criar um ranking com as melhores escolas de cada cidade. No primeiro momento pensamos em resolver isso com <strong>REST</strong>, onde teríamos algo como:</p><pre>GET <em>/api/escolas?cidade=saopaulo</em><br>GET <em>/api/alunos?escola=pedrosegundo</em><br>GET <em>/api/alunos?id=1</em><br>GET <em>/api/escolas?id=2</em></pre><p>São pelo menos quatro requisições, além do trabalho de mapear as notas de cada aluno e criar um ranking, agora imagine que esse aluno vai vir com nome, idade, escola, maior nota e data de nascimento, sendo que só <br>precisamos da maior nota e do nome do aluno, bom é nesse ponto que eu te digo <strong>O GraphQL resolve</strong>!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F3o6Ztc1rWLboGL6wiA%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fimpastortv-tv-land-tvland-3o6Ztc1rWLboGL6wiA&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F3o6Ztc1rWLboGL6wiA%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/211459c296cae3e444d21f2a5c384f59/href">https://medium.com/media/211459c296cae3e444d21f2a5c384f59/href</a></iframe><p>O GraphQL foi criado pela equipe de engenheiros do Facebook, que basicamente precisavam lidar com problemas no Feed de Noticias<br>em suas aplicações mobile, tendo como um principio satisfazer aos requisitos de visualização em produtos e aos desenvolvedores que a constroem, em poucas palavras ele entrega aquilo que você pede de forma objetiva e clara.</p><h3>Vamos ao código</h3><p>Para começarmos a criar nossa aplicação vamos configurar o nosso server.js e instalar alguns pacotes.</p><pre><em>npm install express graphql apollo-server-express — save</em></pre><p>Depois de configurar nosso <em>body-parser</em> nos passamos um <em>schema</em>, um <em>context</em>(não se preocupe logo falaremos sobre os <em>loaders</em>) e definimos o <em>graphiql </em>como true.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zbRIjSwEx1bc1bLCWg2O9Q.png" /></figure><p>O primeiro ponto é entender o <em>schema</em>, ele é o cara que define a API do seu servidor, nele você vai criar os tipos e suas propriedades, além das<br>suas mutações e consultas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*udlUXhvzo6BcNcFmQB2aEQ.png" /></figure><h3>Criando os Tipos</h3><p>Definimos um <em>ObjectType </em>e seus campos, repare que ele possui um nome e alguns campos, os campos possuem tipos que são do próprio GraphQL. Também temos um tipo <em>List </em>que pode ser de <em>String</em>, <em>Int </em>ou de <em>ObjectType</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lRs-PZ0bEbmzPhX83AIXkA.png" /></figure><p>Para criar uma <strong><em>query, </em></strong>que é tipo um <em>select </em>do nosso <em>ObjectType, </em>definimos seus campos, que são seus métodos com um tipo de retorno, <em>args </em>(<em>os parâmetros</em>) e o resolve (a <em>função a ser executada</em>).<br>O <strong>resolve </strong>é onde eu efetivamente faço minha consulta, recomendo que tente ser o mais objetivo nesse ponto, se precisar executar outra ação durante a query faça isso fora do resolve e apenas chame a função.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DoLpbl0r9JYtBDrurusVaw.png" /></figure><p>As <strong><em>mutations, </em></strong><em>seriam nossos updates e deletes,</em><strong><em> </em></strong>seguem basicamente a mesma regra, tendo sempre um <em>resolve </em>e um <em>type </em>pelo menos.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LGw9Gq_OsIYvYqE77URqEw.png" /></figure><p>Com isso vamos gerar nosso <em>schema</em>, tudo que fazemos aqui é criar um <em>schema </em>separado para cada objeto e depois o merge deles gerando um único schema.<br>O <em>schema </em>tem pelo menos uma <em>query</em>, quanto a <em>mutation </em>você pode ver que eu adicionei aqueles funções apenas nos campos, mas eu poderia fazer o mesmo que fiz com as <em>queries</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ST0eet3Vdkn75VEr2rybgA.png" /></figure><p>Contudo temos um problema, o GraphQL faz ‘<em>n+1 requests a base</em>’, pois os <em>resolves </em>são apenas funções independentes uma da outra, o que vai acarretar em varias consultas idênticas a base, bom para lidar com isso vou usar o <strong>Dataloader</strong>, que também foi criado pelo Facebook.</p><blockquote>Vou adicionar um link no final explicando detalhadamente como ele funciona.</blockquote><p>Vamos passar nossa função de busca para o <em>loader</em>, que vai reunir nossas consultas em uma única.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wwQelLMH4TRUEZB8EyLpGQ.png" /></figure><p>Tudo pronto agora podemos testar nossa API, acessando <em>localhost:4000/graphiql</em> onde você consegue visualizar e testar suas <em>querys </em>e <em>mutations</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WQsUl8OQN9trpDDCiOkw_w.png" /></figure><p>Para executar uma <em>mutation </em>é só invocar ela passando os parâmetros</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OMHf3qVJkS01M9zNuWaLTg.png" /></figure><p>Voltando ao nosso problema das notas, precisamos listar todos os alunos de todas as escola, com GraphQL podemos personalizar nossa consulta e <br>fazer isso:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*F9i7Deun8BT-Ep-p4DHrPg.png" /></figure><p>Para que possamos analisar nossas requisições vamos adicionar o <a href="https://www.apollographql.com/docs/engine/setup-node.html"><strong>Apollo Engine</strong></a>, que é um gateway feito para ajudar a avaliar o estado de uma <br>API GraphQL.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5OVXw1a4pKfUB9x0_7ep7A.png" /><figcaption>server.js</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4B4jndKo4iV21pceSyirtg.png" /><figcaption>Apollo Engine</figcaption></figure><h3><strong>Conclusão</strong></h3><p>O objetivo deste artigo é apresentar o GraphQL dentro de um cenário real, não pense que ele é uma <em>bala de prata</em>, isso não existe.<br>O GraphQL traz muitos benefícios, desde o número de requisições ao aproveitamento dos dados, mas ele também possui alguns problemas como o <em>n+1</em>, então tente sempre avaliar bem o seu problema antes de apontar uma solução.</p><p>No próximo artigo vou mostrar como consumir nossa API com VueJS, usando o Apollo Client. Você também pode ver o projeto completo no <a href="https://github.com/zerocowl/graphql-school"><strong>meu repositório</strong></a>.</p><blockquote>Este é meu primeiro artigo técnico, espero que tenha gostado e claro que tenha aprendido algo novo.</blockquote><h3>Fontes:</h3><p>- <a href="https://spin.atomicobject.com/2017/05/15/optimize-graphql-queries/">Dataloader </a><br>- <a href="https://www.howtographql.com/">How to GraphQL</a><br>- <a href="https://code.facebook.com/posts/1691455094417024/graphql-a-data-query-language/">GraphQL Origem</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=72697a655917" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Uma carta ao meu velho livro de receitas]]></title>
            <link>https://medium.com/@zerocowl/uma-carta-ao-meu-velho-livro-de-receitas-c17289784547?source=rss-f408d82de493------2</link>
            <guid isPermaLink="false">https://medium.com/p/c17289784547</guid>
            <dc:creator><![CDATA[João Pedro || Zero]]></dc:creator>
            <pubDate>Mon, 08 Jan 2018 02:58:35 GMT</pubDate>
            <atom:updated>2019-04-07T02:33:32.336Z</atom:updated>
            <content:encoded><![CDATA[<p>Já faz muito tempo que estou cozinhando sem você e tenho que admitir, no começo foi bem complicado continuar minhas receitas, até as mais básicas se tornaram complicadas, pois era preciso equilibrar as coisas, e bem como você sabe eu sou meio exagerado quanto a pimenta, o que me levou a pratos desagradáveis e sem um sabor real.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_XkVHFTBLhtetnExbZK6bg.png" /></figure><p>Lembro-me bem de quando éramos uma dupla, éramos bons no que fazíamos, não interessasse o que fosse eu tinha uma ideia maluca na cabeça e você os passos perfeitos pra torná-la possível.<br>Posso dizer, com certeza, que entre nossas melhores receitas a minha favorita foi o<strong> ensopado de codorna</strong>, era uma receita polonesa, bem complexa até. Eu fiquei nervoso e preocupado na época, mas tive a brilhante ideia de finalizar o prato em menos de 20 minutos, não foi tão brilhante assim, mas consegui terminar a receita, ou melhor nós conseguimos.<br>Graças a sua dica sobre o molho de mostarda seguido de uma pitada de açúcar, aquilo deu um equilíbrio a receita; mas se não me falha a memória eu exagerei na mostarda, <em>me desculpe por isso</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*zPFv0OpPyYMSdVDzUAIstg.jpeg" /></figure><p>Passei vários meses te procurando, nas gavetas, no armário da cozinha, embaixo do colchão, até que cansei. Sempre imaginei que era culpa minha, desatenção eu diria, me perguntei diversas vezes como eu podia ter perdido você assim, sem entender ao menos o porque.<br>Nesse tempo eu também tentei outros livros e outras receitas, afinal o restaurante não podia parar, bom não vou mentir pra você, estava certo ao dizer que cada pimenta é única e que cada prato exige um pitada diferente da mesma.<br>Mais alguns meses e lá estava eu, cozinhando sem meu livro, cheguei a um ponto onde tive que aprender a medir quantidade, temperatura e tempo de preparo sozinho, tenho orgulho de te dizer que fiquei realmente bom nisso e por um momento imaginei que tudo isso era parte de algum acaso do destino que me deu uma chance de melhorar e que quando eu te encontra-se estaríamos ambos prontos para o tão sonhado <strong>Pavlova</strong>, um dos pratos mais difíceis que já tínhamos visto.<br>Depois de muita pesquisa e também uns planos malucos eu conclui o que aconteceu com você, talvez eu esteja enganado, mas se depender de você provavelmente eu vou morrer sem saber não é?</p><p>Faz um bom tempo meu caro, eu não sei como está indo no seu novo restaurante, mas você tinha receitas incríveis, então sei que está bem e também deve estar maior, com novas receitas. Sobre meu novo livro de receitas, não tenho um. Deixei de lado isso e voltei a usar meu velho bloco de notas, que esta sendo de grande ajuda.<br>Mas não escrevi isso com o objetivo de te dizer obrigado, escrevi isso pra te dizer que eu nunca teria levado o livro de sobremesas para casa aquele dia e que o fato de você ter sumido me fez perceber que no final você nunca esteve aqui, eu tinha que ir atrás dos ingredientes, eu tinha que preparar tudo, no final você era só um livro, no final eu não aprendi nada com você, por que no final era só eu e um livro qualquer de receitas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*RLou1oC2vgq9V2FqtiFSfA.jpeg" /></figure><p>Não se esqueça que o que te torna especial não é sua capa dura ou suas receitas com 200 passos, mas sim o chefe que está por trás dos pratos, o verdadeiro <strong>autor</strong> das receitas, aquele que um dia cozinhou ao meu lado, aquele que um dia eu chamei de amigo, aquele que um dia eu fui obrigado a deixar pra trás.<br>Por fim gostaria de te pedir um favor, se acaso se encontrar com seu autor diga a ele que eu o admirei por muito tempo, mas isso mudou.<br><em>Do seu velho chef, Zero</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c17289784547" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A primavera e o verão]]></title>
            <link>https://medium.com/@zerocowl/a-primavera-e-o-ver%C3%A3o-1412fbc8de43?source=rss-f408d82de493------2</link>
            <guid isPermaLink="false">https://medium.com/p/1412fbc8de43</guid>
            <category><![CDATA[love]]></category>
            <category><![CDATA[summer]]></category>
            <category><![CDATA[spring]]></category>
            <dc:creator><![CDATA[João Pedro || Zero]]></dc:creator>
            <pubDate>Mon, 30 Jan 2017 05:00:43 GMT</pubDate>
            <atom:updated>2018-07-21T00:45:44.352Z</atom:updated>
            <content:encoded><![CDATA[<p>Sabe aquela fase quente, forte e incrivelmente empolgante? que te deixa sem sono? então esse é o verão, basicamente é uma fase intensa.</p><p>O verão tem suas vantagens, por ser quente ele te deixa eufórico e sempre disposto, mas conforme ele vai passando te deixa desconfortável, com preguiça e até falta de ar; por que essa intensidade toda te faz querer descansar um pouco, só tem um problema nisso, descansar é a ultima coisa que o verão quer que você faça e se insistir nisso ele vai embora.</p><p>O verão é aquela pessoa que passa pela sua vida sem dar explicações de porque esta ali ou porque ainda continua, mas uma hora ela vai embora dizendo no máximo um até logo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/560/1*ZGO6tD3D20QDjr4TtmB-7w.jpeg" /></figure><p>Agora vou explicar porque a primavera é pior, tudo começa com o fim de um inverno frio e vazio, sem metas ou animo pras coisas eu me deparo com uma arvore e um ninho de passarinhos, todos os dias no caminho do trabalho observo o ninho e em especial um dos filhotes, o mais barulhento por sinal.</p><p>Com o tempo eu decido ficar mais próximo dele, mas nunca demais e ai esta o problema da primavera, por que ela não é algo tão intenso como o verão, ela é mais sutil e sem perceber eu já estava envolvido nisso.</p><p>No inicio eu me recusava a me aproximar demais do pássaro, mas logo me peguei dando dicas de voo para ele, sabe o que era mais curioso? ele tinha interesse no que eu dizia e se mostrava empolgado na quantidade de coisas que seria capaz de fazer.</p><p>Um dia o pássaro estava pronto para voar, mas eu não estava pronto pra ficar sem ele, então eu sabotei seu primeiro voo, é eu sei isso foi infantil, mas essa é uma das características da primavera, ela te faz se sentir invencível e único, afinal os pássaros parecem cantar só pra você.</p><p>O sol não é quente demais , nem o vento forte demais, tudo está em uma proporção indescritível e o mais incrível é que tudo transmite vida, as chuvas ocasionais no fim da tarde com aquele cheiro que vem logo ao caírem no asfalto ou aquele vento que te abraça no fim da tarde, até mesmo a manhã quentinha que te deixa animado pra começar o dia.</p><p>Depois de algumas tentativas do pássaro fracassadas e até algumas sabotadas por mim ele ficou diferente, não tinha a mesma vontade de antes, estava morrendo ali mesmo.</p><p>Eu sabia o que tinha que fazer, tinha que deixar ele ir, tinha que motivá-lo a partir e aceitar que seria para sempre, essa é a diferença da primavera pro verão, enquanto o verão vai embora e leva consigo toda a intensidade, a primavera te faz expulsa-la e ser obrigado a ficar com as lembranças de toda a estação.</p><p>Então eu fiz, motivei o pássaro a sair voando, ele se recusava de inicio, mas então mostrei a ele meu pior lado, assim ele não teria porque ficar. Funcionou ele foi embora, foi horrível a sensação de vê-lo partir me odiando, sabendo que nunca mais voltaria, fiquei ali parado por horas pensando em como foi incrível ter vivido essa fase, mas também chorando da raiva que me dava por ter feito tudo aquilo. Naquele dia em questão eu me lembrei da primeira coisa que aprendi sobre as pessoas, elas não morrem de verdade, no fundo elas são esquecidas, e foi o que fiz eu o esqueci e levando comigo só alguns flashes e frases incompletas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mnW5zFN7OHV21cdhGByrxQ.png" /></figure><p>A primavera é aquela pessoa que chega devagar na sua vida, te arranca sorrisos e te deixa sempre confortável, mas ela é nova e precisa aprender muita coisa e sera você a pessoa que vai ensinar pra ela, vai ser incrível porque todos os dias terá algo novo a ensinar, estará motivado sempre, mas ela precisa ir embora e sera você a pessoa encarregada de lhe ajudar nisso.</p><p>Neste dia em questão eu recomendo ser direto e simples, não faça muito alarde apenas diga adeus, tente não olhar pra traz e respire devagar porque vai ser ali que você vai perceber o tanto de coisas que fez e que viveu, os flashes virão de uma vez, as memorias vão se misturar, vai sentir raiva, alegria e remorso, tudo de uma vez. Como eu disse respire devagar, não tem nada que possa fazer, contente-se com o fato de que essa sera a ultima vez que a primavera passara por sua vida, diferente do verão você não vivera duas ou três primaveras, o que pode acontecer é ela voltar como brisas fracas em um outono qualquer para te lembrar daquilo que você tenta esquecer.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1412fbc8de43" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>