<?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: Jhonatam Santos</title>
    <description>The latest articles on DEV Community by Jhonatam Santos (@jhonatamsantos).</description>
    <link>https://dev.to/jhonatamsantos</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%2F835723%2F1a6d48df-600e-4351-a846-d5cd027e0eed.jpeg</url>
      <title>DEV Community: Jhonatam Santos</title>
      <link>https://dev.to/jhonatamsantos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jhonatamsantos"/>
    <language>en</language>
    <item>
      <title>O que é um ORM?</title>
      <dc:creator>Jhonatam Santos</dc:creator>
      <pubDate>Tue, 17 May 2022 12:56:13 +0000</pubDate>
      <link>https://dev.to/jhonatamsantos/o-que-e-um-orm-4op8</link>
      <guid>https://dev.to/jhonatamsantos/o-que-e-um-orm-4op8</guid>
      <description>&lt;p&gt;O mapeamento relacional de objeto (orm), é uma técnica programacional que permite consultar e manipular dados de um banco utilizando um paradigma orientado a objetos. Ao falar sobre orm estamos nos referindo a uma &lt;em&gt;biblioteca&lt;/em&gt; que implementa esta técnica de mapeamento de objeto relacional (Object-Relational Mapping), daí a sigla orm.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A parte Object é aquela que você usa com sua linguagem de programação (python neste caso).&lt;/li&gt;
&lt;li&gt;A parte relacional é um sistema gerenciador de banco de dados relacional (um banco de dados que é) existem outros tipos de bancos de dados, mas o mais popular é o relacional (você conhece tabelas, colunas, pk fk etc, por exemplo, Oracle MySQL, MS-SQL).&lt;/li&gt;
&lt;li&gt;E finalmente a parte de Mapeamento é onde você faz uma ponte entre seus objetos e suas tabelas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aqui temos um exemplo fictício.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Você tem uma classe de livros, deseja recuperar todos os livros cujo autor é "Linus". Manualmente, você faria algo assim:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;book_list = new List();&lt;br&gt;
sql = "SELECT book FROM library WHERE author = 'Linus'";&lt;br&gt;
data = query(sql); // I over simplify ...&lt;br&gt;
while (row = data.next())&lt;br&gt;
{&lt;br&gt;
     book = new Book();&lt;br&gt;
     book.setAuthor(row.get('author');&lt;br&gt;
     book_list.add(book);&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Com uma biblioteca orm ficario assim:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;book_list = BookTable.query(author="Linus");&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A parte mecânica é tratada automaticamente através da biblioteca ORM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como aprender sobre ORM?
&lt;/h2&gt;

&lt;p&gt;Bem, use um. Qualquer que seja a biblioteca ORM que você escolher, todas elas usam os mesmos princípios. Existem muitas bibliotecas ORM por aqui:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java: Hibernate.&lt;/li&gt;
&lt;li&gt;PHP: Propel or Doctrine (I prefer the last one).&lt;/li&gt;
&lt;li&gt;Python: the Django ORM or SQLAlchemy (My favorite ORM library ever).&lt;/li&gt;
&lt;li&gt;C#: NHibernate or Entity Framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Se você quiser experimentar uma biblioteca ORM na programação da Web, seria melhor usar uma pilha de estrutura inteira como:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Symfony (PHP, usando Propel ou Doctrine).&lt;/li&gt;
&lt;li&gt;Django (Python, usando um ORM interno).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>braziliandevs</category>
      <category>database</category>
    </item>
    <item>
      <title>Como a web funciona?</title>
      <dc:creator>Jhonatam Santos</dc:creator>
      <pubDate>Tue, 17 May 2022 05:02:36 +0000</pubDate>
      <link>https://dev.to/jhonatamsantos/como-a-web-funciona-5h2e</link>
      <guid>https://dev.to/jhonatamsantos/como-a-web-funciona-5h2e</guid>
      <description>&lt;h2&gt;
  
  
  Cliente e servidor
&lt;/h2&gt;

&lt;p&gt;Computadores conectados à web são chamados clientes e servidores. Um diagrama simplificado de como eles interagem pode ter essa aparência:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hCziNtrX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8bqh8a2ns9ftap8a3x9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hCziNtrX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8bqh8a2ns9ftap8a3x9f.png" alt="Cliente Servidor" width="880" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clientes são os típicos dispositivos conectados à internet dos usuários da web (por exemplo, seu computador conectado ao seu Wi-Fi ou seu telefone conectado à sua rede móvel) e programas de acesso à Web disponíveis nesses dispositivos (geralmente um navegador como Firefox ou Chrome).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Servidores são computadores que armazenam páginas, sites ou aplicativos. Quando o dispositivo de um cliente quer acessar uma página, uma cópia dela é baixada do servidor para a máquina do cliente para ser apresentada no navegador web do usuário.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  As outras partes da caixa de ferramentas
&lt;/h2&gt;

&lt;p&gt;O cliente e o servidor que descrevemos acima não contam toda a história. Existem muitas outras partes envolvidas, e vamos descrevê-las abaixo.&lt;br&gt;
Por enquanto, vamos imaginar que a web é uma estrada. Em um extremo da estrada, temos o cliente, que é como sua casa. No extremo oposto, temos o servidor, que é como uma loja onde você quer comprar algo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Além do cliente e do servidor temos:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sua conexão de Internet:&lt;/strong&gt; permite que você mande e receba dados na web. É basicamente como a rua entre sua casa e a loja.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TCP/IP:&lt;/strong&gt; Protocolo de Controle de Transmissão e Protocolo de Internet (Transmission Control Protocol e Internet Protocol) são protocolos de comunicação que definem como os dados trafegam pela web. São como os mecanismos de transporte que te permitem ir ao shopping, fazer um pedido e comprar seus produtos. Em nosso exemplo, é como um carro ou uma bicicleta (ou qualquer outra coisa que você possa usar).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DNS:&lt;/strong&gt; Servidor de Nome de Domínio (Domain Name Servers) são como um catálogo de endereços para sites. Quando você digita um endereço web no seu navegador, o navegador procura no servidor de DNS para localizar o endereço real do site, antes que ele possa recuperar o site. O navegador precisa encontrar em qual servidor web a página está hospedada para que ele possa mandar mensagens HTTP ao lugar certo (veja abaixo). Isso é como pesquisar o endereço da loja para que você possa entrar em contato.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTTP:&lt;/strong&gt; Protocolo de Transferência de Hypertexto (Hypertext Transfer Protocol) é um protocolo de aplicação que define uma linguagem para clientes e servidores se comunicarem entre si. É como a linguagem que você usa para encomendar seus produtos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Arquivos componentes:&lt;/strong&gt; um website é feito de muitos arquivos diferentes, que são como as diferentes partes dos produtos que você comprou na loja. Esses arquivos são divididos em dois tipos principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arquivos de Código:&lt;/strong&gt; os sites são feitos principalmente de HTML, CSS e JavaScript, embora você possa conhecer outras tecnologias mais tarde.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recursos:&lt;/strong&gt; esse é o nome coletivo para todas as outras coisas que compõem um site, como imagens, música, vídeos, documentos do Word e PDFs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Então, o que acontece, exatamente?
&lt;/h2&gt;

&lt;p&gt;Quando você digita um endereço da web no seu navegador é como ir andando até a loja:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;O navegador vai para o servidor de DNS e encontra o endereço verdadeiro de onde o site está hospedado (você encontra o endereço da loja).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O navegador manda uma mensagem de requisição HTTP para o servidor, pedindo que envie uma cópia do site ao cliente (você vai até a loja e pede suas mercadorias). Esta mensagem e todos os outros dados enviados entre o cliente e o servidor são enviados pela sua conexão à internet usando TCP/IP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Se o servidor aprovar a requisição do cliente, o servidor enviará ao cliente uma mensagem "200 OK", que significa "Claro que você pode ver esse site! Aqui está" e então começa a enviar os arquivos do site para o navegador como uma série de pequenos pedaços chamados pacotes de dados (a loja dá a você as suas mercadorias e você as traz para sua casa).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O navegador monta os pequenos pedaços em um site completo e o mostra a você (as mercadorias chegam à sua porta — novas coisas brilhantes e incríveis!).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  DNS explicado
&lt;/h2&gt;

&lt;p&gt;Endereços web verdadeiros não são sequências de textos boas e fáceis de lembrar que você digita na sua barra de endereços para encontrar seus sites favoritos. Eles são números especiais que se parecem com isso: 63.245.215.20.&lt;/p&gt;

&lt;p&gt;Isso é chamado &lt;a href="https://www.notion.so/Observa-es-6d0d30d745b4493696f84cba1cee8df7"&gt;endereço IP&lt;/a&gt; e representa um local único na web. No entanto, não é muito fácil de lembrar, é? É por isso que o Servidor de Nome de Domínio foi inventado. Esses são servidores especiais que relacionam o endereço da web que você digita no seu navegador (como "&lt;a href="http://mozilla.org/"&gt;mozilla.org&lt;/a&gt;") com o endereço real do site (IP).&lt;/p&gt;

&lt;p&gt;Sites podem ser acessados diretamente pelo seu endereço IP. Você pode encontrar o endereço IP de um site, digitando seu domínio em uma ferramenta como o &lt;a href="https://ipinfo.info/html/ip_checker.php"&gt;IP Checker&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pacotes explicados
&lt;/h2&gt;

&lt;p&gt;Anteriormente, usamos o termo "pacotes" para descrever o formato no qual os dados são enviados do servidor para o cliente. O que nós queremos dizer? Basicamente, quando os dados são enviados pela web, eles são enviados como milhares de pequenos blocos, para que muitos usuários diferentes possam baixar o mesmo site ao mesmo tempo. Se os websites fossem enviados como um grande bloco, somente um usuário por vez poderia baixá-los, o que, obviamente, tornaria a web muito ineficiente e não muito divertida de usar.&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Como a internet funciona?</title>
      <dc:creator>Jhonatam Santos</dc:creator>
      <pubDate>Tue, 17 May 2022 04:43:35 +0000</pubDate>
      <link>https://dev.to/jhonatamsantos/como-a-internet-funciona-3253</link>
      <guid>https://dev.to/jhonatamsantos/como-a-internet-funciona-3253</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Basicamente a internet é uma gigantesca rede de computadores que se comunicam juntos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Mergulho profundo
&lt;/h2&gt;

&lt;p&gt;Quando dois computadores precisam se comunicar, você precisa conectá-los, seja fisicamente (normalmente com um cabo de rede) ou de uma forma sem fio (por exemplo com sistemas WiFi ou Bluetooth). Todos os computadores modernos suportam alguma dessas conexões.&lt;/p&gt;

&lt;p&gt;Uma rede não é limitada a dois computadores. Você pode conectar quantos computadores desejar. Mas isto se torna complicado. Se você está tentando conectar, digamos, dez computadores você irá precisar de 45 cabos, com 9 conexões por computador.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kqqlAoAm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qi1jfozk9l18844t9086.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kqqlAoAm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qi1jfozk9l18844t9086.png" alt="conexão de rede" width="600" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para resolver este problema, cada computador na rede está conectado à um pequeno computador especial chamado de &lt;em&gt;roteador&lt;/em&gt;. Este &lt;em&gt;roteador&lt;/em&gt; tem um único trabalho: como um sinalizador em uma estação de trem, ter certeza de que a mensagem enviada por um determinado computador chegue ao computador destinatário corretamente. Para enviar uma mensagem para o computador B, o computador A deve enviar a mensagem para o roteador, que por sua vez encaminha a mensagem para o computador B e tem a certeza de que a mensagem não foi entregue ao computador C.&lt;/p&gt;

&lt;p&gt;Uma vez que nós adicionamos um roteador no sistema, nossa rede de 10 computadores apenas necessitará de 10 cabos: uma única conexão para cada computador e um roteador com 10 conexões.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GTXiH4mI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hscx4h46vauh8gvcedd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GTXiH4mI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hscx4h46vauh8gvcedd5.png" alt="Conexão usando roteador" width="600" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Uma rede de redes
&lt;/h2&gt;

&lt;p&gt;Por enquanto, tudo bem. Mas como conectar centenas, milhares, bilhões de computadores? Claro que um único roteador não pode se adaptar para tanto, mas, se você ler com cuidado, nós dissemos que um roteador é um computador como qualquer outro, então o que nos impede de conectar dois roteadores juntos? Nada, então façamos isto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rXU4FcX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kkn7l2ur0n8di4sl1359.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rXU4FcX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kkn7l2ur0n8di4sl1359.png" alt="conexão de roteadores" width="600" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conectando computadores a roteadores, e então roteadores a roteadores, nós podemos escalar nossa rede infinitamente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---U5c3IkA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ratqa9n6dun5omf4knds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---U5c3IkA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ratqa9n6dun5omf4knds.png" alt="Escalonamento infinito" width="600" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta rede é muito parecida com o que chamamos de Internet, mas alguma coisa está faltando. Nós construimos tais redes para nossos próprios fins. Existem outras redes além das nossas ligadas em outros lugares: nossos amigos, vizinhos, qualquer pessoa que tenha uma rede de computadores. Mas é inviável ligarmos cabos entre nossas casas e o resto do mundo, então como nos podemos lidar com isso? Muito bem, já existem cabos ligados a sua casa, como por exemplo, cabos de eletricidade e telefone. A estrutura do telefone já conecta nossa casa com o resto do mundo. Para conectar nossa rede a rede telefônica, precisamos de um equipamento especial chamado modem. Este modem transforma a informação da nossa rede em uma informação gerenciavel pela rede telefônica e vice-versa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DTrXyPvk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0f8pzutkyn5omwwtpnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DTrXyPvk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0f8pzutkyn5omwwtpnb.png" alt="Conexão ao modem" width="600" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Então nós estamos conectados à infraestrutura telefônica. O próximo passo é enviar mensagens da nossa rede para a rede que nós desejamos alcançar. Para fazer isto, vamos precisar conectar nossa rede a um Provedor de Serviço de Internet (ISP, em inglês). Um ISP é uma companhia que gerencia alguns roteadores especiais que são conectados e pode também acessar roteadores de outros ISPs. Então a mensagem da nossa rede é transportada para a rede de redes do ISP e então para a rede de destino. A Internet é composta por toda esta infraestrutura de redes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YCoJvr9l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rvgd7s611zwx7wihpi3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YCoJvr9l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rvgd7s611zwx7wihpi3n.png" alt="Internet" width="340" height="1293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A internet e a web
&lt;/h2&gt;

&lt;p&gt;Quando navegamos na Web com nossos navegadores, normalmente utilizamos os nomes de domínios para chegar a um website. Isto significa que a Internet e a Web são a mesma coisa? Não tão simples assim. Como vimos, a Internet é uma infraestrutura técnica que permite conectar bilhões de computadores. Entre estes computadores, alguns computadores (chamados de servidores Web) podem enviar mensagens inteligíveis para navegadores Web. A Internet é a infraestrutura, enquanto a Web é um serviço construído sob esta infraestrutura. Vale a pena notar que existem diversos outros serviços que funcionam na Internet, tais como email e IRC.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
