<?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: Pedro Furlaneto</title>
    <description>The latest articles on DEV Community by Pedro Furlaneto (@1canas).</description>
    <link>https://dev.to/1canas</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%2F1023892%2F85b1ce8b-c22c-4ae3-bbf9-3c5f93d0984f.jpeg</url>
      <title>DEV Community: Pedro Furlaneto</title>
      <link>https://dev.to/1canas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/1canas"/>
    <language>en</language>
    <item>
      <title>Como funciona a Internet 🌐: em Alguns Minutos...</title>
      <dc:creator>Pedro Furlaneto</dc:creator>
      <pubDate>Tue, 14 Mar 2023 15:16:20 +0000</pubDate>
      <link>https://dev.to/1canas/como-funciona-a-internet-em-alguns-minutos-1aa5</link>
      <guid>https://dev.to/1canas/como-funciona-a-internet-em-alguns-minutos-1aa5</guid>
      <description>&lt;p&gt;Primeiramente é importante entender o que de fato é a Internet, a Internet é uma &lt;strong&gt;infraestrutura de redes&lt;/strong&gt;, composta por redes de roteadores interligadas por cabos de fibra óptica, permitindo a comunicação entre os dispositivos conectados.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Internet Vs. Web&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;É muito comum assimilar a Web com a Internet como se elas fossem a mesma coisa, mas &lt;strong&gt;não&lt;/strong&gt; são! Enquanto a Internet é a infraestrutura, a Web é um serviço construído sob ela.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Intranets e Extranets
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;🏢💻🔒 X 🌐🌍🔓&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No contexto de Internet, também existem as &lt;strong&gt;Intranets 🔒&lt;/strong&gt; que são redes privadas, geralmente utilizadas por organizações, de forma com que o conteúdo da mesma só podem ser acessadas por dispositivos autorizados, visando a segurança das informações contidas ali, e as &lt;strong&gt;Extranets 🔓&lt;/strong&gt; que também são redes privadas, porém abertas para o compartilhamento das informações com outras organizações, geralmente utilizadas para a comunicação com clientes, tendo em vista a segurança dos dados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Composição da rede 🔌
&lt;/h2&gt;

&lt;p&gt;A rede é composta por 3 elementos principais: Roteadores, Modens e ISPs.&lt;/p&gt;

&lt;p&gt;É muito comum a confusão entre roteadores e modens, os &lt;strong&gt;Roteadores 📡&lt;/strong&gt; são dispositivos que controlam a comunicação entre os dispositivos conectado nele, garatindo o envio de informação ao rementente correto, ou seja, seu papel é garantir que a informação enviada pelo dispositivo A seja entregue ao dispositivo B, e não ao dispositivo C. Eles também podem ser conectados a outros roteadores, possibilitando, ainda mais, a expansão da rede. &lt;/p&gt;

&lt;p&gt;Já os &lt;strong&gt;Modens 📶&lt;/strong&gt; são responsáveis por realizar a tradução da informação da nossa rede para uma informação gerenciável pela rede telefonica, permitindo a comunicação com a ISP, como, por exemplo a Vivo.&lt;/p&gt;

&lt;p&gt;As &lt;strong&gt;ISPs 🌐🕸️&lt;/strong&gt; são gestores de roteamento, e possuem conexão com outras ISPs, essas redes de roteadores compõem a Internet, e permitem a comunicação entre os disposivos do mundo todo.&lt;/p&gt;

&lt;p&gt;Assim resumidamente, a Internet é uma rede de redes que permite a comunicação entre os dispositivos conectados nela. Essa infraestrutura é composta pela conexão dos dispositivos em roteadores, que por sua vez são conectados a um modem, realizando a comunicação com o &lt;em&gt;ISP (Internet Servive Provider)&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Endereço de IP e DNS 💻🔢🌐
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;Endereço de &lt;em&gt;IP (Internet Protocol)&lt;/em&gt;&lt;/strong&gt; permite com que os roteadores possam identificar a origem da informação enviada e qual é o dispositivo a receber essa informação, garantindo o envio e o recebimento da mesma. Esse protocolo é composto por 4 séries de números separados por pontos e pode ser mútavel, por exemplo: 192.168.2.10. Todos os dispositivos conectados à Internet possuem um endereço de identificação IP. &lt;/p&gt;

&lt;p&gt;Para facilitar o dia a dia, é atribuído aos endereços de IP os nomes de domínio, permitindo relaciona-los a nomes convencionais, como, por exemplo, &lt;a href="//google.com"&gt;google.com&lt;/a&gt; tem o IP 142.250.190.78. Esse facilitador é o famoso &lt;strong&gt;&lt;em&gt;DNS (Domain Name System)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;servidor DNS&lt;/strong&gt; tem a função de retornar o endereço de IP baseado no nome de domínio apresentado a ele, ou seja, ao dispositivo enviar a informação pelo browser google.com, o servidor DNS vai retornar o endereço de IP relativo à informação, 142.250.190.78. Há 2 tipos básicos de servidor DNS e são eles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS Autoritativo 🔑📜: responsável por realizar a tradução do nome de domínio em endereço de IP e retornar o mesmo, de forma a ter autoridade sob o nome de domínio.&lt;/li&gt;
&lt;li&gt;DNS Recursivo 🔃📡: faz a função de um garçom, atuando como intermediário entre o dispositivo e o  DNS autoritativo, realizando a consulta no mesmo. Isso ocorre, pois nem sempre os dispositivos conectados a uma ISP, possuem conexão diretao aos servidores de DNS autoritivo, assim, recorrendo ao DNS recursivo para obter o endereço de IP requisitado ou de origem.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusão 🎉
&lt;/h2&gt;

&lt;p&gt;É notável a expansão e a importância da Internet nos dias de hoje, algo que já é corriqueiro e extremamento normal, sendo assim nós a utilizamos mas muitas das vezes não entendemos como funciona e nem o que ela é. Esse foi um resumo com algumas informações mais básicas sobre o tema. Espero que gostem!&lt;/p&gt;

&lt;p&gt;:)&lt;/p&gt;

</description>
      <category>internet</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Object-Oriented Programming: a Brief Introduction 👷</title>
      <dc:creator>Pedro Furlaneto</dc:creator>
      <pubDate>Tue, 14 Mar 2023 02:35:35 +0000</pubDate>
      <link>https://dev.to/1canas/object-oriented-programming-a-brief-introduction-39pl</link>
      <guid>https://dev.to/1canas/object-oriented-programming-a-brief-introduction-39pl</guid>
      <description>&lt;p&gt;Object-oriented programming is a famous programming paradigm that arises from an attempt to bring reality closer to the virtual world. It is based on the concept of objects, which are entities (concrete or abstract) that follow the same model, the classes.&lt;/p&gt;

&lt;p&gt;🤔 Did You Know? 🤔&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This concept was devised in the late 1960s by Alan Talk and was introduced through the Simula-68 language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Classes 🏠
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;🏠 -&amp;gt; 🧱 + 🔨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Classes are the "molds" of these entities, enabling the assignment of characteristics and actions to them, shaping them in the best possible way to your ideas and intentions. Think of it as the design of a house, in which it is described what is needed to make it what it is, or in other words, what is needed for a house to be a house.&lt;/p&gt;

&lt;p&gt;One of the components that performs this descriptive function is the &lt;strong&gt;Attribute 🧱&lt;/strong&gt;, which are the characteristics of an object, being similar properties that the entities of a class possess. Thus, following the previous analogy, a "House" class would have the following attributes:&lt;/p&gt;

&lt;p&gt;Color;&lt;br&gt;
Roof material;&lt;br&gt;
Wall material;&lt;br&gt;
Number of bedrooms;&lt;br&gt;
etc...&lt;/p&gt;

&lt;p&gt;And just like Attributes, &lt;strong&gt;Methods 🔨&lt;/strong&gt; also have the function of aggregating the singularities of a Class, being responsible for representing the functionalities and behaviors of that entity through actions, or in other words, how the entity being represented acts. A house could have a method that changes its color, for example.&lt;/p&gt;

&lt;h3&gt;
  
  
  Special methods ⭐️
&lt;/h3&gt;

&lt;p&gt;By default, classes have some special methods that optimize their use, and they are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Constructors: pass standardized values ​​to the attributes in the instance of an object.&lt;/li&gt;
&lt;li&gt;Getters: methods that search and return information from the attributes.&lt;/li&gt;
&lt;li&gt;Setters: methods that define and update the values ​​of the attributes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Component visibility
&lt;/h3&gt;

&lt;p&gt;This definition of visibility governs external access to the methods and attributes of an object. 😶‍🌫️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public: allows access to the component anywhere the object is used.&lt;/li&gt;
&lt;li&gt;Private: allows access only within the class in question.&lt;/li&gt;
&lt;li&gt;Protected: allows access only to child classes, in no other application.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Relationship between Classes 🍻
&lt;/h2&gt;

&lt;p&gt;The relationship between classes allows for the association between independent classes. This relationship indicates that the objects of one class are related to the objects of the other class.&lt;/p&gt;

&lt;p&gt;There are several types of relationships, the most common in the paradigm is &lt;strong&gt;Association 👫&lt;/strong&gt; which occurs when there is a structural relationship between classes, where one uses the methods and attributes of the other.&lt;/p&gt;

&lt;p&gt;Another way for a class to relate to another is through &lt;strong&gt;Dependency 💉&lt;/strong&gt; which occurs when in one of the classes, its change affects the other, meaning that the dependency relationship is characterized when a functionality needs another class to be executed. This dependency occurs in only one of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pillars of the Paradigm 🏛️
&lt;/h2&gt;

&lt;p&gt;To properly understand Object Oriented Programming, it is necessary to understand the 4 pillars of the paradigm.&lt;/p&gt;

&lt;p&gt;The main one is &lt;strong&gt;Abstraction 📝&lt;/strong&gt;, which consists of using only the necessary characteristics in object modeling, in order to identify which attributes of the entity will actually be useful among all possible attributes.&lt;/p&gt;

&lt;p&gt;Another pillar is &lt;strong&gt;Encapsulation 💊&lt;/strong&gt;, as the term itself suggests, encapsulation "encapsulates" the object, restricting access to some of its components. Encapsulation is applied through interfaces, used for both application security and error prevention. For example, when driving a car, the driver does not have direct access to the engine, only to the pedals.&lt;/p&gt;

&lt;p&gt;Another very important concept in the paradigm is &lt;strong&gt;Inheritance 👨‍👩‍👧&lt;/strong&gt;, which involves transferring the same attributes and methods from one class to others, allowing for a hierarchical tree of classes to be formed, starting from the highest generalization (root) to the highest specialization (leaves). This is considered the generalization relationship.&lt;/p&gt;

&lt;p&gt;Lastly but not least important, &lt;strong&gt;Polymorphism 🐱&lt;/strong&gt; is the use of the same name for an existing method, but with different functionalities, either by changing their signatures or not.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Signature ✍️&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The signature is what allows the identification of a method uniquely, considering that the same homonym is often used in the creation of new methods. What guarantees this uniqueness is the quantity of parameters and that these parameters are of the same type as the method of its homonym.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Basic Types of Polymorphism
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Overriding: when inherited methods are overlaid in different classes, using the same names and signatures.&lt;/li&gt;
&lt;li&gt;Overloading: when methods are added to the class, using the same name for these implementations, but with different signatures.&lt;/li&gt;
&lt;li&gt;Parametric: when methods with the same homonym and signature are used, changing only the return type and parameters.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion 🎉
&lt;/h2&gt;

&lt;p&gt;This was a brief conceptual presentation of the paradigm, where the main ideas were presented for its understanding. Nowadays it is possible to perceive how useful the development of this model was, which made it possible to describe in detail a real-world entity in code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>oop</category>
      <category>programming</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Programação Orientada a Objetos: uma Breve Introdução 👷</title>
      <dc:creator>Pedro Furlaneto</dc:creator>
      <pubDate>Sun, 12 Mar 2023 02:54:25 +0000</pubDate>
      <link>https://dev.to/1canas/programacao-orientada-a-objetos-uma-breve-introducao-3n7l</link>
      <guid>https://dev.to/1canas/programacao-orientada-a-objetos-uma-breve-introducao-3n7l</guid>
      <description>&lt;p&gt;A orientação a objetos é um famoso paradigma da programação que surge da tentativa de aproximar a realidade ao mundo virtual, assim ela é baseada no conceito de objetos, sendo elas entidades (concretas ou abstratas) que seguem a um mesmo modelo, as classes.&lt;/p&gt;

&lt;h4&gt;
  
  
  🤔 Você Sabia? 🤔
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;Esse conceito foi idealizado no final da década de 1960 por Alan Talk, introduzida por meio da linguagem Simula-68.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Classes 🏠
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;🏠 -&amp;gt; 🧱 + 🔨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As classes são as "fôrmas" dessas entidades, possibilitando a atribuição de características e ações a elas, modelando-as da melhor maneira possível às suas ideias e intenções. Imagine-a como o projeto de uma casa, no qual é descrito o que é necessário para faze-la ser o que ele é, ou seja, o que é preciso para uma casa ser uma casa.&lt;/p&gt;

&lt;p&gt;Um dos componentes que fazem essa função de descrição é o &lt;strong&gt;Atributo 🧱&lt;/strong&gt;, que são as características de um objeto, sendo eles propriedades semelhantes que as entidades de uma classe possuem. Sendo assim, seguindo a analogia anterior, uma classe "Casa" teria os seguintes atributos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cor;&lt;/li&gt;
&lt;li&gt;Material do telhado;&lt;/li&gt;
&lt;li&gt;Material da parede;&lt;/li&gt;
&lt;li&gt;Quantidade de quartos;&lt;/li&gt;
&lt;li&gt;etc…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E assim como os Atributos, os &lt;strong&gt;Métodos 🔨&lt;/strong&gt; também tem a função de agregar as singularides de uma Classes, sendo responsáveis por representar as funcionalidades e comportamentos daquela entidade por meio de ações, ou seja, como é que a entidade que está sendo representada age. Uma casa poderia ter um método que alteraria sua cor, por exemplo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Métodos especiais ⭐️
&lt;/h3&gt;

&lt;p&gt;Por padrão, as classes possuem alguns métodos especiais, que otimizam seu uso, e são eles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Construtores: passam valores padronizados aos atributos na instância de um objeto.&lt;/li&gt;
&lt;li&gt;Getters: métodos que buscam e retornam informações dos atributos.&lt;/li&gt;
&lt;li&gt;Setters: métodos que definem e atualizam os valores dos atributos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Visibilidade de componente
&lt;/h3&gt;

&lt;p&gt;Essa definição de visibilidade gere o acesso externo aos métodos e atributos de um objeto. 😶‍🌫️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Público: permite o acesso do componente em qualquer lugar que o objeto for utilizado.&lt;/li&gt;
&lt;li&gt;Privado: permite o acesso apenas na classe em questão.&lt;/li&gt;
&lt;li&gt;Protegido: permite o acesso somente às classes filhas, em mais nenhuma outra aplicação.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Relacionamento entre Classes 🍻
&lt;/h2&gt;

&lt;p&gt;O relacionamento entre classes permite a associação entre classes independentes. Esse relacionamento indica que os objetos de uma das classes estão relacionados aos objetos da outra classe. &lt;/p&gt;

&lt;p&gt;Há vários tipos de relacionamentos, a mais comum do paradigma é a &lt;strong&gt;Associação 👫&lt;/strong&gt; que acontece quando há uma relação estrutural entre classes, em que uma utiliza dos métodos e atributos da outra. &lt;/p&gt;

&lt;p&gt;Uma outra forma de uma classe se relacionar a outra, é por meio de &lt;strong&gt;Dependência 💉&lt;/strong&gt; que acontece quando em uma das classes, a sua mudança afeta a outra, ou seja, o relacionamento de dependência é caracterizado quando uma funcionalidade precisa de uma outra classe para ser executada. Essa dependência ocorre em apenas uma delas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pilares do Paradigma 🏛️
&lt;/h2&gt;

&lt;p&gt;Para o funcionamento adequado da Orientação a Objetos é preciso entender as 4 bases do paradigma.&lt;/p&gt;

&lt;p&gt;A principal entre elas é a &lt;strong&gt;Abstração 📝&lt;/strong&gt;, ela consiste em utilizar apenas as características necessárias na modelagem dos objetos, para identificar dentre todos os possíveis atributos da entidade, quais serão realmente úteis. &lt;/p&gt;

&lt;p&gt;Um outro pilar, é o &lt;strong&gt;Encapsulamento 💊&lt;/strong&gt;, como o próprio termo diz, o encapsulamento "encapsula" o objeto, restringindo o acesso a alguns dos componentes. O encapsulamento é aplicado por meio de interfaces, usado tanto para a segurança da aplicação quanto para a prevenção de erros. Por exemplo, ao dirigir um carro, o motorista não possui acesso direto ao motor, e sim aos pedais. &lt;/p&gt;

&lt;p&gt;Mais um conceito importantíssimo ao paradigma: &lt;strong&gt;Hierarquia 👨‍👩‍👧&lt;/strong&gt;. A ideia é transferir os mesmos atributos e métodos de uma classe às outras, assim permitindo formar uma árvore hierárquica de classes, partindo da maior generalização (raiz) até a maior especialização (folhas). Esse é considerado o relacionamento de generalização. &lt;/p&gt;

&lt;p&gt;E por último mas não menos importante, o &lt;strong&gt;Polimorfismo 🐱&lt;/strong&gt;, é a utilização do mesmo nome de um método já existente, porém com outras funcionalidades, podendo alterar a assinatura dos mesmos ou não.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Assinatura ✍️&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A assinatura é o que permite a identificação de um método de forma única, tendo em vista, que muitas vezes é utilizado o mesmo homônimo na criação de novos métodos. O que garante essa unicidade é a quantidade de parâmetros e que esses parâmetros sejam do mesmo tipo do método de seu homônimo.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Tipos Básicos de Polimorfismo
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sobreposição: quando ocorre a sobreposição dos métodos herdados em classes diferentes, utilizando dos mesmos nomes e assinaturas.&lt;/li&gt;
&lt;li&gt;Sobrecarga: quando há adição de metódos à classe, utilizando o mesmo nome para essas implementações, porém com assinaturas diferentes.&lt;/li&gt;
&lt;li&gt;Paramétrico: quando há a utilização de métodos com o mesmo homônimo e assinatura, alterando apenas o tipo do retorno e dos parâmetros.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusão 🎉
&lt;/h2&gt;

&lt;p&gt;Essa foi uma breve apresentação conceitual ao paradigma, onde foram colocadas as ideias principais para seu entendimento. Hoje em dia é possível perceber o quão útil foi o desenvolvimento desse modelo, que possibilitou com detalhes a descrição de alguma entidade do mundo real ao código. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>oop</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
