<?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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Desenvolvimento Back-end - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Desenvolvimento Back-end - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 04:21:27 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/desenvolvimento-back-end/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como evitar a exposição de sua chave de API em suas aplicações de front-end públicas ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Jackson Bates O problema Tudo o que você quer fazer é buscar algum JSON de um endpoint de API para o clima, algumas resenhas de livros ou algo similarmente simples. A consulta fetch no seu front-end é suficientemente fácil, mas você tem que colar sua chave de API ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-evitar-a-exposicao-de-sua-chave-de-api-em-suas-aplicacoes-de-front-end-publicas/</link>
                <guid isPermaLink="false">66fde51fc4cc5853cfe82856</guid>
                
                    <category>
                        <![CDATA[ Desenvolvimento Back-end ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Thu, 03 Oct 2024 00:42:58 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2024/10/5f9c9fd5740569d1a4ca44e3.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/private-api-keys/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to avoid exposing your API key in your public front-end apps</a>
      </p><p>Escrito por: Jackson Bates</p><h2 id="o-problema">O problema</h2><p>Tudo o que você quer fazer é buscar algum JSON de um <em>endpoint</em> de API para o clima, algumas resenhas de livros ou algo similarmente simples.</p><p>A consulta <em>fetch </em>no seu front-end é suficientemente fácil, mas você tem que colar sua chave de API secreta bem ali no código do <em>front-end</em> para qualquer um encontrar com um mínimo de esforço!</p><p>Além disso, enviar suas chaves de API para o seu repositório do GitHub é um grande problema: <a href="https://www.theregister.co.uk/2015/01/06/dev_blunder_shows_github_crawling_with_keyslurping_bots/">um desenvolvedor colocou suas chaves da AWS no Github e COISAS RUINS aconteceram</a> (texto em inglês).</p><blockquote>"Por que isso é tão difícil?!" – Você, provavelmente há 15 minutos</blockquote><h2 id="a-solu-o">A solução</h2><p>Você deve usar um servidor de <em>back-end</em> para buscar os resultados da API para você e depois passá-los para o seu <em>front-end</em>.</p><h2 id="o-novo-problema">O novo problema</h2><p>Você está apenas tentando fazer uma demonstração de <em>front-end</em> para seu portfólio! Você ainda não aprendeu nada sobre tecnologias de <em>back-end</em>! Por que isso é tão difícil?</p><h1 id="demonstra-o">Demonstração</h1><p>Encontrei esse problema com frequência suficiente para decidir parar de inventar truques bobos e implementar uma solução que funciona com código <em>back-end </em>mínimo.</p><p>Nessa demonstração, eu configuro um <em>back-end</em> que escuta por requisições POST e as envia para a <a href="https://www.goodreads.com/api">API do GoodReads</a>. Para usar isso, você precisa implementar <strong>seu próprio</strong> <em>front-end</em> que possa enviar a requisição POST apropriada para esse <em>back-end</em>. Seu <em>front-end</em> não se comunicará diretamente com o GoodReads. Portanto, nenhuma chave de API é exposta.</p><h2 id="voc-precisar-">Você precisará</h2><ul><li><a href="https://nodejs.org/en/download/">Node</a> (o teste foi feito com a versão v10.16.0 – versões posteriores não terão problemas, versões anteriores podem encontrar alguns)</li><li><a href="https://git-scm.com/downloads">git</a></li><li>Este repositório: <a href="https://github.com/JacksonBates/example-goodreads-api-relay">https://github.com/JacksonBates/example-goodreads-api-relay</a></li></ul><h3 id="comece">Comece</h3><p><code>git clone https://github.com/JacksonBates/example-goodreads-api-relay.git</code></p><p>O README.md (em inglês) contém tudo o que você precisa saber, incluindo instalação e configuração.</p><p>Incluí os pontos principais aqui (traduzidos) para sua conveniência:</p><h3 id="readme-md">README.md</h3><p>Instale as dependências:</p><p><code>npm i</code></p><p>Você precisa criar seu próprio arquivo <code>.env</code> para sua chave:</p><p><code>cp .env.example .env</code></p><p>Então, abra o novo arquivo <code>.env</code> e cole suas chaves no local correto.</p><p>Exemplo:</p><pre><code>GOODREADS_API_KEY=AABBCCDDEEFF00112233445566778899
</code></pre><p>Agora execute o servidor:</p><p><code>node app.js</code></p><p>No navegador, navegue até <code>localhost:3000</code> para confirmar que o servidor está funcionando. Você deve ver um simples <code>Hello World!</code></p><h3 id="o-que-vem-a-seguir">O que vem a seguir?</h3><p>Agora, leia o arquivo <code>app.js</code> cuidadosamente.</p><p>Comentei o código extensivamente para ajudá-lo a entender o que está acontecendo se você não viu muito sobre o <em>node</em> e o <em>express</em> antes.</p><pre><code>// app.js

// Aqui, importamos os módulos necessários e definimos algumas variáveis iniciais
require("dotenv").config();
const express = require("express");
const fetch = require("node-fetch");
const convert = require("xml-js");
const rateLimit = require("express-rate-limit");
const app = express();
const port = 3000;

// Limitação de taxa – o Goodreads limita para 1/seg, então devemos fazer 
// isso também
// Ative se você estiver atrás de um proxy reverso (Heroku, Bluemix, AWS ELB, // Nginx etc)
// veja https://expressjs.com/en/guide/behind-proxies.html
// app.set('trust proxy', 1);

const limiter = rateLimit({
    windowMs: 1000, // 1 segundo
    max: 1, // limita cada IP a 1 requisição por windowMs
})

// Aplicar a todas as requisições
app.use(limiter)

// Rotas

// Rota de teste, visite localhost:3000 para confirmar se está funcionando
// deve mostrar 'Hello World!' no navegador
app.get("/", (req, res) =&gt; res.send("Hello World!"));

// Nossa rota do Goodreads!
app.get("/api/search", async (req, res) =&gt; {
    try {
        // Isso usa interpolação de strings para fazer nossa string de
        // consulta de busca
        // tira o parâmetro de consulta postado e o reformata para o
        // goodreads
        const searchString = `q=${req.query.q}`;

        // Usa o node-fetch para chamar a API do goodreads e lê a chave do
        // .env
        const response = await fetch(`https://www.goodreads.com/search/index.xml?key=${process.env.GOODREADS_API_KEY}&amp;${searchString}`);
        //mais informações aqui https://www.goodreads.com/api/index#search.books
        const xml = await response.text();

        // A API do Goodreads retorna XML, então para usá-la facilmente no front-end, podemos
        // converter isso para JSON:
        const json = convert.xml2json(xml, { compact: true, spaces: 2 });

        // A API retorna coisas que não nos interessam, então podemos muito bem eliminar
        // tudo exceto os resultados:
        const results = JSON.parse(json).GoodreadsResponse.search.results;

        return res.json({
            success: true,
            results
        })
    } catch (err) {
        return res.status(500).json({
            success: false,
            message: err.message,
        })
    }
})

// Isso ativa nosso servidor e gera logs para usarmos.
// As declarações console.log que você usar no node para depuração 
// aparecerão no seu terminal, não no console do navegador!
app.listen(port, () =&gt; console.log(`Exemplo de aplicação escutando na porta ${port}!`));
</code></pre><p><strong>Atualização</strong>: um grande agradecimento a Gouri Shankar Kumawat por contribuir com um PR que melhorou este código! Você pode segui-lo no <a href="https://twitter.com/dev_gskumawat">Twitter</a> ou no <a href="https://github.com/gskumawat0">GitHub</a>.</p><p>Use o <a href="https://www.getpostman.com/">Postman</a> para testar a API.</p><p>Configure o Postman para GET e cole isso no URL: <code>localhost:3000/api/search?q=hobbit</code></p><p>O Postman mostrará a resposta JSON abaixo.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2024/10/get_request.png" class="kg-image" alt="get_request" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2024/10/get_request.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2024/10/get_request.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2024/10/get_request.png 1151w" sizes="(min-width: 720px) 720px" width="1151" height="636" loading="lazy"><figcaption><em>Captura de tela do Postman mostrando o JSON retornado do nosso novo back-end</em></figcaption></figure><h3 id="como-usar-isso-no-seu-front-end">Como usar isso no seu <em>front-end</em>?</h3><p>Esta aplicação simples está escutando requisições POST em <code>/api/search</code>, então interaja com ela em sua aplicação de <em>front-end</em> da mesma forma que você fazia anteriormente com a API original.</p><p>Ela está configurada apenas para lidar com consultas de pesquisa – se você quiser usar outros endpoints/métodos da API do Goodreads, precisará pensar em como implementá-los por conta própria!</p><h3 id="hospedagem">Hospedagem</h3><p>Você não pode implantar seu <em>front-end</em> e ainda ter isso no <em>localhost</em> – obviamente você precisa implantar isso também.</p><p>Recomendo o <a href="https://devcenter.heroku.com/articles/deploying-nodejs">Heroku</a> (site em inglês).</p><blockquote>Nota da tradução: no momento da tradução deste artigo, o Heroku não está mais disponibilizando um tier gratuito para uso. Aos que procuram uma alternativa gratuita, recomendamos a busca por outras fontes.</blockquote><h2 id="b-nus">Bônus</h2><p>Se você quiser expandir essa solução, pode considerar como torná-la acessível apenas a partir de um intervalo restrito de endereços IP para aumentar a segurança – o que estava fora do escopo deste tutorial/demonstração.</p><p>A solução foi montada rapidamente em resposta a uma discussão no <a href="https://www.freecodecamp.org/forum">fórum</a>. Se você encontrar algum problema neste artigo ou no código de exemplo, não hesite em responder ao <a href="https://forum.freecodecamp.org/t/trying-to-fetch-response-from-goodreads-api/323312/15?u=jacksonbates">tópico do fórum</a> (em inglês) que deu início a tudo. Manterei o artigo e o repositório atualizados com melhorias.</p><p>Sinta-se à vontade para enviar PRs se tiver contribuições valiosas a fazer. 😀</p><p>Você também pode entrar em contato com o autor via <a href="https://twitter.com/jacksonbates">Twitter</a>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ A melhor maneira de aprender desenvolvimento em back-end para a web ]]>
                </title>
                <description>
                    <![CDATA[ Meu artigo anterior descreveu como você pode entrar no desenvolvimento em front-end [https://www.freecodecamp.org/news/learn-frontend-web-development/]  (texto em inglês). Ele também discutiu como o front-end pode ser um lugar cheio de perigos – pisar no lugar errado e você ficará sobrecarregado com os muitos  frameworks do ecossistema do JavaScript. Neste artigo, ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/a-melhor-maneira-de-aprender-desenvolvimento-em-backend-para-a-web/</link>
                <guid isPermaLink="false">63724e561c6e8805bd494d9a</guid>
                
                    <category>
                        <![CDATA[ Desenvolvimento Back-end ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Elizabete Nakamura ]]>
                </dc:creator>
                <pubDate>Tue, 20 Dec 2022 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/11/5f9c9bab740569d1a4ca2d39.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/learn-backend-development/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The Best Way to Learn Backend Web Development</a>
      </p><p>Meu artigo anterior descreveu <a href="https://www.freecodecamp.org/news/learn-frontend-web-development/">como você pode entrar no desenvolvimento em <em>front-end</em></a> (texto em inglês). Ele também discutiu como o <em>front-end</em> pode ser um lugar cheio de perigos – pisar no lugar errado e você ficará sobrecarregado com os muitos <em>frameworks </em>do ecossistema do JavaScript.</p><p>Neste artigo, vamos ver como você pode entrar no desenvolvimento em <em>back-end</em>. Ao longo do caminho, vou responder a algumas das perguntas mais comuns que as pessoas me fazem sobre o assunto.</p><h2 id="o-que-o-desenvolvimento-em-back-end"><strong>O que é o desenvolvimento em </strong><em>back-end</em><strong>?</strong></h2><p>O desenvolvimento em <em>front-end</em> envolve o que um usuário vê na tela quando abre um URL específico de sua propriedade. Mesmo em um ambiente completamente estático (apenas com HTML/CSS), quando alguém abre um site da web, algum servidor no planeta precisa responder a você com esses arquivos HTML e CSS.</p><p>Esse servidor é apenas um computador, como aquele que você mesmo usa para navegar na internet. Ele, no entanto, foi ajustado para o desempenho, não tendo componentes desnecessários como um mouse ou teclado anexado. Ele também fica com milhares de outros computadores, provavelmente em um depósito de dados.</p><p>A programação desses computadores de algum modo especial é chamada de <strong>desenvolvimento em <em>back-end</em></strong>.</p><p>Você pode pensar que o desenvolvimento em <em>back-end</em> é chamado assim porque ele funciona por trás daquilo que o usuário enxerga. Um visitante do seu site nunca realmente "acessa" completamente o <em>back-end</em>. Ele apenas se comunica com o seu servidor, seja diretamente através de portas para acesso muito limitado (como a transferência de arquivos HTML/CSS) ou nem mesmo isso - enterrado profundamente sob CDNs ou firewalls (como no caso do Cloudflare).</p><p>Agora que temos uma compreensão básica do que significa desenvolvimento em <em>back-end</em>, vamos entrar em algumas questões <strong>reais</strong>.</p><h2 id="-necess-rio-o-conhecimento-de-programa-o-em-front-end-para-o-back-end"><strong>É necessário o conhecimento de programação em <em>front-end </em>para o </strong><em>back-end</em><strong>?</strong></h2><p><strong>Resposta curta:</strong> Não.</p><p>O desenvolvimento em <em>back-end</em>, como mencionado acima, envolve a programação de um computador que provavelmente está do outro lado do planeta, responsável por responder ao que seus usuários dizem a partir dos seus próprios computadores.</p><p>Se você é um desenvolvedor em <em>back-end</em> em tempo integral, você realmente não precisa se importar com o que acontece dentro daqueles arquivos HTML, CSS e JavaScript que você envia para o navegador do usuário. Ao invés disso, você tem que se concentrar mais no desempenho do servidor, no código do servidor e na produção.</p><h2 id="o-que-acontece-no-desenvolvimento-em-back-end"><strong>O que acontece no desenvolvimento em </strong><em>back-end</em><strong>?</strong></h2><p>Bem, seguindo os livros, você pode dizer que uma pessoa que programa uma aplicação que pode responder a solicitações HTTP é um desenvolvedor em <em>back-end</em>.</p><p>Na realidade, porém, às vezes, os desenvolvedores em<em> back-end</em> são capazes de fazer muito mais do que apenas escrever scripts de servidor. Eles têm o conhecimento para configurar servidores proxies reversíveis (NGiNX/HAProxy), permitir a compressão e outras formas de acelerar o site, além de configurar um ambiente do Docker de produção.</p><p>Para se qualificar como desenvolvedor em <em>back-end</em>, eu diria que as habilidades mínimas que você precisa são:</p><ol><li>Bom conhecimento sobre uma linguagem de programação na qual você pode escrever servidores HTTP. Exemplos: C#, Java, Node, PHP, Python etc. (há muitas!)</li><li>Gerenciar para hospedagem usando cPanel (tradicional) ou usando o terminal do bash (cloud hosting/tradicional)</li><li>Trabalhar com sistemas de controle de versão (VCS) como o Git para gerenciar e fazer a implantação das <em>builds</em></li></ol><p>Assim como todo jogo vem com especificações mínimas e recomendadas, para os desenvolvedores em <em>back-end</em>, as minhas especificações recomendadas seriam (incluindo as habilidades mínimas):</p><ol><li>NGiNX, para itens de arquivos estáticos e gerenciamento de servidores</li><li>Habilidades de gerenciamento de banco de dados (SQL/NoSQL)</li><li>Segurança do <em>back-end</em> (escrever código seguro e robusto, executar aplicações em contêineres do Docker com privilégios limitados, proteção contra ataques DdoS)</li><li>Balanceamento automático/balanceamento de carga</li></ol><p>Muito bem, já falei muito sobre o necessário para o desenvolvimento em back-end. Como, no entanto, você pode se torna um desenvolvedor em <em>back-end</em>?</p><h2 id="comece-com-os-requisitos-m-nimos"><strong>Comece com os requisitos mínimos</strong></h2><p>Como eu disse, para o <em>back-end</em>, assim como nos jogos, temos um conjunto de requisitos mínimos e requisitos recomendados. Os requisitos mínimos consistem em 3 coisas:</p><h2 id="aprenda-uma-linguagem-de-programa-o-de-back-end"><strong>Aprenda uma linguagem de programação de <em>back-end</em></strong></h2><p>Quando as pessoas aprendem sozinhas, elas geralmente não têm uma equipe ou alguém que possa fazer o desenvolvimento do <em>front-end</em>. Elas estão todas por conta própria. Portanto, muitas vezes, você terá que criar páginas da web e servidores por conta própria, ao menos no início.</p><p>Existem muitas opções de linguagens de programação de <em>back-end</em>. Não consigo pensar em nenhuma linguagem de sistema popular que não suporte servidores HTTP desde o início. A vantagem de se escolher o Node é que suas habilidades de JavaScript do <em>front-end </em>são transferíveis para o <em>back-end</em>.</p><p>No entanto, você pode escolher entre uma variedade de linguagens, como Java, C++, C#, Python, PHP, entre outras.</p><p>Como escolher uma, você pode se perguntar. A resposta é a mesma que foi dada no artigo de desenvolvimento em <em>front-end</em>: você tem que tentar tudo inicialmente e ver qual é aquela que é melhor com você.</p><p>O Node é fácil, já que você deve ter feito a programação em JavaScript para o <em>front-end</em>. Se, no entanto, você é um desenvolvedor Python ou Java, pode achar essas fáceis de entender. Isso depende completamente da sua profissão e do seu gosto.</p><h2 id="aprenda-mais-sobre-como-administrar-a-hospedagem"><strong>Aprenda mais sobre como administrar a hospedagem</strong></h2><p>Já se foram os dias em que você precisava comprar servidores manualmente e configurá-los em sua casa, conectar-se ao provedor e fazer tudo isso você mesmo. Essa é a era da computação em nuvem. Agora, ao hospedar seu site da web, você tem 2 opções, em especial:</p><ol><li>Ir para servidores de hospedagem gerenciada, como a HostGator ou o GoDaddy.</li><li>Ir para provedores de hospedagem em nuvem, como a GCP, a AWS ou a DigitalOcean.</li></ol><p>Qual é a diferença entre os dois? Em ambos os casos, os servidores são de propriedade e operados pelas respectivas empresas. A grande diferença, porém, é que a hospedagem gerenciada é mais amigável para as interfaces gráficas, tem um rico conjunto de ferramentas para ver o sistema de arquivos, monitorar o uso, gerenciar seus e-mails oficiais de domínio, fazer upload/download de arquivos de seu servidor e assim por diante. É, basicamente, uma configuração para pessoas com menos habilidades técnicas.</p><p>Por esse motivo, não recomendo sites gerenciados, como a HostGator ou o GoDaddy, para desenvolvedores experientes. Mesmo assim, pode ser uma boa plataforma para cometer erros e aprender com eles, principalmente porque você normalmente tem planos pré-pagos para eles. Você também terá uma boa interface para gerenciar as coisas, o que não permite que você faça com que suas contas aumentem exponencialmente por acidente.</p><p>Quando, no entanto, você começar a se acostumar, recomendo que você mude para um provedor na nuvem. Isso tira todas as ferramentas legais do cPanel que você usava para gerenciar arquivos e pastas em servidores. Ao mesmo tempo, o desafiará muito a elevar o nível de suas habilidades.</p><p>Hoje, muitos provedores na nuvem também oferecem um teste gratuito decente, para que você possa realmente experimentar a plataforma deles antes de entrar em pleno funcionamento. Eu hospedo meu site para desenvolvedores – o codedamn – na DigitalOcean e acho que ele tem um bom equilíbrio entre complexidade e recursos do site.</p><p>Você pode usar <a href="https://m.do.co/c/2c4c3ec5405a">este link para se inscrever</a> na DigitalOcean e obter <strong>US$ 100 de créditos</strong> <strong>gratuitos</strong>. As instâncias da DigitalOcean custam cerca de US$ 5 por mês. Então, você tem cerca de 20 meses nessa instância. Ótimo negócio, não é?</p><p>De qualquer forma, você pode escolher qualquer provedor na nuvem. Então, é importante aprender a gerenciar o servidor usando apenas a linha de comando usando o ssh nela.</p><h2 id="saiba-mais-sobre-sistemas-de-controle-de-vers-o"><strong>Saiba mais sobre sistemas de controle de versão</strong></h2><p>Existem outras soluções além do Git para SCVs. O Git, porém é a solução mais usada e a mais simples de entender.</p><p>Pessoalmente, pode ser que você não goste do Git de imediato, mas você entenderá porque ele é tão importante no momento em que você começar a trabalhar em equipe, em vários recursos simultaneamente em seu projeto.</p><p>O Git permite que você gerencie o seu fluxo de trabalho utilizando <em>commits </em>e <em>branches</em>. Os <em>commits </em>são como <strong>pontos de verificação</strong> em sua base de código – aqueles para os quais você pode sempre retornar se estragar tudo.</p><p>As<em> branches </em>são como <strong>realidades alternativas</strong> do seu projeto, onde algo completamente diferente poderia acontecer. Essas realidades alternativas podem ser criadas a partir de qualquer ponto no tempo e podem ser mescladas novamente a qualquer momento.</p><p>Se essas realidades puderem ser mescladas com compatibilidade, tudo bem. Se houver algum conflito (como se você estivesse vivo em uma realidade e morto em outra), você terá que fazer uma escolha manualmente. Outras mudanças podem ser mescladas automaticamente.</p><p>O Git é superinteressante. Quando você o dominar, vai querer usá-lo em cada projeto. Você conseguirá manter um histórico do seu trabalho de modo eficiente (ele comprime e armazena apenas a diferença entre os <em>commits</em>).</p><p>Também é possível criar repositórios do Git on-line, em sites como o GitHub, que atua como uma fonte central de verdade para o seu site. Sites como o GitHub podem ser configurados com <em>hooks</em> especiais da web, que podem realmente atualizar o seu site sempre que você adicionar um novo ponto de verificação (um novo <em>commit</em>) sem que você precise ir manualmente ao servidor e atualizá-lo você mesmo.</p><h2 id="tenha-as-habilidades-recomendadas"><strong>Tenha as habilidades recomendadas</strong></h2><p>Eu acredito firmemente em aprender fazendo. A melhor maneira de se fazer algo vem da necessidade ou do interesse. Quando você se considerar suficientemente bom com os requisitos mínimos, é hora de adquirir as habilidades recomendadas. Essas incluem todas as ferramentas, como o Docker e o NGiNX, mencionadas acima.</p><p>O <strong>DevOps</strong> também é algo que se encaixa muito bem com os desenvolvedores em <em>back-end</em>. Você pode tentar explorar o <strong>TravisCI</strong> ou o <strong>CircleCI</strong> para builds automatizadas. Integração e Implantação Contínuas (CI/CD) é um tópico que poderia levar a outro artigo inteiro. Por isso, não vou entrar no assunto. Na verdade, uma vez configurado corretamente, isso lhe poupará uma quantidade ridícula de tempo de desenvolvimento!</p><p>Depois, temos os bancos de dados, que eu coloquei nas habilidades recomendadas. Você vai, contudo, precisar de bancos de dados para praticamente qualquer aplicação que envolva algum tipo de persistência de dados gerada pelo usuário.</p><p>Os bancos de dados são geralmente fáceis de começar a trabalhar, mas mais difíceis de manter e de ajustar corretamente. A melhor maneira de se começar a trabalhar em uma pilha de tecnologia em <em>back-end</em> é ter tudo junto em um único servidor – o código de sua aplicação, os servidores proxy reversos, o banco de dados e assim por diante. Então, conforme você se torna mais proficiente em cada parte, você pode desacoplá-la da lógica de negócios existente.</p><p>Ao fazer isso, você está possibilitando uma arquitetura que pode ser altamente escalonável. Uma aplicação intensiva do banco de dados poderia ter uma solução otimizada para eles. Um site com tráfego intenso deve ter um bom mecanismo de CDN para descarregar ativos estáticos e assim por diante.</p><h2 id="conclus-o"><strong>Conclusão</strong></h2><p>Há muito o que aprender, mas tudo isso é possível se você não desistir. Conte ao autor o que você pensou sobre este artigo através do <a href="https://twitter.com/mehulmpt"><strong>Twitter</strong></a> e do <a href="https://instagram.com/mehulmpt"><strong>Instagram</strong></a> do autor. Ele gostará muito de se conectar com os leitores por lá!</p><p>Além disso, se estiver interessado, confira o <a href="https://codedamn.com"><strong>codedamn</strong></a> – uma plataforma voltada para o desenvolvedor para o aprendizado de tecnologias como o desenvolvimento em <em>back-end</em>! O autor, inclusive, já publicou <a href="https://www.youtube.com/watch?v=IOTL7RqUZEU">um vídeo no YouTube sobre como rodar seu próprio servidor de sites da web simples em apenas 2 minutos</a>! Confira o e diga ao autor o que você acha pelas redes sociais mencionadas acima!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
