<?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: James G Silva</title>
    <description>The latest articles on DEV Community by James G Silva (@jamesgsilva).</description>
    <link>https://dev.to/jamesgsilva</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%2F387689%2Fed286287-c90d-48b0-9bed-77c3b43decf8.jpg</url>
      <title>DEV Community: James G Silva</title>
      <link>https://dev.to/jamesgsilva</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jamesgsilva"/>
    <language>en</language>
    <item>
      <title>A Liderança do Monte do Amor</title>
      <dc:creator>James G Silva</dc:creator>
      <pubDate>Wed, 03 Feb 2021 10:20:56 +0000</pubDate>
      <link>https://dev.to/jamesgsilva/a-lideranca-do-monte-do-amor-1fp6</link>
      <guid>https://dev.to/jamesgsilva/a-lideranca-do-monte-do-amor-1fp6</guid>
      <description>&lt;p&gt;Uma análise da liderança de Jesus Cristo, o maior líder de todos os tempos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Humildade
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"e tu vens a mim?" Mateus 3:13-15&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O efeito e tu vens a mim? Aparece quando o líder pede ajuda do liderado para desenvolver uma função ou tarefa que é própria do líder. Jesus não se considerava superior aos seus discípulos, ele mesmo dizia:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Quem quer ser o maior de todos ou um lider que seja o menor de todos. - Mateus 20:20-28&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quando agimos com humildade demonstramos um interesse real em interagir como iguais, esse fundamento gera confiança, e a confiança gera respeito para construirmos relações verdadeiras.&lt;/p&gt;

&lt;h2&gt;
  
  
  Escuta ativa
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"O encontraram no templo, sentado entre os mestres, ouvindo e fazendo perguntas." Lucas 2:26&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ouvir as pessoas (linguagem verbal e não verbal) e garantir a compreensão pelo feedback/perguntas para confirmar que entendemos o que foi transmitido.&lt;/p&gt;

&lt;p&gt;Perguntar demonstra interesse em compreender, ajuda o interlocutor a refletir e aprofundar-se na revelação.&lt;/p&gt;

&lt;p&gt;Entender a perspectiva dos liderados faz com que os participantes do processo de decisão se sintam ouvidos, engajados e produzam soluções melhores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conhecimento
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"De onde me conheces?" Joao 1:47-50&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Conhecer o ambiente, o liderado e como podemos contribuir (autoconhecimento) são essenciais para conexão emocional com líder.&lt;/p&gt;

&lt;p&gt;Quando um líder mostra conhecimento, é visto como uma pessoa que se interessa e se preocupa com seus liderados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Empatia
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Jesus chorou." Joao 11:32-35&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Empatia é a capacidade de compreender os sentimentos de outra pessoa, ou pelo menos as reações emocionais. É sobre sermos capazes de nos colocarmos no lugar da outra pessoa.&lt;/p&gt;

&lt;p&gt;Mesmo sabendo que seu amigo Lazaro iria ressuscitar dos mortos, Jesus chorou demonstrando empatia com a dor de Maria irmã de lázaro.&lt;/p&gt;

&lt;p&gt;Frequentemente erramos quando não damos atenção as emoções das pessoas, e focamos apenas nas ações na resolução de problemas.&lt;/p&gt;

&lt;p&gt;os liderados se sentirão compreendidos pelo apoio e conforto emocional do líder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cura
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Levanta-te e anda." Marcos 5:41-42&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Devemos estar totalmente destravados espiritual, emocional e psicologicamente para destravar nossos liderados.&lt;/p&gt;

&lt;p&gt;Devemos estar atentos (escuta ativa e empatia) aos sinais de vida (motivação, desanimo) dos liderados, motivando-os para que continuem ruma à sua realização.&lt;/p&gt;

&lt;p&gt;Temos a obrigação de desenvolver nossos liderados ao seu potencial máximo, inclusive acima de nós mesmos. Para isso devemos ajudar a destravar aquilo que os impede de desenvolver todo seu potencial.&lt;/p&gt;

&lt;p&gt;A libertação acontece pelo conhecimento, e a superação se dá pela ação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Serviço
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Levantou-se da mesa, tirou sua capa e pegou uma toalha. Depois derramou agua numa bacia e começou a lavar os pés dos seus discipulos e a enxugar com a toalha." João 13:3-5&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quem Lidera ama, e quem ama serve.&lt;/p&gt;

&lt;p&gt;Nossa natureza humana gosta de poder/cargo, esquecemos que o maior líder de todos os tempos, veio para servir, e não para ser servido.&lt;/p&gt;

&lt;p&gt;Um líder serve ao indivíduo, à equipe e à organização na totalidade, como meio para o aprendizado.&lt;/p&gt;

&lt;p&gt;Servir é um ato de humildade que deve ser aplicado uma grande quantidade de amor, para vencer o orgulho e se tornar servo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Influencia
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Eu lhes deu o exemplo para que façam como lhes fiz." Joao 13:12-15&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Influencia autentica está diretamente ligada ao serviço, um líder ensinando o que deve ser feito por meio do exemplo inspira liderados a agirem como ele.&lt;/p&gt;

&lt;p&gt;Não podemos pedir aos liderados fazerem o que não faríamos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Confiança
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"tu és a pedra" Mateus 16:18&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Verbalize sua confiança nos liderados, enxergue o melhor do que se transformarão, essa seguridade será interiorizada aumentando o senso de pertencimento e proposito.&lt;/p&gt;

&lt;p&gt;A confiança que Jesus depositou em Pedro desenvolveu no apóstolo a confiança para liderar a organização que Jesus deixou na terra (igreja).&lt;/p&gt;

&lt;p&gt;Resultados comprovados consolidam a confiança no grupo, é importante que a equipe tenha e comemore vitórias.&lt;/p&gt;

&lt;h2&gt;
  
  
  Direção
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Jesus enviou os doze com as seguintes instruções..." Mateus 10:1,5-8&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Em uma liderança baseada na direção, o liderado assume um papel ativo e realiza aquilo que deve ser feito para cumprimento da missão.&lt;/p&gt;

&lt;p&gt;Diferente da liderança por ordem baseada no poder, jesus liderou no amor e na influência, ele não deu ordens explicitas e irrevogáveis, mas ele direcionou seus liderados.&lt;/p&gt;

&lt;p&gt;Jesus tinha clareza da sua missão, ele ensinou como fazer por meio da influência, ele empoderou seus liderados pela confiança no time, e direcionou para que cumprissem o plano de ação.&lt;/p&gt;

&lt;p&gt;Quando uma direção é dada parece mais uma sugestão do que uma ordem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integração
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Vocês são um corpo, embora tenha muitos membros" I Corintios 12:12-20&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Através da integração o líder mostra para o liderado qual é o seu lugar na equipe e este deve se esforçar para se integrar e funcionar como um corpo com os outros.&lt;/p&gt;

&lt;p&gt;Existem poucas coisas mais poderosas e motivadoras do que o sentimento de pertencimento, a consciência de estar trabalhando pelo bem coletivo.&lt;/p&gt;

&lt;p&gt;Nenhuma função é mais importante que outra, todos devem se sentir iguais e não inferiores uns aos outros.&lt;/p&gt;

&lt;p&gt;Um corpo, um objetivo, uma vitória.&lt;/p&gt;

&lt;h2&gt;
  
  
  Promoção
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Busquem com dedicacao os melhores dons, passo agora a mostra-lhes um caminho ainda mais excelente" 1 Corintios 12:27-31&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A promoção é indispensável nas organizações, um líder deve contribuir para a descoberta, entendimento e materialização dessa promoção, com base nos dons e propósitos de vida de cada liderado.&lt;/p&gt;

&lt;p&gt;Um líder cria outros líderes, promove dons, descobre propósitos elevando o liderado ao seu lugar de liderança, para o cumprimento da missão com maiores responsabilidades e obrigações.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visão
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Vão e façam discipulos de todas as nações" Mateus 28:16-20&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A visão de um líder é aquilo pelo qual ele é seguido. &lt;/p&gt;

&lt;p&gt;O líder deve comunicar a visão em todas as ocasiões possíveis, colocando o liderado em constante movimento na direção apontada pelo líder e norteia tudo que deve ser feito.&lt;/p&gt;

&lt;p&gt;Visão sem comunicação é apenas uma simples fantasia.&lt;/p&gt;

</description>
      <category>leadership</category>
    </item>
    <item>
      <title>Introdução aos fundamentos de programação</title>
      <dc:creator>James G Silva</dc:creator>
      <pubDate>Tue, 06 Oct 2020 02:38:43 +0000</pubDate>
      <link>https://dev.to/jamesgsilva/fundamentos-de-programacao-4l55</link>
      <guid>https://dev.to/jamesgsilva/fundamentos-de-programacao-4l55</guid>
      <description>&lt;p&gt;A tecnologia está por todo lugar, tudo é informação, cada vez mais precisamos ler ou escrever códigos.&lt;/p&gt;

&lt;p&gt;O objetivo desse artigo é te ajudar a compreender sobre os fundamentos da lógica de programação e desenvolvimento de algoritmos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Voce pode ter uma ideia agora, escrever um programa e colocar nas mãos de milhões de pessoas (facebook). É a coisa mais próxima que existe de ter super poderes. - Drew (Criador do Dropbox)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Ferramentas
&lt;/h2&gt;

&lt;p&gt;Os exemplos de códigos estão escritos em &lt;a href="http://lite.acad.univali.br/portugol"&gt;Portugol&lt;/a&gt;, uma "linguagem de programação" simples e em português.&lt;/p&gt;

&lt;p&gt;Para executar os programas, recomendo o uso do &lt;a href="https://portugol-webstudio.cubos.io"&gt;Portugol WebStudio&lt;/a&gt;, um editor de texto gratuito direto no navegador, ou baixar para o seu computador o &lt;a href="http://lite.acad.univali.br/portugol"&gt;Portugol Studio&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Entrada e saída
&lt;/h2&gt;

&lt;p&gt;Um programa é uma sequência de instruções, escritas em uma linguagem de programação.&lt;/p&gt;

&lt;p&gt;As instruções são executadas passo a passo, em geral divididas em blocos de entrada, processamento e saída, tendo como ponto de partida a função início.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;programa {
  funcao inicio() {
    escreva("Olá mundo!")
    // próximos passos...
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima, a instrução &lt;code&gt;escreva&lt;/code&gt; mostra informação no dispositivo de saída do usuário, no caso do programa Portugol Studio na janela console.&lt;br&gt;
Após a execução do último passo, o programa é finalizado.&lt;/p&gt;
&lt;h3&gt;
  
  
  Memória
&lt;/h3&gt;

&lt;p&gt;Durante a execução de um programa, o computador armazena diversas informações em um espaço que chamamos de memória.&lt;/p&gt;

&lt;p&gt;Para acessar essas informações, seria necessário conhecer os detalhes sobre onde a informação está armazenada (endereço de memória). Isso é trabalhoso. Para facilitar a identificação, criou-se o conceito de etiqueta da informação, ou variável.&lt;/p&gt;

&lt;p&gt;Para ilustrar esse conceito, imagine um armário com várias gavetas (memória), onde cada gaveta possui uma etiqueta (variável) e um valor armazenado (informação).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gaveta&lt;/th&gt;
&lt;th&gt;Etiqueta&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;nome&lt;/td&gt;
&lt;td&gt;James&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;ano&lt;/td&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99&lt;/td&gt;
&lt;td&gt;altura&lt;/td&gt;
&lt;td&gt;1.86&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Toda informação deve ser previamente identificada, ou seja, primeiro é necessário saber qual seu tipo para depois fazer seu armazenamento adequado.&lt;/p&gt;
&lt;h3&gt;
  
  
  Tipos de dados
&lt;/h3&gt;

&lt;p&gt;Escolher o tipo de dado correto impacta na integridade da informação.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo&lt;/th&gt;
&lt;th&gt;Grupo&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;cadeia&lt;/td&gt;
&lt;td&gt;Literais&lt;/td&gt;
&lt;td&gt;Conjunto de caracteres que podem conter letras, números e símbolos especiais entre aspas duplas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;caracter&lt;/td&gt;
&lt;td&gt;Literais&lt;/td&gt;
&lt;td&gt;Apenas um carácter que podem conter letras, números e símbolos especiais entre aspas simples.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;inteiro&lt;/td&gt;
&lt;td&gt;Numéricos&lt;/td&gt;
&lt;td&gt;Positivos ou negativos não decimais.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;real&lt;/td&gt;
&lt;td&gt;Numéricos&lt;/td&gt;
&lt;td&gt;Positivos e negativos decimais, separado por ponto.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;logico&lt;/td&gt;
&lt;td&gt;Lógicos&lt;/td&gt;
&lt;td&gt;Representado por apenas dois valores verdadeiro ou falso.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Variáveis
&lt;/h3&gt;

&lt;p&gt;Variável é um espaço destinado a guardar o valor de uma informação, a etiqueta da gaveta.&lt;/p&gt;

&lt;p&gt;Ao declarar o tipo e o identificador de uma variável, um espaço na memória (gaveta) é reservado para guardar um valor do mesmo tipo declarado.&lt;/p&gt;

&lt;p&gt;No exemplo abaixo atribuímos o valor &lt;code&gt;Recife&lt;/code&gt; para a variável &lt;code&gt;cidade&lt;/code&gt; do tipo &lt;code&gt;cadeia&lt;/code&gt; através da instrução de atribuição &lt;code&gt;=&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio() {
  cadeia cidade = "Recife"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A instrução &lt;code&gt;leia&lt;/code&gt; guarda o valor da entrada do usuário em uma variável.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio() {
  escreva("Qual a sua altura? ")
  real altura
  leia(altura)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Expressões numéricas
&lt;/h3&gt;

&lt;p&gt;Podemos realizar operações matemáticas sob os tipos numéricos usando símbolos.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operador&lt;/th&gt;
&lt;th&gt;Operação&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;td&gt;Adição&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Subtração&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;Multiplicação&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;td&gt;Divisão&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%&lt;/td&gt;
&lt;td&gt;Resto&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No algoritmo abaixo descobrimos a idade do usuário através da operação de subtração sobre os valores das variáveis &lt;code&gt;anoAtual&lt;/code&gt; e &lt;code&gt;anoNascimento&lt;/code&gt; usando o operador &lt;code&gt;-&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio() {
  inteiro anoAtual = 2020
  inteiro anoNascimento
  leia(anoNascimento)
  inteiro idade = anoAtual - anoNascimento
  escreva("Sua idade é: ", idade)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Estruturas de controle
&lt;/h2&gt;

&lt;p&gt;São usadas quando existe a necessidade de verificar se uma condição é atendida para executar ou repetir determinada parte de um programa.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expressões lógicas
&lt;/h3&gt;

&lt;p&gt;Podemos expressar uma condição através da comparação de valores, o resultado é um tipo lógico, verdadeiro ou falso.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operador&lt;/th&gt;
&lt;th&gt;Operação&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;&lt;/td&gt;
&lt;td&gt;Maior que&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;&lt;/td&gt;
&lt;td&gt;Menor que&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;==&lt;/td&gt;
&lt;td&gt;Igual a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;=&lt;/td&gt;
&lt;td&gt;Maior ou igual a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;=&lt;/td&gt;
&lt;td&gt;Menor ou igual a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;&amp;gt;&lt;/td&gt;
&lt;td&gt;Diferente de&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No algorítimo abaixo verificamos se o DDD é de Pernambuco comparando se valor é igual a 81.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio () {  
  escreva("Informe seu DDD: ")
  inteiro ddd
  leia(ddd)
  escreva("O DDD é de Pernambuco? ", ddd == 81)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Estrutura de decisão
&lt;/h3&gt;

&lt;p&gt;A instrução &lt;code&gt;se&lt;/code&gt; decide quando uma parte do programa deve ou não ser executada. Esta determinação é estabelecida se uma condição for verdadeira. Caso seja falso o bloco &lt;code&gt;senao&lt;/code&gt; será executado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio () {  
  escreva("Informe sua idade: ")
  inteiro idade
  leia(idade)
  se (idade &amp;gt;= 18) {
    escreva("Você é de maior")
  } senao {
    escreva("Você é de menor")
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Operadores Lógicos
&lt;/h3&gt;

&lt;p&gt;Podemos conectar duas ou mais expressões lógicas através de operadores lógicos.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operador&lt;/th&gt;
&lt;th&gt;Operação&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ou&lt;/td&gt;
&lt;td&gt;Disjunção&lt;/td&gt;
&lt;td&gt;resulta em verdadeiro sempre que uma das expressões for verdadeira.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;e&lt;/td&gt;
&lt;td&gt;Conjunção&lt;/td&gt;
&lt;td&gt;resulta em verdadeiro somente quando ambos expressões forem verdadeiras.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;nao&lt;/td&gt;
&lt;td&gt;Negação&lt;/td&gt;
&lt;td&gt;resulta no inverso do resultado da expressão, ou seja, o valor falso torna-se verdadeiro e o verdadeiro torna-se falso.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No algorítimo verificamos se uma letra é uma vogal maiúscula ou minúscula, conectando expressões logicas com o operador &lt;code&gt;ou&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio () {  
  escreva("Digite uma letra: ")
  caracter letra
  leia(letra)
  logico eVogalMaiuscula = letra == 'A' ou letra == 'E' ou letra == 'I' ou letra == 'O' ou letra == 'U'
  logico eVogalMinuscula = letra == 'a' ou letra == 'e' ou letra == 'i' ou letra == 'o' ou letra == 'u'
  se (eVogalMaiuscula ou eVogalMinuscula) {
    escreva("A letra ", letra, " é uma vogal")
  } senao {
    escreva("A letra ", letra, " é uma consoante")
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para exemplificar o uso de operadores lógicos, a tabela abaixo apresenta duas variáveis lógicas A e B.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;A&lt;/th&gt;
&lt;th&gt;B&lt;/th&gt;
&lt;th&gt;.NAO. A&lt;/th&gt;
&lt;th&gt;.NAO. B&lt;/th&gt;
&lt;th&gt;A .OU. B&lt;/th&gt;
&lt;th&gt;A .E. B&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;falso&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;td&gt;verdadeiro&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Estrutura de repetição
&lt;/h3&gt;

&lt;p&gt;A instrução &lt;code&gt;enquanto&lt;/code&gt; é utilizada quando se deseja repetir um certo trecho de instruções por um determinado número de vezes.&lt;/p&gt;

&lt;p&gt;A execução se dá enquanto uma condição for &lt;code&gt;verdadeiro&lt;/code&gt;, e no momento que for &lt;code&gt;falso&lt;/code&gt; o processamento é desviado para fora do bloco de repetição.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio () {  
    cadeia pediuAConta = "N"
    enquanto (pediuAConta == "N") {
        // instruções...
        escreva("Pedir a conta (S)im ou (N)ão? ")
        leia(pediuAConta)
    }
    escreva("TOTAL: R$ xxx")
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Vetores
&lt;/h2&gt;

&lt;p&gt;Um agrupamento de varias informações de um mesmo tipo, que compartilham uma mesma variável, onde cada informação é identificada por um índi­ce que inicia a partir de zero e vai até o total de elementos - 1.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;elemento&lt;/th&gt;
&lt;th&gt;1º&lt;/th&gt;
&lt;th&gt;2º&lt;/th&gt;
&lt;th&gt;3º&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;indice&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;variavel&lt;/td&gt;
&lt;td&gt;notas[0]&lt;/td&gt;
&lt;td&gt;notas[1]&lt;/td&gt;
&lt;td&gt;notas[2]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;valor&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Um vetor é declarado pelo tipo de cada elemento, o nome da variável, e a quantidade máxima de valores entre colchetes.&lt;/p&gt;

&lt;p&gt;Para manipular o valor de um determinado elemento, é necessário indicar o endereço onde o elemento está armazenado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao inicio () {  
    inteiro notas[3]
    notas[0] = 7
    notas[1] = 3
    notas[2] = 5

    inteiro deslocamento = 0
    inteiro totalElementos = 3
    enquanto (deslocamento &amp;lt; totalElementos) {
        escreva(deslocamento, ") nota ", notas[deslocamento], "\n")
        deslocamento = deslocamento + 1
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Acessar um elemento com um índice fora dos limites do vetor causará em erro no programa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Funções
&lt;/h2&gt;

&lt;p&gt;São blocos reutilizáveis de códigos, usados para simplificar a criação de grandes programas, dividindo-os em partes menores ou sub-programas.&lt;/p&gt;

&lt;p&gt;Para declarar uma função (protótipo), use a palavra reservada &lt;code&gt;funcao&lt;/code&gt;, em seguida o tipo de retorno, o identificador da função, e entre parenteses uma lista de parâmetros. A função deve ter um bloco entre chaves definindo o corpo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao real calculeDelta(real a, real b, real c) {
    retorne (b * b) - (4 * a * c)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A chamada da função se faz com a referência ao identificador da função seguido dos argumentos entre parenteses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;calculeDelta(3.9, 5.7, 8.2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetros
&lt;/h3&gt;

&lt;p&gt;São um conjunto de variáveis utilizadas pela função para receber informações passadas quando ativada. É necessário especificar o tipo de cada parâmetro.&lt;/p&gt;

&lt;p&gt;Por exemplo &lt;code&gt;escreva&lt;/code&gt; é uma função que imprime a informação passada como parâmetro.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;escreva("Olá mundo!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por padrão parâmetros são cópias dos valores passados como argumentos, portanto a mudança no valor de um parâmetro dentro de uma função não deve afetar o valor do argumento passado.&lt;/p&gt;

&lt;p&gt;Quando uma função precisa alterar o valor de um argumento que existe fora da própria função, passamos como argumento a referência de onde a informação está armazenada e não o seu valor. Desta forma, as alterações também são feitas no valor da variável original.&lt;/p&gt;

&lt;p&gt;Os parâmetros e as variáveis criadas dentro uma função tem escopo local, ou seja, são visíveis/acessíveis apenas na função da qual eles pertencem, e  deixam de existir quando a função chamada termina.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retorno
&lt;/h3&gt;

&lt;p&gt;Muitas vezes é útil que a função comunique algo de volta para o código que a chamou, para isso especificamos o tipo de retorno no protótipo da função e usamos a palavra reservada &lt;code&gt;retorne&lt;/code&gt; no final do corpo da função.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao logico possuiNegativo(real n1, real n2) {
    se (n1 &amp;lt; 0.0 ou n2 &amp;lt; 0.0)
        retorne verdadeiro;
    retorne falso;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para funções sem nenhum valor de retorno, usamos um tipo de retorno vazio (void), para comunicar a ausência de valores no retorno da função.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;funcao vazio imprimirSeparador() {
    escreva("\n");
    escreva("=============================================\n");
    escreva("\n");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Agradecimentos
&lt;/h2&gt;

&lt;p&gt;Agradecer ao mestre &lt;strong&gt;André Henriques&lt;/strong&gt; por me ajudar nos primeiros passos na jornada como programador, e a &lt;strong&gt;Eduarda Moura&lt;/strong&gt;, &lt;strong&gt;Siomara Murta&lt;/strong&gt;, &lt;strong&gt;Mariane Ferreira&lt;/strong&gt;, &lt;strong&gt;Thiago Reis&lt;/strong&gt;, &lt;strong&gt;Anna Paiva&lt;/strong&gt;, &lt;strong&gt;Débora Rocha&lt;/strong&gt;, &lt;strong&gt;Pedro Jaued&lt;/strong&gt;, &lt;strong&gt;Camila Silveira&lt;/strong&gt;, &lt;strong&gt;Simone Lima&lt;/strong&gt;, &lt;strong&gt;Fernanda Lima&lt;/strong&gt;, &lt;strong&gt;Michele Costa&lt;/strong&gt;, &lt;strong&gt;Jessica Soli&lt;/strong&gt;, &lt;strong&gt;Izabela Brant&lt;/strong&gt;, &lt;strong&gt;Rodrigo Correia&lt;/strong&gt;, &lt;strong&gt;Mariana&lt;/strong&gt;, &lt;strong&gt;Carlinhos&lt;/strong&gt;, &lt;strong&gt;Jansuely Cunha&lt;/strong&gt;, &lt;strong&gt;Caio Diaz&lt;/strong&gt; por me ensinarem como as pessoas aprendem.&lt;/p&gt;

</description>
      <category>fundamentals</category>
      <category>programming</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Como criar diferentes "Perfis"​ no VS Code para alternar configurações e extensões facilmente</title>
      <dc:creator>James G Silva</dc:creator>
      <pubDate>Thu, 10 Sep 2020 20:28:38 +0000</pubDate>
      <link>https://dev.to/jamesgsilva/como-criar-diferentes-perfis-no-vs-code-para-alternar-configuracoes-e-extensoes-facilmente-2a5d</link>
      <guid>https://dev.to/jamesgsilva/como-criar-diferentes-perfis-no-vs-code-para-alternar-configuracoes-e-extensoes-facilmente-2a5d</guid>
      <description>&lt;p&gt;Adotar o &lt;a href="https://code.visualstudio.com" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; como editor de código/texto padrão para diversas tecnologias (Javascript, GO, Java) não é uma escolha fácil.&lt;/p&gt;

&lt;p&gt;Muitas vezes fazer alterações nas configurações (tema, fonte, etc), e gerenciar extensões (ativar/desativar) para cada tipo de projeto é um trabalho tedioso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opções avançadas de linha de comando
&lt;/h2&gt;

&lt;p&gt;Felizmente o VSCode pode ser iniciado pela linha de comando com &lt;a href="https://code.visualstudio.com/docs/editor/command-line#_advanced-cli-options" rel="noopener noreferrer"&gt;opções avançadas&lt;/a&gt; para carregar configurações e extensões de um diretório especifico.&lt;/p&gt;

&lt;p&gt;A primeira coisa que precisamos fazer é criar diretórios para armazenar as configurações e extensões de cada "perfil" de desenvolvimento.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; code_profiles/java/&lt;span class="o"&gt;{&lt;/span&gt;exts,data&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; code_profiles/go/&lt;span class="o"&gt;{&lt;/span&gt;exts,data&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; code_profiles/nodejs/&lt;span class="o"&gt;{&lt;/span&gt;exts,data&lt;span class="o"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Agora podemos abrir o VS Code pelo terminal com as opções &lt;code&gt;--extensions-dir&lt;/code&gt; e &lt;code&gt;--user-data-dir&lt;/code&gt; apontando para as extensões e configurações dos "perfis" criados.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

code &lt;span class="nt"&gt;--extensions-dir&lt;/span&gt; ~/code_profiles/java/exts &lt;span class="nt"&gt;--user-data-dir&lt;/span&gt; ~/code_profiles/java/data


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Vamos iniciar o "perfil" java e instalar algumas extensões (maven, spring, etc) comuns em projetos java web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FKZubrvS.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FKZubrvS.png" title="Perfil java VS Code" alt="Perfil java VS Code!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vemos 22 extensões instaladas no "perfil" java.&lt;/p&gt;

&lt;p&gt;Agora para ter certeza de que fizemos tudo certo, vamos iniciar o VS Code com o "perfil" nodejs e instalar algumas extensões (eslint, etc) comuns no universo javascript.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

code &lt;span class="nt"&gt;--extensions-dir&lt;/span&gt; ~/code_profiles/nodejs/exts &lt;span class="nt"&gt;--user-data-dir&lt;/span&gt; ~/code_profiles/nodejs/data


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FWnf3TGa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FWnf3TGa.png" title="Perfil nodejs VS Code" alt="Perfil nodejs VS Code!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora temos apenas 8 extensões instaladas no "perfil" nodejs.&lt;/p&gt;

&lt;p&gt;A configuração de cada perfil (&lt;code&gt;settings.json&lt;/code&gt;) fica dentro do subdiretório &lt;code&gt;User&lt;/code&gt; da opção &lt;code&gt;--user-data-dir&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando apelidos
&lt;/h2&gt;

&lt;p&gt;Agora que podemos alternar entre "perfis", vamos criar apelidos, atalhos no bash para não ter que sempre lembrar de todos esses comandos por completo.&lt;/p&gt;

&lt;p&gt;Adicione &lt;code&gt;alias&lt;/code&gt; ao arquivo de perfil do seu usuário (&lt;code&gt;~/.bash_profile&lt;/code&gt;, &lt;code&gt;~/.zshrc&lt;/code&gt;, &lt;code&gt;~/.profile&lt;/code&gt;, ou &lt;code&gt;~/.bashrc&lt;/code&gt;) para cada "perfil" do VS Code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;alias &lt;/span&gt;code-java&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"code --extensions-dir ~/code_profiles/java/exts --user-data-dir ~/code_profiles/java/data"&lt;/span&gt;

&lt;span class="nb"&gt;alias &lt;/span&gt;code-node&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"code --extensions-dir ~/code_profiles/nodejs/exts --user-data-dir ~/code_profiles/nodejs/data"&lt;/span&gt;

&lt;span class="nb"&gt;alias &lt;/span&gt;code-go&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"code --extensions-dir ~/code_profiles/go/exts --user-data-dir ~/code_profiles/go/data"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Agora, quando quiser usar um "perfil", tudo que precisa fazer é usar os atalhos.&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;p&gt;code-java ~/workspaces/spring-quickstart&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Extensão Profile Switcher&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Se você não quiser ter todo esse trabalho, o &lt;a href="https://www.aaron-powell.com" rel="noopener noreferrer"&gt;Aaron Powell&lt;/a&gt; criou a extensão &lt;a href="https://marketplace.visualstudio.com/items?itemName=aaronpowell.vscode-profile-switcher" rel="noopener noreferrer"&gt;Profile Switcher&lt;/a&gt; que permite salvar vários "perfis" e trocar entre eles de dentro do VSCode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referencia e crédito
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://vanslaars.io/" rel="noopener noreferrer"&gt;Andy Van Slaars&lt;/a&gt; compartilhou um repositório no github &lt;a href="https://github.com/avanslaars/code-profiles" rel="noopener noreferrer"&gt;Profile Codes&lt;/a&gt; onde aprendi como fazer isso, gratidão eterna.&lt;/p&gt;

&lt;p&gt;Foto da capa de &lt;a href="https://www.pexels.com/pt-br/@hiteshchoudhary?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;hitesh choudhary&lt;/a&gt; no &lt;a href="https://www.pexels.com/pt-br/foto/codificacao-codigo-computador-homem-879109/?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Como evitar dores de cabeça com uma boa arquitetura de software</title>
      <dc:creator>James G Silva</dc:creator>
      <pubDate>Mon, 01 Jun 2020 01:45:53 +0000</pubDate>
      <link>https://dev.to/jamesgsilva/como-evitar-dores-de-cabeca-com-uma-boa-arquitetura-de-software-366j</link>
      <guid>https://dev.to/jamesgsilva/como-evitar-dores-de-cabeca-com-uma-boa-arquitetura-de-software-366j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Você já trabalhou em sistemas que qualquer mudança, por mais trivial que fosse, se tornou uma dor de cabeça?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uma boa arquitetura de software pode te poupar futuras dores de cabeça com escolhas prematuras de tecnologias em um ambiente de constante mudança.&lt;/p&gt;

&lt;p&gt;Engenheiros de software em geral gostam dos detalhes, de sair implementando e adotando tecnologias prematuramente em nome da "produtividade", sem se darem conta que essas decisões podem tornar as coisas mais difíceis de serem alteradas.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fazer bagunça é sempre mais lento que manter tudo limpo. &lt;br&gt;
&lt;a href="https://blog.cleancoder.com"&gt;Robert C.Martin&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pensar em arquitetura de software nos faz escolher soluções mais maleáveis, adiando decisões técnicas pelo maior tempo possível.&lt;/p&gt;

&lt;p&gt;O objetivo é separar regras de negócios estáveis de detalhes técnicos voláteis, tornando as coisas fáceis de serem testadas e refatoras sem quebrar tudo. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Um projeto mais fácil de ser alterado é melhor que um projeto menos fácil de ser alterado. &lt;br&gt;
&lt;a href="https://otaviolemos.github.io"&gt;Otavio Lemos&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A interface do usuário, o banco de dados e a comunicação com outros sistemas são implementações que podem ser isoladas. Respeitar as fronteiras de cada camada de uma arquitetura ajuda a minimizar dores de cabeça futuras.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A única maneira de seguir rápido é seguir bem. &lt;br&gt;
&lt;a href="https://blog.cleancoder.com"&gt;Robert C.Martin&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;sup&gt;Foto de &lt;a href="https://www.pexels.com/pt-br/foto/aco-alto-andaime-ao-ar-livre-1117452/"&gt;Igor Starkov&lt;/a&gt; no &lt;a href="https://www.pexels.com/pt-br"&gt;Pexels&lt;/a&gt;.&lt;/sup&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
    </item>
  </channel>
</rss>
