Olá meus caros sejam muito bem-vindos ao meu curso de programação bom antes de de apresentar o curso eu gostaria de dizer que depois de ter treinado mais de 1000 alunos eu consegui identificar diferentes perfis de pessoas tem basicamente dois tipos de alunos tem alunos que querem realmente seguir carreira na área de programação querem trabalhar numa empresa como desenvolvedores enfim e seguir uma Carreira profissional na área de programação e o segundo perfil é aquela pessoa que quer aprender a programar por hobby seja para criar algum projeto pessoal para criar um aplicativo Vivo para ela mesma ou
pros amigos ou ainda para ajudar de alguma forma indireta no trabalho que ela já faz já tem um projeto na empresa alguma coisa que não tá relacionado com software mas ela acha que se ela soubesse fazer aquilo poderia complementar Então existe esses dois Perfis né um que vai mais pro lado pessoal ou então como Hobby e o outro que é o lado profissional H que enfim você poderia trabalhar numa consultoria você pode trabalhar numa empresa que faz produtos de software e enfim basicamente seguir uma carreira profissional Independente de qual seja o seu propósito com esse
curso eu espero que ele atenda as suas expectativas Não se preocupe se você tiver dúvidas se você não tiver entendendo os termos que eu Vou comentar um pouquinho a gente vai ver cada uma dessas coisas bem devagar parte por parte nas próximas aulas eu vou lhe mostrar como você pode fazer para tirar dúvidas me enviar Eu geralmente respondo bem rápido enfim vai ter todos os detalhes na próxima aula então eu te diria para não se preocupar e não desistir caso você veja esses termos diferentes termos que podem parecer difíceis mas que no final das contas
É só uma questão de escutar Algumas vezes para que soue mais natural e você vai ver que programar não é um bicho de sete cabeças bom dentro da área de programação a gente consegue dividir ah em diversos profissionais que trabalham nessa área então existem basicamente Dois caminhos que você consegue seguir o primeiro é escolher uma especialidade então por exemplo no meu caso pessoal por muito tempo eu era especialista em backend e ainda é a parte que eu mais entendo e a parte que Eu mais gosto é basicamente a criação e manutenção de códigos que rodam
no servidor E aí a gente tem outras áreas como front end a gente tem designers a gente tem profissionais de us a gente tem gerentes de projeto que não tá diretamente ligado com a parte técnica mas que também é extremamente importante e a gente tem um segundo caminho que é aquele profissional que entende de todas essas áreas juntas a verdade é que é realmente Difícil alguém conseguir Entender de tudo isso não que não existe existem eu conheço vários profissionais muito bons que realmente entendem mas são exceção Olá e seja muito bem-vindo e muito bem-vinda nessa
primeira aula sobre programação eu vou introduzir alguns conceitos que vão ser a base pro seu aprendizado eu vou falar sobre tópicos dos mais simples como o que é código O que são algorit os e o que eu preciso para programar até temas mais Práticos como por exemplo como é programar no dia a dia onde a programação pode ser aplicada e quais profissionais trabalham com ela ao final desta aula você vai ter dado mais um passo para consolidar o seu conhecimento nesta área que evolui constantemente e que transforma a nossa sociedade mas primeiramente Vamos responder a
pergunta mais básica desse curso o que é programação programação ou desenvolv ovento de software é o processo através Do qual Nós criamos um programa de computador para fazer isso nós escrevemos códigos em uma linguagem especial que podem ser entendidas por um computador essa linguagem é chamada linguagem de programação e nós vamos ver um pouco mais sobre elas daqui a pouco para entendermos melhor tudo isso eu vou explicar os termos que são frequentemente utilizados nessa área assim toda vez que eu mencioná-los nas próximas aulas você já vai saber do que Eu estou falando O que são
algoritmos você provavelmente já escutou esse termo e basicamente um algoritmo é um conjunto de instruções que dizem ao computador como realizar uma determinada tarefa geralmente é uma abstração do processo como um todo mas você sabia que os algoritmos não são usados exclusivamente na computação por exemplo uma receita de bolo nenuma receita é descrito qual problema vamos resolver ou seja o que que a gente vai Cozinhar e também quais Passos ou seja Quais as instruções são necessárias para solucionar esse problema vamos ver um exemplo bem similar Imagine que você quer programar um robô para que ele
seja capaz de cozinhar obviamente isso é um exemplo hipotético se a gente fosse realmente construir um robô nós precisaríamos de uma variedade de ferramentas que a gente não tem disponível mas para efeito didático esse exemplo funciona bem então nós temos Aqui a nossa cozinha e o nosso robô o primeiro passo aqui é pegar os ingredientes Então vamos supor que a gente instruiu o nosso robô para executar esse primeiro passo que é encontrar os alimentos conseguir os alimentos assim que o nosso robô conseguir os ingredientes nós vamos programar ele para conseguir uma frigideira então o robô
tinha uma imagem de como era uma frigideira ele Procurou no armário por exemplo e ele conseguiu Uma frigideira terceiro passo é colocar a frigideira lá no fogão o passo seguinte é lavar os ingredientes Note que nesse momento não tem muitos detalhes Esse passo simplesmente descreve lavar ingredientes quando o robô tenta executar isso ele retorna um erro porque ele vai falar nossa mas eu não tenho essa habilidade ele não sabe fazer isso ele não veio programado de fábrica isso acontece muito em programação a gente Simplesmente não tem todos os comandos que a gente precisa Então a
gente tem que desenvolver basicamente a gente quebra um problema maior em problemas menores E assim a gente faz passo a passo Então em vez de simplesmente um passo chamado lavar ingredientes a gente dividiria em Dois Passos o primeiro seria pegar os ingredientes lá na mesa e os levar até a pia e aqui o quinto passo seria explicitamente explicar pro robô pedir Pro robô abrir a torneira Então em vez de falar simplesmente lave os ingredientes a gente vai falando passo a passo vá até a mesa pegue os ingredientes vire vá até a pia coloca os ingredientes
aqui tá até faltando um passo que seria separar os alimentos descascar os alimentos e aqui tem um monte de coisa misturada nem faria sentido mas é só um exemplo didático então um robô seguiria exatamente o que você descrever e um computador não é Diferente cada passo que você colocar ele vai executar não se importando se vai dar erro se vai funcionar se vai apagar tudo no computador ele vai seguir o que você mandar então a gente tem que ter bastante cuidado e fazer de uma forma que ele entenda passo a passo aqui por exemplo se
a gente não pedir para ele fechar a torneira ele vai deixar os alimentos lá para sempre Então a gente tem que explicitamente colocar um passo Extra falando fecha a torneira como deu Para notar o nosso robô é entre aspas burrinho ele tem que receber instruções exatamente do que tem que ser feito e o computador não é diferente isso que a gente viu aqui é basicamente um algoritmo ou seja uma lista de instruções um conjunto de instruções que um computador ou no caso um robô iria seguir para realizar determinada tarefa para finalizar essa explicação sobre algoritmos
esses algoritmos que a gente vai escrever são escritos em uma Linguagem de programação e agora nós vamos Responder o que é uma linguagem de programação linguagem de programação é uma linguagem que os computadores conseguem entender na realidade eles não entendem exatamente a linguagem de programação eles entendem a linguagem de máquina que a gente vai ver daqui a pouco mas o que você precisa entender que linguagem de programação é um intermediário entre a linguagem de nós humano e a linguagem dos computadores Que é a linguagem de máquina então a linguagem de programação fica ali no meio
fazendo esse intermédio linguagem de programação é uma linguagem formal que possui um conjunto de regras sintáticas e semânticas nós podemos fazer uma analogia com idiomas por exemplo que nada mais é do Que linguagens também Imagine que você tá viajando para um país onde a língua oficial seja o inglês aí você começa a falar português com o pessoal de lá Ninguém vai Vai te entender certo com o computador é a mesma coisa ele não entende a nossa língua então precisamos falar uma língua que ele entenda ou que pelo menos eles sai interpretar E essas línguas são
justamente as linguagens de programação Ok então você deve estar se perguntando quais linguagens de programação que existem existem muitas mas muitas linguagens de programação disponíveis para você programar dê uma olhada nessa lista gigante da Wikipédia Algumas das linguagens mais comuns que temos hoje em dia são Ruby Python JavaScript elixir Swift go Rust C c+ mais Java csharp PHP BH e várias várias outras as linguagens de programação São relativamente fáceis de entender e cada vez à medida que as linguagens evoluem elas vão ficando mais claras e mais fáceis de serem entendidas Afinal o objetivo é deixar
com que a manutenção de programa e de softwares seja cada vez mais fácil e também de Despertar mais e Mais pessoas a ingressarem nesse mercado e a começarem a programar é bastante comum escutar o termo código quando estamos falando de programação o que chamamos de código nada mais é do que o que escrevemos com as linguagens de programação então aqui na tela por exemplo a gente tem um exemplo de um código cada linguagem de programação tem a sua própria sintaxe apesar de várias delas serem bem parecidas Mas não se preocupe porque nós Começaremos do zero
fazendo passo a passo agora a pouco Eu mencionei código de máquina então para finalizar código de máquina é o código que é executado pelo hardware do seu computador como eu falei agora a pouco o computador não consegue executar diretamente um código escrito a partir de uma linguagem de programação por isso ele precisa da tradução para algo que possa ser interpretado e executado felizmente nós nunca precisamos escrever Esses códigos E na maioria das vezes nós não precisamos fazer absolutamente nada eu só quis explicar para você na teoria O que vem a ser código de máquina Então
agora você sabe que programação é o processo no qual vamos juntar tudo isso que foi apresentado e colocar em prática para resolver um problema a programação faz parte não apenas de uma mas de diversas áreas como engenharia ciências e até mesmo Artes Olá agora que você já aprendeu Alguns conceitos básicos você me pergunta muito bom Lucas Ah mas na prática onde que eu consigo utilizar essas coisas que eu aprendi aí meu caro eu te respondo em todo lugar hoje graças ao modelo de sociedade que estamos vivendo temos cada vez demandado mais e mais aplicações digitais
para auxiliar o nosso dia a dia por exemplo nesse exato momento tem muita coisa rodando por baixo dos panos para que você Assista esse vídeo que você tá vendo agora é Provável que você encontre programação Envolvida com virtualmente todas as áreas que existem por exemplo você pode criar jogos você pode criar sites pode criar aplicações web que são aqueles programas que rodam dentro de um navegador como por exemplo EBS ou o Gmail Você pode criar programas pra sua empresa você pode criar programas que te ajudam com tarefas que você faz no dia a dia ou
seja dá para automatizar várias coisas que a gente costuma fazer no dia A dia através de programação você também pode obviamente criar aplicações para mobile né ou seja celular tablets na verdade você poderia até mesmo programar um sistema operacional inteiro sem exagero as áreas de atuação são as mais diversas possíveis eu vou te dar alguns exemplos de como que programação e tecnologia estão presentes em cada vez mais e mais áreas a publicação da primeira foto de um buraco negro foi obtida após um programa escrito por Vários cientistas compilar 5 petab de dados falando assim é
difíc di entender claramente O que é isso mas para se ter uma noção 5 petab é equivalente a uma música MP3 com duração de 5000 anos somente uma máquina seria capaz de analisar essa imensa quantidade de dados em tempo hábil um outro exemplo com o auxílio de matemática e estatística o software de edição de áudio autotune utilizou o conhecimento na aplicação de ondas sísmicas para identificação de Possíveis Campos de petróleo para poder afinar a voz em instrumentos esse software revolucionou o mercado musical Pois trouxe bastante economia pras gravadoras e produtores [Música] [Aplausos] musicais obviamente Esse
vídeo é só um vídeo de comédia não é exatamente assim que o al tun funciona mas antigamente era necessário gravar várias e várias vezes o mesmo trecho da música Até que Fosse o melhor desempenho do do cantor ou ainda pegando trechos de cada uma das versões gravadas como pode ser visto em algumas cenas do filme Bohemian Rhapsody com este software tornou-se possível afinar a voz e Instrumentos através do computador somente alterando as ondas sonoras gravadas esse próximo exemplo é extremamente interessante Ruanda é um país africano que tem uma rede de entrega de transfusão de sangue
por Drone uma das mais incríveis que eu Pessoalmente já vi o enfermeiro faz uma requisição por celular Facebook WhatsApp ou pela própria plataforma e na mesma hora a requisição chega nas bases onde se possui sangue um cara coloca a bolsa dentro do Drone ele decola vai até o hospital faz a entrega e volta tudo isso praticamente sozinho Ruanda é um país que sofre com altos índices de mortalidade infantil pobreza analfabetismo entre outros problemas sociais e esse exemplo des romantiza a Ideia de que a tecnologia está presente somente em países desenvolvidos sendo que na verdade a
tecnologia Pode ser ser algo bastante democrático um exemplo que a gente acompanha no dia a dia é a expansão da economia colaborativa que tem sido bem significativa nos últimos anos graças a empresas de bases tecnológicas como airbnb Uber iFood hotmart essas empresas demandam profissionais altamente qualificados e técnicos para continuar inovando e Mantendo os seus serviços operacionais para finalizar um último exemplo o YouTube como você provavelmente sabe é a maior plataforma de vídeos do mundo e está nas mãos de quase 2 bilhões de usuários ele mudou a maneira com que as pessoas assistem videoclipes se entretém
e aprendem com a crescente demanda por conteúdo em vídeo a plataforma teve que investir em pesquisa pessoal e infraestrutura para manter o crescimento além de todas essas áreas que eu citei Você também terá o conhecimento técnico para tirar uma ideia do Papel você vê algum problema que poderia ser resolvido através de tecnologia aí pode estar um novo empreendimento já parou para pensar nisso agora que você Você tem uma noção dos conceitos básicos e também sabe que você pode trabalhar em qualquer área você me pergunta o que que eu preciso fazer para começar a dar os
meus primeiros passos na criação de programas Então antes de mais nada vamos entender O que é necessário para desenvolver softwares a primeira coisa que você vai precisar é um computador tá pode ser um desktop pode ser um notebook e não precisa ser um computador super moderno super rápido a gente também vai precisar de algumas ferramentas ou seja algum s softwares nesse curso todos os softwares que a gente vai utilizar são gratuitos então você não precisa se preocupar em pagar por licença nem nada do tipo então um dos softwares que a gente vai Utilizar é um
editor de textos ou uma ide nós teremos uma aula só sobre esse assunto em breve depois a gente precisa instalar um compilador ou interpretador e nós também teremos uma aula em breve explicando as diferenças entre uma linguagem compilada e uma linguagem interpretada vamos precisar também de um navegador né também conhecido como Browser em inglês pro desenvolvimento de aplicações web pode ser o Google Chrome pode ser o Mozilla Firefox pode ser o Safari pode ser o Microsoft Ed pode ser até o Opera tá tem várias opções e a minha recomendação pessoal é o Google Chrome mas
se você já tá acostumado com algum outro não tem problema pode continuar utilizando que você já tá acostumado aí sem problema nós também precisaremos de algumas bibliotecas e frameworks dependendo do tipo de problema que a gente vai resolver tá nós vamos ver bastante sobre isso aí em módulos futuros também essas são as Ferramentas utilizadas por profissionais na área no seu dia a dia nos próximos módulos vamos entrar a fundo na configuração do ambiente de trabalho e se tiver alguma dúvida pode entrar em contato comigo e vamos trocar ideia para resolver qualquer problema de configuração há
também uma outra coisa muito importante que eu ainda não mencionei mas que eu preciso te falar o inglês tem um papel muito importante tanto no aprendizado quanto na prática De programação Que fique claro não saber o idioma não vai te impedir de programar Existe muitos conteúdos em português como por exemplo os próprios artigos e vídeos que eu publico no meu site há também várias comunidades para aprender também para se atualizar no mundo de programação no nosso idioma né em português existem grupos ah de encontros presenciais também conhecidos como mirap ah existem grupos no Facebook existem
grupos no WhatsApp no telegram existe Uma série de opções para que você esteja ah em comunicação Inclusive a gente tem a nossa própria comunidade de alunos aqui no grupo bem no comecinho do curso nós tivemos uma aula falando sobre como entrar e participar da nossa comunidade mas o ponto é que obviamente é proporcionalmente existe muito mas muito mais conteúdo inglês então é por isso que eu digo que é importante a gente saber pelo menos ler o inglês e pelo menos ter uma noção de inglês técnico Sem contar as oportunidades que o conhecimento do idioma associado
à programação pode trazer pra sua vida por exemplo você pode trabalhar para uma empresa fora do Brasil e ganhar em dólar isso é possível para quem conhece alinhar o conhecimento técnico com o idioma no final do curso tem algumas aulas bônus e uma delas é justamente falando mais sobre a importância do inglês agora eu vou falar um pouco sobre fluxo de desenvolvimento de software Para te dar uma visão geral sobre o assunto Então primeiramente a gente decide Qual o problema que a gente precisa resolver Ou seja pode ser uma demanda sua mesmo né você querendo
resolver um problema que você tenha no dia a dia você também pode estar querendo resolver um problema de um amigo que sei lá ele tem uma empresa ou ele tem algum algum problema específico E você acha que com software você Poderia ajudar Pode ser um problema da empresa que você trabalha ou ainda de um cliente etc aí você precisa entender o problema algo que ajuda bastante nessa parte é reexplicar o problema para para alguém para uma outra pessoa depois você divide o problema em problemas menores isso é extremamente importante e a gente vai ver com
com mais calma durante o decorrer do curso como é que a gente faz isso é comum a gente querer resolver tudo de uma vez mas é extremamente Importante a gente aprender a pensar em etapas separadas e bem definidas na próxima etapa a gente pensa em uma solução para cada uma dessas partes o mais comum é a gente planejar a solução de cada uma das partes e seguir adiante não se preocupando muito com todas as outras partes mas ao mesmo tempo é bom a gente ter uma noção de tudo que vai vir depois para que se
for necessário a gente já prepare o terreno para que outras coisas venham depois e funcionem De forma integrada aí baseado nessa solução que a gente pensou a gente instala as ferramentas que a gente vai precisar se for necessário depois a gente implementa a solução usando código e a gente testa para ver se aquilo tudo tá funcionando essa parte é a parte de programação em si Isso significa que a gente vai escrever vários trechos de códigos pequenos e depois a gente junta tudo isso no projeto final e repete esse procedimento várias e várias vezes é Mais
ou menos como se fosse um quebra-cabeça né a gente coloca a primeira pecinha Ou coloca as bordas E aí a gente vai preenchendo os espaços ali que estão faltando o próximo passo seria criar as interfaces paraa sua aplicação né Se for necessário fori uma aplicação Ah que tenha uma interface visual que são são as aplicações mais comuns né Ou seja você vai definir onde é que vai cada botão onde vai cada Campo Onde que os menus vão ficar se vai ter Um rodapé esse tipo de coisa né Essa parte não precisa necessariamente vir depois da
implementação do código que foi o quadradinho anterior aqui nós podemos fazer essa parte e até outras antes você não pode pensar em desenvolvimento de software como a construção de uma casa ou de um prédio são coisas completamente diferentes em um prédio por exemplo uma vez que você finalize o alicerce e construa tudo é muito muito difícil de Mudar já em software não é como se você tivesse o prédio todo levantado aí você vai lá e muda o alicerce às vezes é um pouco mais difícil pode dar um pouco de trabalho mas é possível coisa que
seria praticamente impossível numa construção civil de um prédio por exemplo aí então vem a parte da entrega né Essa parte pode significar várias coisas você pode estar entregando apenas uma parte para que o seu usuário ou o cliente Já já ir testando desde o começo que diga-se de Passagem é o ideal é uma boa prática e geralmente entregar significa realizar o deployment a gente também costuma usar o termo fazer Deploy né o jeito que a gente costuma falar no dia a dia fazer Deploy significa copiar o código que a gente escreveu para um servidor E
permitir que outros usuários acessem o software que Nós criamos para isso a gente pode precisar configurar um servidor na primeira vez no qual você vai hospedar a sua aplicação para que os Outros acessem nesse momento a gente poderia voltar e fazer a parte dois e repetir todo esse ciclo depois fazer a parte três aqui é interessante mencionar que softwares principalmente softwares bem sucedidos eles geralmente não TM fim a gente pode sempre criar novas funcionalidades sempre adicionar coisas extras atualizar bibliotecas deixar mais seguro deixar mais bonito deixar mais eficiente deixar mais rápido sempre existe existem melhorias
principalmente Em termos de novas funcionalidades ou seja fazer com que o seu o software faça mais coisas entregue mais valor consiga entregar uma solução melhor do que antes ou seja basicamente a gente pode ficar interando isso aqui para sempre sempre melhorando a palavra chave aqui é interações você vai repetir esse processo e em cada vez que você repetir você terá chance de fazer algo melhor chamamos isso de melhoria contínua por exemplo você decidiu que vai implementar Uma nova funcionalidade aí você estuda Qual que é a melhor maneira de fazer aí você desenvolve a solução vê
se tudo funciona inclusive se o app continua fazendo o que ele já fazia antes da sua alteração inclusive existem formas de automatizar esses testes e aí você coloca as alterações no ar e pede pros seus usuários clientes etc para eles testarem e aí repete tudo de novo fazendo melhor cada vez tudo isso que eu descrevi aqui agora é uma visão macro Uma visão bem genérica na prática a gente geralmente utiliza metodologias mais eficientes chamadas metodologias ágeis Existem várias metodologias ágeis como por exemplo scrum o XP o Lin e várias outras mas as duas metodologias que
são definitivamente utilizadas pela maioria das das equipes são o scrum e o XP eu resumi os passos necessários para programarmos Claro que cada pessoa acaba criando hábitos diferentes para resolver problemas e empresas geralmente T Procedimentos ligeiramente diferentes umas das outras mas generalizando o fluxo não é muito diferente do que a gente viu aqui nessa aula eu vou falar um pouco sobre os profissionais que trabalham na área na área de tecnologia na área de programação na nos departamentos de desenvolvimento de software das empresas Ou mesmo ah profissionais que trabalham como freelancer trabalham ah de alguma forma
direta ou indiretamente relacionada com A área de programação bom os nomes mais comuns das profissões são programadores e desenvolvedores né quem quem programa ou desenvolve ou cria ou enfim tem vários termos que você pode usar mas se alguma forma você desenvolve software né você escreve código transforma aquela lógica de programação aquela linguagem de programação em uma coisa que é utilizável pelo usuário ou pelo seu cliente se alguém tiver usando o seu software ou mesmo se o seu software Tiver rodando de forma automatizada você é um programador tá ou desenvolvedor um outro título que a gente
pode utilizar também é engenheiro de software engenheiro de software geralmente é utiliz num contexto onde esse profissional ou essa profissional estão mais ligados ao gerenciamento de tarefas nesse momento você pode começar a ficar confuso porque a gente tem esses vários termos programador desenvolvedor engenheiro de software analista de Sistemas então eu vou tentar explicar de uma forma bastante simples Qual que é a diferença entre eles e a forma simples é que não tem como a gente definir 100% o que que cada um faz calma aí que eu explico cada empresa ou mesmo cada Profissional ou até
até mesmo em livros você vai encontrar definições diferentes para esses termos aqui tá a gente pode fazer uma coisa um pouco genérica assim para explicar mas eu queria que vocês guardassem eh que não isso não é uma Verdade absoluta Isso significa que duas coisas uma que empresas vão ter termos diferentes para coisas de para para tarefas que essas pessoas executam de formas diferentes e segundo que essas profissões estão sempre evoluindo Então o que um programador faz hoje não significa que ele vai fazer Amã né o engenheiro de software por exemplo ele já teve um papel
ligeiramente diferente há 20 anos atrás inclusive Talvez esse termo nem fosse tão comum 20 anos atrás Então Eh o fato é não dá pra gente definir 100% qual que é a diferença Tá mas eu vou tentar de uma forma bem genérica explicar eh esses quatro esses quatro profissionais aqui tá então programadores e desenvolvedores como eu já falei são aquelas pessoas que escrevem software elas são quem botam a mão na massa escrevem os códigos colocam em produção e enfim não necessariamente coloco em produção isso aí pode ser um outro profissional Tá mas é geralmente a Pessoa
tem uma noção básica de como colocar esse software para em produção né para outras pessoas usarem então esses são os programadores e os desenvolvedores uma outra coisa que esses profissionais também fazem é dar manutenção A softwares é muito comum muito comum mesmo a gente tem empresas com softwares tanto softwares legados que já existem há muitos anos que precisam ser constantemente atualizados como também Hã softwares que eles acabaram de criar a gente precisa sempre est evoluindo né criando novas funcionalidades testando mais arrumando bugs enfim dando manutenção Tá certo então programadores e desenvolvedores sempre estão ligados em
criação e manutenção de software Engenheiros de software também fazem isso muitas vezes muitas empresas utilizam esse nome só como um nome um pouco mais bonito né para para dar um destaque maior o cara é engenheiro de Software É de fato um nome nome mais bonito eu gosto bastante desse termo mas na prática eles fazem coisas muito parecidas Tem empresas nas quais Engenheiros de softwares tem um papel um pouco mais gerencial né Ele trabalha com no modelo ah de metodologia ágil então ele tem um pouco mais de autonomia para gerenciar as tarefas ele faz comunicação com
o gerente de projetos enfim mas isso Varia muito de empresa para empresa tem empresa que não tem nada disso por isso Que eu falei para você manter sua cabeça aberta e não se apegar muito a esses nomes já um analista de sistemas Esse sim é um pouco mais fácil de diferenciar Apesar que de novo dependendo da empresa você pode sim ter analistas de sistemas fazendo coisas que não são exatamente ligados à análise de sistemas Inclusive tem analista que é analista desenvolvedor então a pessoa é tanto analista quanto desenvolvedora eu acho que todo desenvolvedor é um
pouco Analista mas não necessariamente todo analista é um pouco desenvolvedor eu conheço pessoas que são analistas desenvolvedores mas a maioria dos profissionais que eu já tive a oportunidade de trabalhar Eles não sabiam programar ou sabiam muito pouco de programação porque não é o foco deles eles não sentam e escrevem código assim como programadores fazem o que eles fazem é uma coisa um pouco mais ligada a a lógica de negócio ou seja ao Business Da empresa e isso confunde um pouco com outro profissional que eu nem coloquei na lista aqui que é o que é o
business analist tá ele é parecido com system analytic que é o nome em inglês para analista de sistema mas ele é um analista de negócios tá então analista de sistemas confunde um pouco ele fica meio em meio termo ali entre um programador e eh um analista de negócios tá E ele ele também tem muito contato com o cliente Ele tem muito contato com A diretoria da empresa eh esse profissional ele vai fazer o intermediário entre a parte técnica e a parte de negócios então assim ele ajuda a levantar o que que vai ser necessário para
fazer qual funcionalidade ele ajuda a priorizar o que que é mais importante ele tem esse esse papel de defender empresa né no sentido de qual o caminho que a gente vai seguir será que é melhor a gente fazer a feature a feature b ou melhor a gente corrigir aquele bug Então Esse profissional não que ele seja o chefe não que ele gerencie mas ele tem esse profissional de defender os interesses da empresa geralmente esse profissional tem bastante habilidade bastante facilidade para criar diagramas criar documentações que fiquem de uma certa forma fácil para quem é da
parte técnica entender e também para quem é da parte de negócios conseguir entender então você desenha um diagrama tanto um programador quanto um diretor um gerente Alguém ah da da Diretoria da empresa alguém mais ah da parte de negócios consigam entender tá então ele consegue criar essa documentação comum para os dois cenários tem muitas empresas que não t analistas de sistema justamente porque programadores desenvolveram T desenvolvido essa habilidade fazer esse papel também tá geralmente esses cargos são ou empresas um pouco mais antigas ou empresas maior Então não é que eles estão sendo estão Caindo em
desuso mas ah nem sempre você encontra eles na empresa não que não seja necessário mas sim que outros profissionais assumem as tarefas que esses estariam fazendo vou falar um pouquinho sobre outros profissionais que também trabalham ã nessa área tá então a gente tem um designer designers são Eu acho que eu não preciso nem explicar designer é uma profissão muito comum eh esse profissional não precisa necessariamente Estar ligado com algo de tec com algo relacionado à tecnologia né a gente tem designers ah em outras áreas designers de de interiores designers de não sei mais do que
que tem designer Mas tem bastante áreas onde eles podem atuar né designers de banners impressos de revistas Ah para tudo existe design né basicamente eh São aquelas pessoas com com habilidades para deixar coisas bonitas apresentáveis fazer as cores combinarem fazer o título usar uma fonte Apropriada entender a cultura do público que vai receber aquele design final e ver se faz sentido Ah enfim tudo isso ligado à parte visual ou mesmo a parte de de feeling né O que que a pessoa sente ao ver aquela imagem ou áudio ou filme Esse é o profissional de design
Tá certo e a gente tem um outro profissional muito parecido mas que não é o mesmo não não dá para confundir o ideal é que toda empresa tenha um profissional dedicado a essa Outra área que é a área de o x significa user Experience Ou seja a experiência do usuário e isso significa o seguinte quando a gente tá usando ou um aplicativo no celular ou uma aplicação no computador ou mesmo usando a navegação do do controle remoto da TV pra gente abrir os menus e achar alguma coisa que a gente queira encontrar tudo aquilo lá
eh se resume ao x ou seja experiência do usuário ao usar aquele software tá então se você precisa por Exemplo colocar legenda num no filme Você tá assistindo TV Você quer colocar legenda se você tiver que apertar sei lá 10 vezes 10 botões diferentes para chegar naquele menu você não tá tendo uma experiência tão legal é isso que a gente chama de ux um exemplo mais prático para web por exemplo né a gente tem um site onde eu tenho lá uma tela de login e senha tá vamos supor que eu já tenho um cadastro se
eu por por algum motivo esquecer a minha senha vamos Supor que eu não tenha um gerenciamento de senhas ou eu esqueci mesmo eu o que que eu geralmente gente pensa bom deve ter um link ali embaixo chamado esqueci minha senha eu clico nesse link e ele me mostra uma outra página onde eu vou poder preencher meu e-mail e um um link especial vai ser mandado pro meu e-mail para eu poder reiniciar minha senha resetar minha senha tá certo esse ser o esperado se eu entro num site e não acontece esse padrão não acontece esse Fluxo
eu vou achar esse site ruim né E essa é uma justamente uma experiência de usuário ruim é um X ruim tá então esse profissional ele junta esse padrão de mercado ou seja o padrão do que é esperado das aplicações junto com um pouquinho de design não que ele faça o design Mas ele tem que fazer por exemplo o botão aparecer no lugar certo então mistura um pouco com as tarefas que um designer faria se o designer coloca um botão de esqueci minha senha lá em cima Ele vai falar pera aí eu acho que não tá
legal isso aqui melhor a gente colocar embaixo primeiro a gente faz a pessoa tentar se logar com login senha e lá embaixo a gente coloca esse link Então esse é o papel dele E aí a gente tem os profissionais de Q Q significa Quality assurance basicamente são profissionais que testam a nossa aplicação né Eles garantem a qualidade das nossas aplicações da dos nossos dos nossos sites esses profissionais T uma Série de uma bateria de testes que eles sabem fazer para aplicações E à medida que a aplicação vai evoluindo eles vão atualizando esses testes para garantir
que a aplicação tá funcionando tanto as novas funcionalidad idades ou novas correções de bugs quanto as coisas que já funcionavam anteriormente não adianta você adicionar uma coisa nova no seu projeto e quebrar uma coisa antiga tá então esses profissionais são responsáveis por isso nem toda empresa Tem profissionais de q tem Tem empresas acho que as as maiores sempre tem profissionais de q porém Tem empresas grandes que preferem não ter justamente para colocar esse essa responsabilidade em cima de todo mundo desde o desenvolvedor pro designer pro profissional de x pro gerente todo mundo é meio que
responsável porque na prática isso que acontece mesmo mesmo quando existem profissionais de q tá falando um pouco das Ferramentas que eles usam eles Podem usar tanto ferramentas de testes automatizadas criados por uma empresa ou por um terceiro ou ainda eles podem desenvolver internamente uma ferramenta de testes para ajudar eles a testarem ou ainda eles podem simplesmente pegar o celular e ou mesmo um notebook deles e rodar a aplicação ali antes de mandar paraa produção Claro Claro antes de mandar para usuário final e eles testarem para garantir que tá tudo funcionando tá então são várias formas
Que eles podem fazer esses testes isso aí varia de empresa para empresa mas é bem comum a gente ter testes automatizados tanto do lado do desenvolvedor E aí a responsabilidade do desenvolvedor né do programador como também da equipe de q mais um profissional da área é o gerente de projetos né gerência de projetos é uma área muito comum porque existem em outras áreas da da de outras indústrias enfim não só na indústria de de Tecnologia então é muito comum acho que eu não preciso nem explicar muito né é a pessoa responsável pelo projeto né geralmente
é uma ponte entre a diretoria ou a chefia da empresa e a cada um dos dos funcionários tá dos desenvolvedores enfim é a pessoa que vai gerenciar o projeto Uma Outra profissão que é um pouco ligada mas só um pouco né é diferente no final das contas é o pio ou um product owner esse profissional surgiu junto com as metodologias ágeis Eh esse profissional ele é responsável pelo produto em si então ele não é um um gerente de projeto gerente de projeto pode até mesmo eh ter um pouco de responsabilidade para gerenciar as pessoas Então
se alguém tá doente vai ser o gerente de projeto que vai ser avisado se uma pessoa tá precisando de alguma coisa ou ou é aquela pessoa que é responsável por fazer a pessoa eh crescer se desenvolver evoluir o po não o po ele é focado 100% no produto e Por produto pode podemos entender um site uma aplicação um aplicativo mobile Tá certo pode ser qualquer uma dessas coisas tá ou até mesmo uma API um software que roda só no servidor pode ser uma série de coisas basicamente é o software que você tá desenvolvendo isso a
gente chama de produto e aí product owner que significa dono do produto em inglês é justamente isso é a pessoa responsável pelo produto em si é um é um profissional que vai ficar no centro se Você desenhar um diagrama ele vai estar no centro ligado com todos os outros profissionais ele conversa com os clientes ele conversa com a diretoria ele conversa com o pessoal de marketing ele conversa com designers com desenvolvedores ele conversa com todo mundo então por quê Porque ele ele Ele defende os interesses da empresa para aquele produto tá Ah enquanto que o
analista e o analista de sistema tem uma visão um pouco mais técnica o po ele tem Uma visão um pouco mais de Business tá eu sei que todas essas áreas podem parecer que se confundem um pouco e de fato se confundem né Às vezes uma pessoa faz o papel da outra mas à medida que você vai trabalhando nas empresas acho que isso vai começando a ficar mais claro porque você vai ver que cada empresa tem essas regrinhas ligeiramente diferentes umas das outras tá o poo eh como eu falei antes é bem ligado nessa nessa pegada
de metodologias ágeis então Empresas mais antigas não tinham eh algumas ainda não t não usam metodologias ágeis Apesar de que deveriam mas esse é o papel do po mais uma profissão que eu vou falar aqui o devops devops é o profissional responsável por fazer tudo funcionar nos servidores então ele tem uma pegada de desenvolvedor então ele tem entende um pouco da parte ah de programação mas ele entende muito mais de servidores então ele entende de Linux ele entende de Redes ele entende de alta disponibilidade Como que você escala uma aplicação né fazer com que mais
usuários consigam acessar entende de performance entende de segurança entende de backup tá é um profissional que tem que dominar uma série de de de coisas para fazer com que a gente consiga colocar a nossa aplicação no ar rodando de forma estável de forma garantida que nada vai dar problema se uma aplicação cair ela tem que subir automaticamente De novo enfim é esse é o papel do devops para finalizar vou falar um pouquinho sobre os profissionais de segurança né profissionais de segurança é quem tem o a a responsabilidade de garantir que você não tá colocando no
ar uma aplicação ou um site ou um aplicativo mobile que vai ter Fas de segurança obviamente o nome mesmo já já já diz muito do que que esse profissional faz então eles tem uma série de técnicas Tanto ah usando ferramentas automatizadas que testam softwares para garantir que tá tudo funcionando como Ah eu diria até que principalmente como técnicas que eles sabem que eles desenvolveram são habilidades que não tem ferramenta são são eh coisas que ele que a pessoa aprendeu e enfim que ela ela domina aquela área ela sabe se ela olhar um código se ela
olhar uma aplicação ela vai olhar falar isso aqui pode dar problema Por isso por isso por Aquilo então a pessoa sabe Ah deveria pelo menos saber que ah o que que pode dar problema o que que não pode e ela ajuda a fazer esse filtro ajuda a manter os nossos aplicativos Seguros Então esse foi um resumo dos profissionais que trabalham na área a gente vai se focar muito em programação nesse curso mas você vai notar que em todas as aulas vai ter uma pitadinha de cada uma dessas profissões Então a gente vai falar um pouquinho
de design aqui um Pouquinho um pouquinho de segurança ali devops e x análise de sistema a gente vai falar um pouquinho sobre todos esses em pequenas pitadas apesar do curso ser muito focado em programação e na sua carreira né ajudar você a chegar no seu objetivo seja ele conseguir um emprego na área ou ainda evoluir a sua carreira se você já trabalhar com isso ou empreender enfim Qualquer que seja o seu objetivo Olá nessa aula a gente vai falar um pouquinho sobre mindset de Programadores que que significa mindset mindset é uma palavra do inglês que
significa mentalidade acho que tem algumas traduções ligeiramente diferentes mas eu gosto de traduzir ela como mentalidade eu resolvi gravar essa aula ah depois de algum Na verdade essa aula não existia no curso original depois de algumas situações onde eu fui notando alguns padrões principalmente para quem tá começando a trabalhar com programação eu notei que tem algumas Coisas alguma mentalidade que a gente precisa mudar quando a gente começa a programar tá isso isso aqui pode te ajudar muito e eu acho que de todas essas aulas iniciais essa aqui é a mais importante é muito muito comum
você ver pessoas que estão aprendendo a programar e eu tenho a chance de ver isso com os alunos pessoas que falam assim eu nunca vou conseguir fazer isso principalmente quando elas estão vendo outros programadores fazendo aquilo uma outra Coisa que é muito comum escutar também é eu nunca teria pensado nessa solução quando você coloca um problema para um profissional para um programador que já tem experiência e ele é Analisa aquele aquela aquele problema e fala assim ah dá para resolver de tal maneira usando tecnologia x ou usando abordagem Y ou usando alguma coisa enfim ele
já te mostra a solução dependendo até da velocidade que ele te dá essa resposta quem tá começando pensa assim eu nunca Teria pensado dessa forma né e a pessoa só teve um segundo para responder isso é muito comum e eu te digo o seguinte isso vai mudar você vai começar a ter mais um mindset de programador você vai aprender essas habilidades você vai começar a notar padrões então quando acontecer um problema x você sabe que para resolver o problema x você precisa do da solução Y é muito comum isso então a primeira coisa que eu
gostaria de pedir para você não fique apavorado Quando você vê Alguém mais experiente com uma solução muito muito boa que você achou que você nunca ia pensar essa frase que tá aqui na tela simplesmente não é verdade cada programador estuda e aprende em velocidades diferentes então eu não posso te dizer que daqui a um mês você vai estar com todo esse mindset provavelmente não porque isso é uma coisa que você você desenvolve ao longo dos anos mas o que eu posso te garantir é que se você continuar se aplicando e Trabalhando na área você vai
começar a desenvolver isso é quase por osmose você não tem que se esforçar muito para acontecer isso tá essas soluções Claro você tem que estudar tem que se dedicar tem que ter disciplina mas isso começa a acontecer quase que magicamente chega o momento que você começa a sacar Nossa olha esse padrão tá se repetindo talvez de para usar a mesma solução porque é um problema muito parecido os problemas nunca vão ser os mesmos mas eles são Muito parecidos durante várias vezes durante várias situações da nossa carreira quem consegue ser mais produtivo e quem consegue se
virar só mais sozinho é provavelmente aqueles que persistiram mais não são aqueles que nasceram para isso não existe tal coisa o que existe é as pessoas que persistiram mais tem um ditado eu acho que é japonês esse ditado se não for me desculpem eu nem nem pesquisei na verdade mas eu já escutei que ele era Japonês o ditado fala o seguinte chega uma hora que a disciplina vence o talento Eu acho essa frase incrível porque se você persiste E você tem horário para estudar se você continua se aplicando se você faz Exercício se você cria
programas se você brinca com projetos open source se você tenta emprego Independente de qual seja o seu objetivo se você continua tentando continua sendo persistente continua tendo disciplina uma hora você vence Aquela pessoa que nasceu para aquilo tem gente que realmente tem muita facilidade tá mas se você tiver disciplina você chega lá eu não diria nem vencer né porque se ditado é vencer mas na verdade no mundo de programação não tem vencer os dois podem conseguir tanto quem tem muita facilidade quem nasceu com talento que eu diria que a minoria das pessoas quanto quem tem
disciplina tá certo que é os casos que eu mais vejo que é o meu caso por exemplo eu tive que ter muita Disciplina muita persistência para conseguir e eu sei que isso parece papo de autoajuda mas não é é fato a gente precisa ter disciplina a gente precisa se dedicar agora que você começou o curso você está dando os primeiros passos em uma jornada de constante aprendizado a nossa área é bastante dinâmica e o mercado muda para se adaptar a novas tendências com o tempo você vai adquirir novos conhecimentos e amadurecer Profissionalmente ter sempre em
mente que isso é um processo incremental é essencial para sua carreira pois te desafia a crescer mais e mais talvez a lição mais importante para saber para conseguir sair do lugar seja essa aqui né saber quebrar saber Dividir problemas em problemas menores Essa é uma das lições mais importantes dessa aula então vou dar um exemplo prático aqui para facilitar que você visualize Isso vamos imaginar que a gente vai criar uma aplicação dessas de pesquisa de preço Então a gente tem os sites de de compras de e-commerce né como americanas.com a gente tem o submarino e
mais outros 500 sites de e-commerces Nem sempre é uma coisa muito amigável pro usuário ficar pesquisando o preço em cada um deles então a gente tem essas ferramentas estilo Buscapé que a gente consegue Pesquisar preço vamos supor que a gente queira criar um concorrente do Buscapé né a gente vai criar uma aplicação do zero ali para fazer essa tarefa E aí a gente precisa de uma série de coisas a gente precisa descobrir como que a gente faz para pesquisar o preço em cada um dos Sites não dá pra gente contratar um funcionário pedir para ele
ficar atualizando o tempo todo isso não é viável provavelmente ente é impossível porque os preços estão sempre atualizando a gente precisa automatizar isso então nosso software vai precisar Ou acessar um api ou ainda fazer um Crawling que é uma técnica de abrir o site né não não manualmente mas o software Abre o site coleta aquela informação e guarda num banco de dados ou ainda a gente precisaria pensar em alguma outra solução tá o fato é se a gente enxerga esse esse aplicativo de uma forma muito macro é difícil saber por onde começar então a gente
precisa começar a quebrar ele em problemas menores assim como a gente faria do lado De Business né de Business você pensa assim ah eu preciso cobrar para esse software Qual que é o modelo de negócios como que eu vou cobrar Como que ah o usuário entra em contato se ele tiver dúvidas no software a mesma coisa tá a gente precisa dividir ele na em algumas partes então quanto mais você conseguir isolar uma parte para ser implementada no seu software mais fácil é você seguir adiante se você tem uma parte muito macro imagina uma mexerica você
tem a Mixirica você precisa desenhar aquela mexirica no seu software é muito difícil porque é é é uma é uma coisa muito complexa você precisa imaginar os gomos você precisa separar enxergar principalmente enxergar os gomos desenhar os gomos separados para depois se informar a mixirica lógico enfim é só uma metáfora só uma analogia mas a ideia é essa mesma tá A ideia é dividir um problema em problemas menores então voltando pro exemplo lá do do software De pesquisa de preços a gente teria um um uma parte que a gente precisaria pensar como que a gente
ia pesquisar o preço a gente precisaria pensar se a gente ia usar um site ou um aplicativo mobile ou uma extensão pro navegador né que só fica instalado com aquele iconeinstagram menor isola aquele problema e ataca só ele primeiro Pode parecer muito simples isso mas não é Quando você começar a programar ou se você já programa você provavelmente já Viu isso a gente tenta fazer tudo de uma vez enxergar um problemão macro Ou seja a mexirica inteira tenta enxergar os gominhos que isso vai ficar muito mais fácil uma outra coisa muito importante Muita gente vem
me perguntar qual que é a linguagem de programação que eles deveriam aprender Qual que é a o set de ferramentas né o conjunto de ferramentas que eles deveriam saber e enfim querem estudar tudo querem às vezes não sabem no que se focar e enfim isso não é o Ideal tá o ideal eu eu gosto muito dessa abordagem de você saber muito bem uma coisa então seja uma linguagem de programação um Framework alguma coisa saber muito bem dominar aquela ferramenta e ter um conhecimento um pouco mais raso de todas as outras coisas né Ah e eu
gosto muito dessa analogia da caixinha de conhecimento que que significa caixinha de conhecimento imagina que dentro do seu cé Você tem uma caixinha Ela tá com uma etiqueta lá Conhecimento quando você aprende uma linguagem de programação você pega aquela naela informação e coloca dentro da caixinha tá você aprendeu outra linguagem você pega aquela linguagem e colocou Só que cada linguagem é diferente tantos tanto em termos de sintaxe como em termos de de formas que você vai usar a linguagem e também o propósito daquela linguagem tem linguagem que tem um propósito específico um exemplo é muito
raro a Gente ver a linguagem sendo utilizada em aplicações web ela não foi feita para isso dá para usar dá mas não é o ideal Então você se você aprendeu aquela linguagem não tem problema você pega e coloca na sua caixinha você vai aprendendo frameworks vai aprendendo técnicas metodologias se você lê um artigo num blog falando alguma coisa interessante ótimo você vai colocando dentro da sua caixinha de conhecimento na sua cabeça No dia que você tiver um problema Ou seja no dia que você tiver desenvolvendo uma aplicação por exemplo você pensa Qual que é o
problema que eu tenho e qual que é a solução ideal e às vezes o ideal não significa a melhor em termos técnicos significa a mais apropriada para aquela ocasião tem ocasiões por exemplo que você quer uma uma uma coisa muito rápida e temporária você vai subir uma aplicação por uma semana por exemplo uma promoção de black friday você Precisa de uma aplicação específica um site específico alguma coisa assim talvez você não precisa escrever o melhor código do mundo bom não que eu esteja recomendando que você não escreva um código decente não é isso mas assim
você não precisa usar todas as melhores técnicas porque essa aplicação vai sair do ar depois de uma semana talvez não tenha sido um exemplo tão bom Tem até uma uma analogia melhor para fazer tem e o cara o cara que criou o PayPal acho Que foram dois caras na verdade um desses caras tinha uma teoria ele tem até um podcast chamado Masters of scale ele tem uma teoria uma tese de que você sempre vai ter foguinhos queimando então eh acho que Ele publicou no site dele no blog dele uma uma área um um jardim onde
tava pegando vários foguinhos e tinha uma área muito grande pegando fogo e muitas vezes o que a gente faz é tentar apagar os foguinhos sendo que tem hora que a gente precisa deixar o fogo Queimar e apagar o fogo grande Tá então isso é é é foco foco no que precisa e ele conta na época que ele criou o PayPal que muitas vezes ele deixava de responder e-mail de cliente que não conseguia usar a plataforma porque ele tava fazendo a próxima versão ou não lembro o que que ele tava fazendo na época mas ele tava
se focando numa coisa mais importante e ele fala isso sem sem problema algum eu deixava de responder e- meilos de clientes porque eu tava Focado em outra coisa e isso é é um Insight muito interessante é é um é uma sacada que pode mudar o jogo para você às vezes a gente quer resolver todos os problemas apagar todos os foguinhos sendo que na verdade faz mais sentido a gente apagar o fogão né no soft a mesma coisa enfim eu abri um parêntese gigantesco aqui para explicar o que que seria uma solução ideal Tá mas tirando
isso ah independentemente de tempo de prazo Que a gente tenha a gente sempre vai ter soluções técnicas melhores para determinado problema então se você quer criar um jogo tem algumas linguagens de programação mais apropriadas para você criar um jogo c+ mais C Sharp Swift Ah enfim são mais apropriadas do que PHP ou Ruby por exemplo no caso de criar um jogo para aplicações web Swift funciona assim como Ruby também funciona para jogo mas Ruby é muito mais produtivo Então você vai criando essas essas Ligações né essa linguagem é boa para esse tipo de problema para
resumir caixinha de conhecimento tudo que você aprende você vai colocando lá dentro o que você acabar não usando você vai esquecer então ela sai automaticamente da sua caixinha de conhecimento quando você aprender uma coisa nova ela entra lá e aí você vai usando para resolver determinados problemas cada problema pode ser usado um conjunto de soluções diferentes Então essa é analogia da Caixinha de conheci meu conselho final é você não se preocupar muito achando que você nunca vai chegar a pensar com um programador Tá a medida do curso aqui você vai notar que tem coisas que
eu faço que talvez não sejam tão tão triviais você talvez não teria pensado naquilo de primeira mas fica tranquilo que fazendo exercícios fazendo aplicações vai chegar um momento que tudo começa a ficar mais mais automático Mas a gente não tem que Pensar tanto e sol já aparece automaticamente pra gente isso eu posso te garantir nessa aula aqui a gente vai falar um pouco sobre paradigmas de programação pra gente entender o que são paradigmas de programação a forma mais simples de entender isso é uma forma de classificar as linguagens de programação então uma linguagem pode ter
uma ou mais um ou mais paradigmas tá então tem linguagens que são focados em um paradigma só assim como tem linguagens Que tem vários paradigmas que é o caso da linguagem lingagem Ruby por exemplo tem vários paradigmas como por exemplo orientação a objetos e funcional Isso serve para que a gente coloque cada linguagem numa categoria específica em vez de paradigmas a gente poderia simplesmente chamar de categorias se você quiser deixar mais simples então por exemplo a gente tem o paradigma de orientação a objetos que tem um propósito específico e aquela linguagem Tem que respeitar aquele
propósito aquela aquelas regras para que ela seja classificada como paradigma de orientação a objetos tá a mesma coisa para outros então se ela tem ah características de linguagem funcional ela precisa respeitar né ela tá respeitando as características de uma linguagem que tem um paradigma funcional então eu vou listar aqui os paradigmas mais comuns Começando aqui com o paradigma procedural que enfim é é o Mais antigo ele H tem uma uma uma forma de você escrever o código muito imperativa basicamente você fala computador eu quero que você faça isso depois isso depois isso e é uma
lista de códigos é uma lista de instruções que o computador vai vai seguir tá Lógico que tem um um pouco de variação disso aí mas é um um paradigma que não se utiliza mais tanto quanto antigamente justamente por ter termos opções melhores Como por exemplo o próximo da minha lista aqui Que é orientação a objetos orientação o paradigma de orientação objetos é uma forma da gente escrever código baseado em coisas do mundo real Então se a gente tem um se a gente tem uma loja de carros e a gente tem um carro que vai ser
vendido a gente mapeia essa coisa do mundo real por exemplo um carro para o nosso código então a gente vai ter um arquivo chamado carro com as características do carro falando como que o carro se comporta e tudo mais Basicamente é esse é um resumo muito muito por cima muito superficial de orientação objetos depois a gente tem o paradigma funcional que tá bastante Popular hoje em dia tem muitas linguagens interessantes como elixer por exemplo que utilizam fortemente esse Paradigma e é um paradigma bastante interessante para se aprender também e aí a gente tem outros paradigmas
como a de computação distribuída e vários outros tá se eu fosse te recomendar para Você se focar em dois paradigmas para você poder escolher as linguagens que você quer aprender e utilizar eu te recomendaria focar em orientação objetos e paradigma funcional tá bom eh isso não é uma questão de opinião só é uma questão de mercado também e provavelmente pra maioria dos programadores que você vai perguntar eles vão te recomendar esses dois paradigmas mas não fica muito preso nisso não fica pensando Nossa eu tenho Que me preocupar com a linguagem não sei o quê você
vai ver que isso é uma coisa mais natural tá certo é só uma forma da gente classificar as linguagens pra gente poder entender melhor em qual caixinha em qual categoria cada linguagem Ah se encaixa melhor eu vou falar um pouquinho aqui sobre linguagens interpretadas versus linguagens compiladas Ou seja eu vou explicar o que que cada uma faz E por que elas são diferentes e quando que a gente deve Usar uma Quando que a gente deve usar outra Fica tranquilo que é um conceito bastante simples Então vamos começar com uma linguagem interpretada uma linguagem interpretada é
aquela que a gente usa um interpretador tá enquanto que na linguagem compilada a gente tem um compilador tá na linguagem interpretada a gente tem esse software tá tanto desculpa tanto o interpretador quanto o compilador São softwares tá geralmente softwares que não tem interface gráfica Softwares que a gente roda apenas pelo terminal então quando a gente tem um interpretador que é o caso da linguagem Ruby é o caso do JavaScript é o caso do Python e de uma série de outras linguagens quando a gente escreve o nosso código Esse interpretador consegue lê esse código diretamente então
ele vai lendo o nosso código e já vai executando tá é quase como se ele tivesse aprendido o nosso idioma não o nosso idioma né na verdade é linguagem de programação Ele Estudou bastante e ficou fluente naquela linguagem é basicamente isso então ele consegue ler e entender já uma linguagem compilada a gente tem um passo Extra a gente precisa que o compilador leia o nosso código que é um arquivo de texto Tecnicamente falando é um arquivo de texto todos os códigos que a gente escreve a gente usa extensões diferentes a gente usa programas diferentes para
editar que são os editores de texto próprios para código mas no final das Contas Tecnicamente falando são arquivos de texto puro por exemplo não tem formatação de texto Itálico sublinhado nada disso é texto puro puro mesmo quando um compilador lê esse texto ele transforma esse código em um arquivo Binário um arquivo binário é aquele que a gente nós como humanos nós não conseguimos ler tá ele é um arquivo que só o computador entende porque ele é simplesmente zeros e uns Tecnicamente falando né então ele gera um arquivo é é O famoso ponto exe que você
provavelmente executa para executar algum aplicativo né ou mesmo Ah um um ponto app se for no Mac ou um aplicativo que você roda eh no Linux um binário que você roda no Linux tá são os programas prontos já então o compilador tem essa função de ler um código e transformar um binário para isim o computador conseguir entender aí você me pergunta PCA Tom mas se tem um passo Extra Por que a gente ia querer uma linguagem compilada aí que tá O Polo do gato uma linguagem compilada ela uma linguagem não desculpa um ecossistema né que
é compilada na verdade a linguagem também a gente chama de linguagem compilada quando a linguagem é compilada ela geralmente é bem mais rápida então o computador e desculpa o compilador ele faz uma série de ajustes na no código para que ele Rode muito mais rápido e como no final das contas ele vai ser um binário ele consegue ser muito mais rápido então não São apenas essas diferenças tem algumas outras pequenas diferenças performance eu diria que é a principal diferença mas eu também não quero que vocês se preocupem muito com isso é só uma introdução um
pouquinho de teoria para você entender a diferença entre uma linguagem interpretada que a gente precisa de um interpretador que vai ler diretamente e uma linguagem compilada onde o compilador vai ler o nosso código gerar um arquivo binário E aí só então o Computador vai executar Então esse foi um resumo da diferença entre uma linguagem interpretada versus uma linguagem compilada nessa aula eu vou explicar alguns conceitos básicos sobre o terminal então a primeira pergunta que eu vou responder é o que é um terminal bom terminal é um software que já vem junto dos sistemas operacionais os
principais deles Mac Linux ah Windows e vários outros geralmente eles já vem com terminal por padrão o objetivo do Terminal É permitir você acessar recursos mais avançados do seu sistema e de uma forma geral você tem um controle mais completo sobre o seu computador tudo isso através de uma interface de linhas de comando Isso significa que o terminal não tem botões geralmente não tem botões não tem ícones não tem nenhum elemento gráfico o que ele tem essa interface aqui onde a gente digita um comando e aperta Enter para executar determinado comando Ok mas por que
Utilizar um terminal bom quando a gente utiliza ou um sistema operacional ou os programas dele a gente tá limitado à interface gráfica que ele disponibiliza né que no caso foram outros programadores que criaram ali pra gente já no terminal a gente consegue ter um um acesso mais completo então a gente não fica limitado a somente os elementos que foram colocados ali prontinhos pra gente é mais ou menos como se fosse um caixa eletrônico no caixa eletrônico Você tem algumas limitações da própria interface gráfica do da do computador que tinha ali né então a gente tem
lá as opções para fazer uma transferência para sacar para depositar Mas a gente não consegue ter um sistema completo Afinal Ah o dinheiro que tá ali não é necessariamente nosso então Eh o computador ele de certa forma é parecido né quando você tá gerenciando seus arquivos por exemplo você só consegue gerenciar os arquivos através dos ícones Né da dos menus e todo o resto que tem ali no sistema operacional já através do terminal a gente consegue ter um acesso muito mais completo muito mais avançado então é como se a gente tivesse não tivesse utilizando essa
interface do do caixa eletrônico que é pros usuários finais né Mais ou menos como o próprio pessoal pessoal do banco vai utilizar seja para repor ah dinheiro no caixa alguma coisa assim então eles precisam de um acesso mais completo ao caixa Eletrônico dá pra gente fazer um paralelo não é exatamente a mesma coisa mas enfim você entendeu a ideia não se preocupe muito com esses comandos que eu vou utilizar nem precisa notar porque na próxima aula vai ter uma lista com todos os comandos mais comuns que a gente utiliza no dia a dia certo mas
o que que a gente consegue fazer com o terminal bom Como Eu mencionei agora a pouco a gente consegue gerenciar arquivos e pastas né então a gente consegue criar Renomear mover deletar tudo isso sem precisar de nenhuma interface gráfica apenas pelo terminal para isso não ficar muito teórico eu vou ah apresentar para vocês fazer uma demonstração real de como que isso funciona usando um terminal antes de mais nada o macos traz por padrão esse terminal aqui ele chama terminal e enfim eu apesar de muitos desenvolvedores gostarem e utilizarem ele eu prefiro um outro terminal desenvolvido
por uma empresa terceira Chamado iterm tá você não precisa necessariamente utilizar ele mas ele tem alguns recursos mais interessantes Por isso que eu gosto caso você esteja interessado em baixá-lo você pode acessar esse site iterm 2.com tá enfim não tem muito segredo é somente você acessar esse site e clicar nesse botãozinho terminal nativo que já vem com eles o Linux é famoso por ter várias opções Então se você quiser testar alguma opção diferente Fique à vontade para utilizar qual você quiser então vamos lá mão na massa Lembrando que todos esses comandos que eu vou utilizar
aqui vão estar disponível numa lista que eu vou disponibilizar na próxima aula tá então geralmente quando a gente abre o terminal ele mostra ele ele já abre localizado no diretório do seu usuário tá no caso do macos que é o que eu tô utilizando aqui esse diretório é o Barra Users barra e o nome do meu usuário no caso Lucas caton tá pra gente saber exatamente qual diretório a gente tá a gente pode usar o comando pwd então a gente digita o comando que a gente quer pwd e aperta Enter e ele executa Esse comando
tá então ele vai ter um output né que a saída é o resultado desse comando e ele volta novamente a ficar com essa interface onde a gente consegue digitar os comandos tá então aqui a gente consegue ver que o diretório que Eu tô é o do meu usuário h no no Linux geralmente ele vai mostrar alguma coisa assim bar home bar Lucas caton tá é quase igual do Mac e no Windows ele vai mostrar geralmente C2 P bar Ah se eu não me engano é users ou usuário se tiver em português e aí sim o
nome do usuário tá se eu não me engano é mais ou menos isso aqui então isso aqui muda de sistema profissional para sistema profissional mas o conceito é exatamente o mesmo o segundo comando que A gente vai rodar aqui é o CD tá CD significa Change directory ou seja alterar diretório tá e a gente vai fazer justamente isso dentro dessa pasta de do do meu usuário a gente tem o diretório do desktop então quando eu digitar CD desktop ele vai alterar pro desktop né ele vai mostrar aqui para mim qual é o diretório atual esse
comecinho aqui do terminal varia de de terminal para terminal de sistema para sistema Ah desculpa sistema operacional para Sistema operacional e ele pode ser customizado então eu posso colocar qualquer informação que eu quiser aqui nesse começo poderia inclusive colocar o caminho com completo da pasta que eu tô tá então se eu rodar novamente o comando pwd igual eu fiz ali em cima ele vai mostrar que o meu diretório atual agora é barra users barlas caton bar desktop se eu quiser voltar um nível do meu diretório no caso voltar aqui pro Lucas caton eu poderia rodar
o comando CD e Dois pontos dois pontos é como se fosse um atalho pro diretório anterior então se eu rodar aqui e rodar novamente o pwd eu voltei para aquele diretório já se eu quiser voltar pro diretório que eu tava antes não significa necessariamente o diretório acima eu poderia rodar o comando CD traço é justamente o diretório que eu tava imediatamente antes tá então e CD traço ele volta pro desktop tá nesse caso aqui eu poderia ter digitado CD desktop que ele também Funcionaria ou cd traço então o traço e os dois pontos são como
se fosse dois diretórios ah de mentirinha né dois diretórios que não existem de verdade são apenas atalhos pra gente chegar em algum lugar Esses são os dois principais diretórios Mágicos digamos assim entre aspas todos os outros a gente executa digitando os nomes reais deles não se preocupe se isso aqui for muita informação de uma vez a gente vai repetir esses comandos várias vezes Durante o curso Então não se preocupe que você acaba ficando familiar com esses comandos bom eu deixei preparado aqui uma pasta chamada Lucas que tá vazia Tá e agora a gente vai acessar
essa pasta aqui do terminal então CD Lucas e e eu vou aproveitar para ensinar mais uma dica que ajuda muito no dia a dia em vez de eu digitar o nome completo da pasta eu posso simplesmente começar a digitar e apertar Tab tá E ele já completa pra gente aí basta apertar Enter que ele muda de diretório isso vale para qualquer comando ou qualquer software que você esteja utilizando no terminal sempre tente apertar Tab que muitas vezes ele completa pra gente ganhando aí a um tempinho no dia a dia e fica muito mais ágil fica
muito mais prático em vez de ter que ficar digitando comando todo toda Santa vez próximo comando que a gente vai rodar aqui então é o toach tach é um comando que cria um arquivo vazio Então vamos lá Tach e eu vou passar o nome de um arquivo tá no caso aqui eu vou chamar de arquivo 1.txt quando eu apertar enter olha só que legal ele criou para mim um arquivo vazio chamado justamente arquivo 1.txt se eu quiser rodar novamente esse arquivo para criar Digamos um arquivo chamado arquivo 2.txt em vez de ter que digitar Esse
comando inteiro novamente eu posso Posso apertar aqui no meu teclado aquelas setinhas pra esquerda pr Pra direita para cima e para baixo a gente pode utilizar Ah para cima e para baixo para voltar no histórico de outros comandos que a gente já rodou então por exemplo eu vou apertando para cima aqui ele vai mostrando esses comandos no momento que eu aperto para baixo ele volta como se tivesse voltando no tempo mais pro presente né e obviamente esquerda e direita a gente consegue alterar e a gente consegue e e mudar o cursor para onde a gente
quer o alterar Né então aqui no caso eu quero rodar o comando toch arquivo 2.txt basta que eu venha até aqui perto do um Apague o um digite dois e aperte enter novamente tá olha só que bacana agora a gente tem os dois arquivos aqui conforme o esperado pra gente listar todos os arquivos aqui pelo terminal a gente pode utilizar o comando LS então LS ele vai mostrar simplesmente o nome dos arquivos sem nenhuma frescura sem nenhuma informação Extra é simplesmente o nome dos arquivos E acabou se a gente quiser mais informações sobre esse arquivo
Eh desculpa sobre o diretório atual a gente poderia rodar o comando LS - L tá l é de list ou seja lista então ele vai criar uma lista aqui pra gente tá com todos os metadados e outras informações aqui do nosso arquivo então cada arquivo é representado em uma linha tá e aqui a gente tem informações de permissões né quem pode acessar esse arquivo ah usuário que criou e o grupo do usuário Atual a data de criação hora de criação e finalmente o nome do arquivo Ou seja a gente tem uma série de informações que
podem ser úteis quando a gente tá listando arquivos pelo terminal legal a gente aprendeu como criar um arquivo vazio agora e se a gente quisesse criar uma pasta um diretório vazio aqui ah pelo terminal bom a gente pode utilizar o comando mkd então eu vou criar uma pasta chamada meu projeto por exemplo e olha só que legal ele criou aqui pra Gente uma pastinha vazia tá e se eu rodar novamente de comando LS - L ele inclusive mostra de uma cor diferente né isso aqui pode variar de terminal para terminal mas o padrão é que
ele mostre numa cor azul tá então a gente sabe que é um diretório e aqui no comecinho também ele mostra a letra D aqui nas permissões que representa um diretório Agora se a gente quisesse criar um arquivo que não estivesse vazio a gente pode utilizar o comando eco eco Simplesmente imprime alguma coisa na tela então qualquer coisa que eu digitar aqui oi mundo por exemplo vai aparecer exatamente o que eu escrever aqui ele vai repetir embaixo é por isso que chama Eco como se fosse um Eco né Quando Você Grita numa caverna em algum lugar
e aquela voz volta é a mesma coisa aqui você fala e ele volta aquilo que você colocou né só que a gente pode utilizar ah por exemplo vou digitar meu nome aqui tá E é interessante a gente sempre Colocar aspas entre o texto pra gente ah não confundir o terminal a gente especifica exatamente onde começa e onde termina o texto que a gente quer e aqui a gente pode combinar Esse comando com o maior maior significa em vez de colocar o output né a saída dos dados aqui no próprio terminal eu quero que você coloque
isso aqui em algum outro lugar e esse outro lugar vai ser justamente um arquivo então eu vou chamar aqui de info né de informações por exemplo info. TXT Tá dessa forma ele vai imprimir esse dado essas informações aqui Lucas caton meu nome e vai colocar automaticamente nesse arquivo então no momento que eu apertar enter Olha só nada foi impresso na tela a gente consegue visualizar aqui que o arquivo foi criado tá e o conteúdo do arquivo tá lá Lucas caton normalmente tá obviamente que quando a gente quiser colocar mais informações num arquivo a gente vai
utilizar um editor de textos né então por exemplo eu vou abrir o Editor Atom você pode usar qualquer editor que você quiser eu vou abrir aqui o editor Atom e vou passar o nome desse arquivo tá então ele abriu aqui pra gente né eu poderia colocar alguma outra informação por exemplo o meu site tá então o arquivo de informações aí eu tenho o meu nome e um site aqui embaixo tá certo vou salvar o arquivo e vou voltar lá pro terminal e vou usar um outro comando agora que é o Cat o cat ele exibe
ah os dados de um determinado Arquivo tá eh Então vamos lá Cat info.txt ele vai mostrar todo o conteúdo daquele arquivo né no caso a gente colocou o Lucas caton primeiro aqui né então foi a primeira linha e depois a gente inseriu manualmente através de um editor de texto o site Então por issso que ele tá mostrando essas duas informações aqui Opa copiei colei aqui sem querer então o comando Cat serve para isso né pra gente exibir no terminal a informação os dados o Conteúdo de algum arquivo que esteja nessa pasta então Cat e mais
o caminho do arquivo agora à medida que você for ficando mais familiarizado com o terminal você pode começar a utilizar umas coisas um pouco mais avançadas uma delas é combinar dois ou mais comand no terminal para fazer isso a gente utiliza o Pipe tá o Pipe é essa esse caracter que geralmente fica numa tecla que você precisa segurar Shift para acessar e geralmente fica em cima de uma Barra tá obviamente isso varia um pouco de teclado para teclado mas se você procurar no seu teclado como certeza você acha tá ele é como se fosse uma
barra só que completamente na vertical e para utilizar ele é muito simples a gente passa algum Comando por exemplo Cat info que a gente acabou de utilizar aqui em cima e a a gente dá um espaço digita Pipe Na verdade o espaço é opcional Tá mas eu acho que fica mais mais Ah claro fica mais ã simples de Entender o que que tá acontecendo né então a gente coloca espaço Pipe espaço e o segundo comando tá o segundo comando que eu vou utilizar aqui é o grap o grap nada mais faz do que filtrar alguma
coisa então Ele é um filtro tá e como a gente tem duas linhas aqui nesse arquivo eu posso filtrar por exemplo por www e olha só que interessante o que que acontece ele vai imprimir todo esse arquivo e o o a saída desse arquivo é como se a a saída desse arquivo vai Virar a entrada do próximo comando tá então a gente tem o conceito de output que é saída e input que é entrada não precisa se preocupar muito com isso isso aqui é uma coisa um pouco mais avançada né de usar dois comandos juntos
mas basicamente a gente vai eh fazer com que toda a saída desse comando seja a entrada desse próximo tá então eles vão trabalhar juntos e dessa forma a gente consegue filtrar alguma informação vamos apertar enter para ver O que que acontece olha só ele em vez de exibir as duas linhas ele exibiu uma linha só porque foi a linha que esse filtro bateu né a informação bateu a informação foi identificada ali porque tem o www E além disso ele tá mostrando em vermelho então a gente consegue Ah também por exemplo se eu digitasse ah se
eu filtrasse por caton que é uma informação que tem nas duas linhas né tem tanto aqui no site quanto no meu sobrenome então ele vai Mostrar em vermelho e vai exibir as duas linhas muito bacana Esse comando é bastante útil um outro comando que a gente também pode combinar com o cat é o WC - L Esse comando serve para contar as linhas Então a gente vai exibir a o conteúdo de um arquivo no caso info.txt e vai mandar contar quantas linhas tem esse arquivo no caso só tem duas então ele mostra duas aqui pra
gente um outro comando muito interessante também é o o Clear o Clear ele basicamente limpa a Tela do nosso terminal então digito Clear e aperto enter e ele volta a ficar tudo limpinho né Às vezes a gente tem muita coisa rodando ao mesmo tempo fica difícil de entender o que que tá acontecendo Então é mais interessante a gente rodar um Clear limpa tudo e aí a gente começa a rodar os comandos novamente Esse comando também pode ser executado através de um atalho que é control L Lembrando que esse atalho control L ele funciona na maioria
dos Terminais mas não em todos então se por acaso não funcionar no terminal que você tiver utilizando procura nos menus com certeza vai ter aí qual que é o atalho que você pode utilizar para limpar o seu terminal então voltando aqui só mais alguns comando só pra gente poder finalizar essa demonstração de gerenciamento de arquivos e de diretórios através do terminal eu vou mostrar o comando CP CP significa copy ou seja copiar então eu vou copiar um Arquivo e para para outro como se eu tivesse duplicando o arquivo né então vamos lá eu vou duplicar
o arquivo info e o segundo parâmetro que eu coloco aqui é o nome que eu quero novo nome então vamos supor que eu chame de info 2.txt ele vai duplicar esse arquivo eh info.txt que é esse arquivo aqui para um novo arquivo info 2.txt vou apertar enter e olha só agora a gente tem esses dois arquivos com exatamente o mesmo conteúdo ó tá tem o meu nome e o meu Site tá então é assim que a gente duplica arquivos através do terminal se a gente quiser renomear um desses arquivos arquivos vamos supor que eu digite
errado eu não queria que fosse Info 2 eu queria ter escrito info novo por exemplo eu posso rodar o comando MV MV é de move e é como se a gente tivesse movendo um arquivo de um lugar para outro inclusive é exatamente o mesmo comando quando a gente quiser mover daqui a pouco a gente vai mover ele para Ess para esse diretório aqui meu projeto vocês vão ver que é exatamente o mesmo comando mas primeiro vamos renomear então MV Info 2 tá isso aqui apareceu aqui embaixo é só porque o meu terminal completo deixa eu
limpar aqui ó Info 2 tá eh Lembrando que você pode só apertar Tab ele completa e aí info.txt tá ele vai é como se ele tivesse Tirando esse arquivo desse diretório e movendo ele pro diretório novo com nome novo por isso que ch por Isso que a gente usa o mesmo comando move tá Então olha só ele renomeou o arquivo tá exatamente o mesmo conteúdo com um novo nome agora se a gente quisesse mover esse arquivo aqui para dentro dentro da pasta meu projeto a gente faria MV info novo e o nome do diretório Só
isso tá então o primeiro parâmetro é o arquivo em questão que a gente quer mover e o segundo parâmetro é o diretório apertando enter Olha só o Arquivo sumiu daqui e apareceu lá dentro dessa pasta agora pra gente apagar um arquivo a gente pode utilizar o comando RM que significa remove em inglês ou seja remover tá então a gente pode digitar RM espaço info.txt e apert Enter só que toma cuidado com uma coisa no terminal não existe aquela confirmação que a gente geralmente tem no a nível de sistema operacional né no Finder no Windows Explorer
já que Normalmente quando a gente tenta apagar um arquivo Aparece um diálogo de confirmação geralmente alguma coisa do tipo tem certeza que deseja pagar esse arquivo né E aí mesmo clicando em sim ele ainda vai pra lixeira Então você ainda tem uma segunda chance de recuperá-lo tá no terminal não existe ele não só não vai pedir confirmação como vai deletar de uma vez sem lixeira sem confirmação sem nada então Tom muito cuidado isso vale tanto para arquivos quanto para pastas tá para pastas o comando muda só um Pouquinho então vamos supor que eu queira apagar
essa pasta do meu projeto eu posso passar o comando RM e agora vem a diferença a gente tem que passar essa Flag né essas opções aqui RF que é para o comando de remover executar de forma recursiva ou seja ele vai apagar todo tudo que tiver lá dentro dessa pasta né todos os arquivos pastas subpastas tudo que tiver lá dentro vai ser removido então RM Men RF e o nome da pasta aqui no caso é meu projeto tá tome muito Cuidado para não apagar alguma pasta por engano sempre que você tiver algum arquivo crítico faça
backup porque o terminal não perdoa não exibe confirmação e não manda pra lixeira apertei aqui foi não tem como recuperar mais Bom basicamente essa era a demonstração que eu queria fazer tá todos os comandos vontar disponíveis na próxima aula legal deu para ver que a gente consegue fazer muita coisa em termos de gerenciamento de arquivos e Pastas pelo terminal mas o que mais que a gente consegue fazer através de um terminal bom a gente consegue acessar e executar comandos remotamente em um servidor a gente também consegue executar softwares sem ui ui significa user interface ou
seja interface gráfica são aqueles sistemas ferramentas ou softwares que não tem nenhuma janela Ele simplesmente vai executar ali diretamente do terminal a gente vai ver vários deles como o post rizes que é um Banco de dados a gente vai ver que ele não tem não por padrão pelo menos ele não tem uma interface gráfica todo gerenciamento é feito ali pelo terminal uma outra coisa que a gente também consegue fazer é ter um gerenciamento Ah mais avançado em termos de sistema operacional então algumas opções você não consegue ir nas preferências de sistema ir lá com o
mouse mesmo clicar e ativar Tem coisas que você só consegue ativar ou desativar ou alterar através Do terminal outra coisa que é possível fazer é instalar ferramentas de programação como próprio postgress que eu acabei de mencionar várias dessas ferramentas não t um assistente de instalação com janelinha bonitinho eles tê apenas Ah o comando que você vai rodar você baixa um pacote alguma coisa Ah ou mesmo usa um gerenciador de pacotes e você instala pelo terminal a gente vai ver tudo isso daí em algumas aulas mas tem em mente que é uma um Outro curso interessante
do terminal a gente conseguir instalar várias ferramentas e a gente vai fazer muito isso durante o curso através do terminal a gente também consegue atualizar softwares como por exemplo essas próprias ferramentas de de que a gente usa para programar né e muitas vezes o a gente consegue atualizar o próprio sistema operacional através do terminal uma outra coisa que a gente também consegue fazer pelo terminal é gerenciar O um banco de dados né um Database então a gente não só consegue instalar o post P ou msql ou outro como a gente também consegue gerenciar os dados
ou seja inserir ler né verificar as informações editar ah atualizar deletar e várias outras coisas vários outros recursos mais avançados de banco de dados a gente também consegue fazer totalmente pelo terminal a gente também consegue gerenciar usuários né editar os logins usernames as senhas Ah mudar as permissões e outros atributos de usuários também tambem conseguimos gerenciar nossa rede né ver uma lista de redes wi-fi ah mudar informações ver nosso IP enfim gerenciar toda a nossa rede também é possível bom eu espero que tenha dado para notar o quão versátil um terminal pode ser existe uma
infinidade de coisas que é possível fazer bom Como Eu mencionei anteriormente a próxima aula vai ter uma lista com todos esses comandos que a Gente utilizou e mais alguns então fique à vontade para abrir o seu terminal copiar aqueles comandos executá-los para ver como é que funciona e ficar mais familiarizado eu te recomendo bastante testar aí na prática fazer algumas brincadeiras com criando arquivo apagando né ten backup sempre dos seus arquivos tome cuidado e como sempre se tiver qualquer dúvida basta me mandar Nesta aula a gente vai ver um pouquinho sobre editores de texto e
Também um pouquinho sobre ids Então antes de mais nada vamos entender o que que é cada um deles editores de texto ou ainda se você quiser chamar de editores de código são softwares que permitem que a gente que Edite textos mas não apenas só textos a gente também consegue editar código ou seja o código que gera as aplicações que a gente vai desenvolver só para exemplificar o bloco de notas que vem no Windows ele é um editor de textos mas ele não é um editor de textos Bom para escrever código Digamos que se você realmente
precisasse usar ele vai funcionar Porque no final das contas ele é um editor de textos mas ele não é ideal porque ele não vai ter uma série de recursos que seriam interessantes a gente ter para poder programar ou seja ele não é recomendado porque ele é simples demais um ótimo editor de textos que é muito recomendado Tanto para quem tá começando quanto para quem já tem bastante experiência é o vs code Basicamente ele é um editor que além de ter tudo que um editor minimamente decente tem ele também tem um Terminal Integrado ele tem um
debugger integrado também ou seja você não precisa instalar nada disso ele tem uma série de plugins que eles chamam de extensions que são ótimos então se você tiver usando Ruby ou JavaScript ou sei lá tiver editando um arquivo em uma um formato específico muito provavelmente vai ter uma extensão para ele porque tem muita gente usando Então a comunidade é muito grande e todas essas ferramentas plugins o próprio editor em si são gratuitos Além disso ele também é open source e é mantido pela Microsoft então é um excelente editor Tanto para quem tá começando quanto para
quem já tem experiência como eu falei no geral as interfaces dos editores de textos geralmente não tem nenhum botão ou tem poucos botões eles normalmente T essa lista de pastas e de arquivos do do Nosso projeto e aqui no meio nessa área Central no meio não do lado direito aqui nessa área Grande a gente tem o editor de códigos em si né o editor de textos em si é aqui que a gente vai digitar o nosso código um outro bom editor que você também pode utilizar é o Atom ele é mantido pelo github que hoje
é da Microsoft então no final das contas você vai estar usando editor da mesma empresa mas ele é também é gratuito e ele também é open source eu utilizei ele por um Tempo e é um editor bem decente vamos agora dar uma olhada no que são idees bom eu vou explicar para você o que que é IDE Mas é só para você saber mesmo na verdade porque a gente não vai utilizar ids nesse curso ids são utilizadas quase que exclusivamente para desenvolvimento de software elas são muito parecidas com editores de texto mas ela tem uma
interface gráfica mais carregada ou seja mais poluída mais cheio de coisa botões menus mas um monte de coisa ali na Interface e também obviamente uma grande área pra gente poder editar nosso código pelo fato de ideias oferecerem esses recursos extras como por exemplo simuladores ou emuladores de smart smartphones acabam que elas são bem mais pesadas Então você precisaria de um computador um pouco melhor um pouco mais rápido para poder aguentar rodar esse tipo de aplicação Isso significa que a performance de editores de texto são no geral bem melhores do que de ids a boa Notícia
é que nesse curso como eu falei a gente só vai utilizar editores de texto se você já tem um editor de textos preferido que você utiliza no dia a dia Ótimo continue usando ele não tem problema agora se você não tem tá começando agora e quer uma sugestão eu te recomendo fortemente o vs code para instalar o vs code é muito simples independentemente se você usa Windows Linux ou Mac OS basta que você Acesse o site dele que é code.visualstudio.com E clicar no botão de download que tem na página inicial E aí pronto não tem
segredo é só você instalar Como se você tivesse instalando qualquer outro programa antes de você ir pra próxima aula baixa o editor de textos abre ele dá uma fuçada brinca um pouco cria arquivos apaga arquivos para você entender como é que tudo funciona e para você começar a ficar mais familiarizado com a interface do editor porque a gente vai utilizar ele no curso todo como Sempre se tiver qualquer dúvida é só me mandar nessa aula a gente vai falar um pouquinho sobre a linguagem Ruby a linguagem Ruby foi criada por um japonês chamado yuk hiru
Matsumoto também conhecido popularmente como mats a primeira versão da linguagem foi lançada em 1995 e o objetivo dele ao criar essa linguagem era criar uma linguagem de script que fosse mais poderosa que as que tinham na época e que ao mesmo tempo fosse divertida que Fosse amigável ao programador Ruby é uma linguagem interpretada conceito que a gente aprendeu em uma das aulas anteriores Ruby também é uma linguagem orientada a objetos e a gente vai entender melhor esse conceito no decorrer do curso a linguagem é open source ou seja ela tem o seu código disponibilizado publicamente
para todo mundo o que significa que você consegue ler o código fonte da linguagem e ainda contribuir com a linguagem Caso seja do Seu interesse Ruby tem uma sintaxe muito simples muito limpa é tudo baseado na simplicidade e na produtividade não é incum a gente ler um código Ruby e parecer mais uma frase em inglês de tão simples e de tão parecido mesmo com o idioma inglês que a linguagem Ruby é eu também poderia citar outras características da linguagem por exemplo que Ruby é uma linguagem dinâmica que ela tem o gerenciamento de memória Automático poderia
comentar que ela tem tipagem forte que ela pode ser usada com uma linguagem de script que Ruby pode ser usado no paradigma funcional Porém todas essas características não são tão relevantes para quem tá começando agora OK a próxima pergunta então é por que que eu vou ensinar Ruby nesse curso bom antes de programar em Ruby eu já programei em dph em Java e em PHP que são outras linguagens outras plataformas nas quais a gente também pode programar Por volta de 2008 eu comecei a brincar com o Ruby e em 2009 eu comecei a trabalhar profissionalmente
tempo integral com a linguagem e por mais que nesses últimos anos eu tenha estudado outras linguagens como elixir JavaScript Swift Ruby ainda é a minha linguagem primária não que você não deva aprender outras linguagens pelo contrário eu te incentivo a estudar mais linguagens porque cada linguagem vai resolver um problema diferente então é interessante Você saber os pontos fracos e os pontos fortes de cada linguagem JavaScript por exemplo é essencial caso você queira trabalhar com desenvolvimento web mas uma recomendação pessoal é que você tenha pelo menos uma linguagem na qual você seja muito bom na qual
você possa garantir que você consegue resolver a maioria dos problemas ou seja uma linguagem na qual você pode dizer eu sou Expert nisso eu vou masterizar alguma linguagem específica isso te ajuda muito Inclusive em termos de carreira Quando você vai fazer uma entrevista quando você tá aplicando para alguma vaga de emprego você saber mais de uma linguagem Porém você ser especialista em alguma específica Então esse é o primeiro motivo para aprender Ruby o segundo motivo é que Independente se você está começando ou se você já tá no nível mais avançado Ruby Muito provavelmente vai atender
suas expectativas Ou seja você consegue fazer coisas muito simples e Também muito complexas o terceiro motivo é a comunidade de programadores que trabalham com a linguagem o que se traduz em eventos feitos pela comunidade em conferências em artigos emcast e todo esse material que é diaramente produzido tanto na internet quanto em eventos presenciais algumas linguagens têm propósitos específicos enquanto que outras TM propósitos Gerais no caso do Ruby ela é uma linguagem de propósito geral o que Significa que você pode criar uma aplicação web você pode criar uma aplicação mobile para celular né um aplicativo para
celular você pode criar um script para rodar no seu computador a cada x minutos por exemplo para resolver alguma coisa do dia a dia enfim são infinitas as possibilidades é uma linguagem extremamente poderosa e flexível que você vai consir conseguir aplicar em diferentes cenários então só para concluir eu te recomendaria começar Focando apenas em uma e Ruby é sem dúvida uma excelente opção para começar fala meus caros vamos falar aqui um pouquinho se você pode ou não usar o windows para programar então assim se você usa Linux e Mac OS eu vou direto ao ponto
pode pular essa aula fica tranquilo que você vai se dar bem agora se você usa o Windows fica aqui um pouquinho que a gente precisa trocar uma ideia o lance é o seguinte dá para usar Windows para programar bom dá só que Usando o wsl que é o subsistema Linux que vem no Windows 10 e no Windows 11 e provávelmente vai vir em versões futuras também PC Tom Mas eu não quero usar esse tal de Windows com subsistema Linux eu nem sei o que que é isso não dá para usar Windows nativamente como eu sempre
fiz e tal olha poder você pode mas por experiência própria eu te diria que é meio estressante e até meio frustrante então pode ser que você ganhe alguns cabelos brancos aí antes da hora Se você já tiver cabelo branco que talvez eles caiam é realmente uma experiência ruim brincadeiras a parte rodar ferramentas de desenvolvimento como a própria linguagem Ruby no Windows de forma Nativa é ruim pelo seguinte algumas ferramentas que a gente usa para desenvolver muitas vezes elas não são necessariamente a as mesmas que a gente tem no Linux no macos e no Windows elas
são ligeiramente diferentes ou então a gente precisa de alternativas e Independentemente se são a mesm se é a mesma ou não muitas vezes elas demoram bem mais para sair no Windows então imag imagina sei lá um cenário assim você tá trabalhando numa empresa E aí sua equipe tem parte do time trabalhando e usando Linux outra parte usando macos E você tá lá usando Windows aí sai uma nova versão de alguma coisa todo mundo atualiza vocês atualizam no projeto e você não consegue nem rodar mais o projeto aí na tua máquina porque você tá usando Windows
você não quer ficar para trás né inclusive vai pegar muito mal na empresa porque você não vai conseguir trabalhar mais obviamente eu tô exagerando um pouquinho aqui mas só para deixar bem claro que é algo que você provavelmente não quer ficar para trás Além disso mesmo quando Windows T assim uma ferramenta Nativa né uma alternativa ou a mesma ferramenta que o Linux às vezes elas dão algum probleminha aliás frequentemente elas dão algum problema Então ah o o o fundamento do do Windows e do Linux são bastante diferentes e o macos não tem esse problema porque
o fundamento dele é muito parecido com do Linux e eu bato eu tô muito comparando tudo tanto o macos quanto o Windows com o Linux porque é no Linux que a gente roda as nossas aplicações pouco atual mas não dá para rodar Sei lá uma um projeto no Windows no Servidor ou no macos em servidor dá mas sinceramente eu uso Ruby desde 2008 2009 Eu nunca vi uma Aplicação em produção usando nem Mac OS nem o Windows são todos rodando Linux Ah então assim é é inevitável que a gente acabe comparando né porque se a
gente usar Linux para desenvolver a gente tá usando o mesmo ambiente que a gente vai est rodando Nossa aplicação na nuvem né no servidor enquanto que o macos assim é uma exceção porque ele é muito parecido então raramente dá problema Beleza beleza mas pô caton Então quer dizer que eu vou vou ter que usar ah Linux ou Macos não mas você deveria seriamente considerar essa opção mas fica até o final dessa aula aqui que eu vou te explicar exatamente porquê assim se você nunca usou Linux na vida fazer uma migração da noite pro dia assim
né Apagar o seu Windows instalar só o Linux na sua máquina vai ser uma mudança muito drástica e eu provavelmente não quero te causar esse essa essa esse trauma digamos assim tá ah por quê Porque mesmo se você você usar uma distribuição Amigável tipo buntu vão mudar uma série de coisas né os menus vão mudar de lugar o o sei lá os aplicativos que você tá acostumado tipo Office photoshop e tal apesar de terem alternativas inclusive várias muito boas ainda assim vão ser aplicações diferentes talvez se você abra um documento no Word do Windows E
aí você tenta abrir no open Office ou alguma alternativa do Linux ele vai ficar meio quebrado alguma coisa então Pode sim ser frustrante por isso que eu Não recomendo se assim se você eh tá muito acostumado com Windows E você tem tá tá com um pouco de receio de migrar totalmente pro Linux tem alternativas você não precisa ir dar água pro vinho Então vamos falar um pouquinho dessas alternativas primeiro você pode manter o Windows e o Linux no mesmo computador a gente chama essa técnica de Dual Boot e funciona assim quando você liga seu computador
seu laptop e tal ele vai te perguntar qual sistema você quer usar né Vai ter geralmente um menuzinho Bem feinho ali mesmo tipo um terminal e vai ter lá Windows ou Linux e aí você vai com a setinha e aperta Enter e ele entra no sistema que você escolheu E aí você tá usando o mesmo HD né o mesmo ambiente ali o mesmo computador com dois sistemas diferentes eu não vou te ensinar a fazer isso nesse curso por dois motivos um que foge muito do escopo a gente tem um monte de coisa para aprender sobre
programação então não faria sentido eu Parar para ensinar como que instalo o Linux ah em Dual Boot ou seja como for e segundo porque Varia muito de distribuição para distribuição então eu teria gravar vários vídeos mas é extremamente fácil encontrar vários tutoriais na internet no YouTube de como fazer isso beleza a propósito se você não manja de Linux e quer se aventurar pela primeira vez eu recomendaria muito a distribuição Ubunto que é uma distribuição bastante amigável os menus São bem a interface é bem Clean os menus não são tão diferentes assim do Windows muda uma
posição Muda alguma coisa Mas no geral assim você não vai sentir que é um sistema Alienígena você vai falar Beleza tá um pouquinho diferente mas dá para me virar Então se é a primeira vez que você tá se aventurando no mundo Linux vai de Ubunto e depois quando você tiver mais familiarizado entendendo mais com como é que funciona o Linux em geral Você pode até experimentar outras Distribuições e ver o que te agrada mais e o que te atende melhor aí para você codar para você programar beleza outra opção se você já é um usuário
um pouco mais avançado e manja de docker você pode utilizar docker para rodar contêiners Linux também dentro do Windows né docker ah é como se fosse uma máquina virtual não é a mesma coisa você tá rodando contêiners ali tá joia Mas é uma alternativa viável a única coisa é é se você não manja disso provavelmente Não é a melhor opção porque tem tem uma outra coisa para se aprender antes de estudar esse curso Então você não provavelmente não vai querer isso né É muita coisa de uma vez vai com calma não dá pra gente querer
aprender tudo da noite pro dia então se você já manja Maravilha pode usar se você não manja Talvez seja melhor deixar para um outro momento agora Diferentemente do docker ah rodar máquinas virtuais em ferramentas tipo Virtual Box ou alguma Similar provavelmente não é uma boa ideia porque elas são mais lentas e o wsl que eu comentei no começo desse vídeo aqui eu vou comentar daqui a pouco também é uma opção melhor então se você tiver usando Windows 8 7 ou mais antigas Essas são as opções eu te recomendaria instalar o Linux com o dual boot
para você rodar os dois lado a lado então você inicia o seu computador aparece lá o buun ou Windows 8 Por exemplo agora se você usa o Windows 10 ou Windows 11 Existe uma alternativa viável que é o wsl como eu comentei no começo da aula esse subsistema Linux é como se fosse rodar uma máquina virtual mas com o ambiente todo integrado com Windows porque ele é mantido pela própria Microsoft ele já vem embutido no Windows então roda de uma forma bem legal então na próxima vídeoaula a gente vai dar uma olhada em Como configurar
e instalar o wsl se essa foi a opção que você escolheu fala meus caros agora a gente Vai instalar as ferramentas que a gente vai precisar ao longo desse curso nessa aula aqui no Windows tá joia eu tô usando Windows 11 aqui mas os Paços devem ser exatamente os mesmos no Windows 10 Talvez esteja uma tenha uma diferenc ou outra aí no menu alguma coisa algum detalhe superficial mas no geral deve ser os mesmos Passos Beleza então vamos lá a primeira coisa que eu preciso fazer é abrir aqui as configurações né o antigo Painel de
Controle agora chama configurações Ah e vim aqui no Windows update e ter certeza que tá tudo atualizado tá isso aqui é um passo muito importante então você clica aí para verificar se H atualizações porque muitas vezes se a gente tenta instalar as ferramentas que a gente precisa num Windows que não tá atualizado ele dá umas diferenças de versões de bibliotecas internas algumas paradas muito doidas lá que não vão funcionar então Primeiro passo é sempre Garantir que a gente tá usando a última versão aí beleza Esse passo feito vou clicar aqui em fechar próximo passo é
Abrir novamente aqui o menu iniciar e digitar terminal às vezes aparece duas às vezes três opções aí mas o que a gente quer é o aplicativo Windows terminal é esse primeiro aqui só que em vez de abrir Ele diretamente a gente precisa clicar com o botão direito e selecionar essa opção aqui executar como administrador se a gente não fizer isso Aqui a gente não tem acesso suficiente para instalar o que a gente precisa instalar tá então ele vai com pedir uma confirmação vou clicar em sim e beleza a gente tem aqui o terminal né Deixa
eu fechar essa notificação zinha aqui tá bom ele abre por padrão o powershell e logo mais a gente vai est utilizando wsl Ou seja a gente vai abrir o terminal do bunto aqui dentro mesmo então olha só vou maximizar essa tela aqui e vou dar um zoom só para ficar mais fácil de você Visualizar Aí no vídeo e agora é o seguinte todos os comandos que eu vou digitar aqui tão aqui na descrição dessa videoaula para você não ter que ficar olhando no vídeo e copiando aí no seu computador é mais fácil só copiar de
lá tá bom Lá tem passo a passo tudo que eu vou digitar aqui eu vou colocar aqui embaixo beleza Ah e mais um detalhe tudo isso que a gente vai fazer nessa vídeoaula aqui você só precisa fazer uma única vez tá jo é isso aqui é só as Configurações iniciais as instalações de ferramentas de forma inicial Tá bom a menos que você sei lá formate seu computador alguma coisa Ah você só precisa fazer isso aqui uma vez Então vamos lá o primeiro comando é o wsl menos menos install tá bom isso aqui vai instalar o
wsl Ah vai demorar um pouquinho porque ele vai baixar aar umas coisas aqui vai baixar umas bibliotecas e depois vai baixar o primeiro Linux pra gente que é o buun então ele baixa aqui É uma versão não visual do bunto né então a gente vai ter basicamente um terminal daí quando a gente clicar na setinha aqui vai aparecer uma opção extra aqui que é o bunto E aí a gente pode até configurar o nosso terminal aqui para ficar para abrir o bunto por padrão tá bom isso aqui vai demorar um pouquinho porque ele vai baixar
Eu acredito com uns 200 ou 300 me e depois vai instalar também então vai demorar um pouquinho então eu vou acelerar o vídeo Aqui só pra gente não perder tempo tudo finalizado aqui e a última mensagem que apareceu aqui pra gente foi êxito na operação requisitada as alterações só terão efeitos depois que o sistema for reiniciado Tá bom então a primeira coisa que eu vou fazer é fechar o terminal e reiniciar o Windows clicar aqui em reiniciar E aí o bunto e o wsl como um todo assim vai est disponível tá bom aqui ele vai
mostrar não sei por que apareceu em inglês mas aqui vai mostrar Que tem algumas atualizações S sendo feitas então pode ser que demore um pouco mais que o comum para o seu computador então só pra gente não perder tempo eu vou acelerar esse vídeo aqui mais uma vez muito bem Windows reiniciado vou abrir aqui aqui novamente o terminal então vou digitar aqui terminal ah na verdade ó vou até fechar o menu iniciar aqui ele já abriu automaticamente o Punto aqui tá bom e é o seguinte esse Erro aqui eu já tinha testado aqui antes eu
vi que esse erro estava acontecendo e é um bug no wsl que a Microsoft ainda não corrigiu porém é fácil muito fácil resolver tá então aqui tá falando né que deu esse erro e tudo mais pressionando uma tecla para continuar eu vou apertar e ele fecha esse terminalzinho do mundo que tava aberto tá bom então o que a gente precisa assim se você não vê esse erro Maravilha pode pular essa parte se você estiver vendo esse erro assim como Eu acabei de ver você vai fazer o seguinte você vai abrir o terminal tá inclusive Olha
só eu vou clicar com o botão direito aqui e vou colocar fixar na barra de tarefas aí o terminal fica aqui embaixo já tá bom vou até colocar ali antes do do vest code aqui ó tá bom fica mais fácil pra gente ficar abrindo ele toda hora tá Ah para resolver esse problema é o seguinte a gente vai digitar wsl menos menos set default version espaço um tá bom Por quê Porque A gente tá utilizando wsl versão 2 e por algum motivo não tá funcionando na versão dois mas a gente simplesmente roda Esse comando aqui
ele vai voltar pra primeira versão é super rapidinho e aí funciona ele finaliza a instalação e aí a gente volta pra versão dois e tudo funciona perfeitamente eu fiz vários testes aqui tudo funciona perfeitamente Deixa eu ver se eu consigo abrir ubunt é ainda não aparece aqui então eu vou fazer o seguinte eu vou fechar esse Terminal e vou abrir uma aplicação chamada Ubunto essa aqui é a única vez que a gente precisa fazer isso depois a gente consegue rodar direto lá do terminal mesmo então vou abrir aqui ele volta para aquela tela acho que
eu não consigo dar um zoom nesse texto aqui hum mas enfim ele vai demorar um tempinho deixa eu ver se consigo dar um zoom enquanto isso ah consigo ó Ok beleza ficou mais fácil para ver aí no Vídeo nesse momento aqui ele vai me pedir um novo Unix username né é o login que a gente vai usar no buun Tá bom então eu vou usar aqui Lucas caton e aí ele vai pedir uma senha Então vou digitar uma senha aqui ele não aparece na tela tá mas eu tô digitando aqui e ele pede para eu
digitar mais uma vez tá joia Então beleza Olha só password Opa rolou aqui cadê cadê cadê ah password updated successfully Ou seja a senha foi atualizada com sucesso e ele Mostra mais algumas informações mostra a versão do bunto se você tiver usando uma versão mais nova não tem problema Inclusive a próxima versão 202204 já tá próxima de sair então mesmo se você tiver usando a versão 23 24 não tem problema pode usar sempre a mais nova que não tem problema ah e pronto depois quando chegou aqui a gente pode fechar esse terminal e voltar lá
pro nosso Windows terminal por padrão aqui ele tá abrindo o Windows powershell tá mas se Eu clicar na setinha o Ubunto já aparece aqui então eu posso clicar aqui para abrir o Ubunto agora ten duas Abas vou fechar essa primeira mas a gente também pode configurar para ele abrir o bunto por padrão muito simples eu vou clicar aqui na setinha vou vir em configurações e aqui onde tá escrito perfil padrão eu mudo aqui para o bunto tá bom só isso clica aqui em salvar e aí quando eu fechar tudo e abrir novamente ele já abre
o bunto por padrão tá bom isso aqui Só para facilitar um pouquinho se você por algum motivo preferir o Power Shell como padrão não tem problema só não mudar essa configuração bom agora que tá tudo funcionando a gente pode voltar o wsl pra versão do então eu vou abrir aqui novamente o Power Shell é a única vez que a gente vai precisar do Power Shell vou até fechar esse Ubunto aqui para não dar nenhum conflito nem nada vou rodar aqui ah novamente aquele comando tá wsl menos menos set default Version e digitar dois tá aqui
o que eu fiz é o seguinte eu só apertei a setinha para cima e ele completou né ele tem todos os comandos aqui tem um histórico dos Comandos que a gente já rodou Então eu só fui com a setinha para cima e para baixo até encontrar E aí eu apaguei o um digitei o dois e apertei enter para ele voltar pra versão dois então ele fala aqui para obter informações tudo bem o que interessa mesmo é a operação foi concluída com êxito então beleza vou Abrir aqui ah vou voltar aqui pro bunto né então beleza
tudo certo agora a gente já está rodando no wsl2 show de bola agora que a gente tem o bunto rodando aqui dentro do nosso Windows a gente pode de fato começar a instalar as ferramentas que a gente precisa Então o primeiro comando que eu vou rodar Alias deixa eu maximizar novamente o terminal e dar um zoom aqui para ficar mais fácil de vocês visualizarem aí o primeiro comando é esse sudo APT update Lembrando Que todos esses comandos estão aqui na descrição depois sudo APT upgrade tudo junto tá bom digitei lá ele vai pedir a senha
digita senha aperta o enter e ele vai começar a instalar isso aqui demora um tempinho então eu vou novamente acelerar esse vídeo quando chegar nesse ponto aqui ele vai falar né que ah depois dessa operação 347 MB de ah espaço adicional em disco vão ser usados tá bom esse esse tamanho aqui pode variar dependendo da versão que você Estiver usando Mas a gente pode só apertar e digitar Y né de Yes e pressionar enter para ele continuar pronto tudo instalado aqui e o próximo comando que a gente precisa rodar é esse gigantão aqui eu não
vou nem tentar ler Tá bom mas o que a gente tá fazendo aqui instalando várias bibliotecas do Ubunto mais uma vez o comando tá aqui embaixo para você não ter que ficar copiando e colando aí do vídeo Tá bom é só digitar Esse comando e aptar Enter ele vai mais Uma vez falar que vai usar um pouco mais de espaço em disco vou colocar Y aqui e apertar enter e mais uma vez vou acelerar o vídeo pra gente não perder tempo show de bola tudo instalado a próxima ferramenta que a gente vai instalar aqui é
o adsf pra gente instalar eu vou abrir o meu navegador e vou buscar no Google a dsf VM tá vai ter um link aqui embaixo também para ficar mais fácil deixa eu colocar aqui para não traduzir Tá mas é Esse site aqui que a gente tá procurando tá na verdade esse segundo aqui ó adsf vm.com aqui tem a documentação do asdf asdf é uma ferramenta pra gente gerenciar versões de de interpretadores né de linguagens de de de frameworks de uma série de coisas tá bom você não precisa se preocupar muito com isso agora mas ele
que a gente vai usar para caso a gente instale mais de uma versão do Ruby mais de uma versão do node do sei lá de outras coisas se você tiver aí Também tá joé então abri o site aqui né e cliquei e vou clicar aqui em get started tá Ah E na verdade a gente só vai olhar no site aqui pra gente descobrir qual que é a versão mais atual então eu vou rolando aqui para baixo na verdade aqui ó me primeiro passo que é instalar as dependências essas duas coisas aqui já estavam lá naquele
comando gigantão lá que a gente rodou então a gente pode pular ess passo porque a gente já fez o segundo passo Que é de fato baixar o asdf a gente vai rodar Esse comando aqui tá bom e a versão que eu tô usando aqui nesse momento da gravação dessa aula é a 0.9.0 só que eles sempre lançam versões novas então há uma grande chance de quando você tiver assistindo essa videoaula já existi uma versão mais nova então é importante que você abra o site veja a versão mais nova e Copie de lá a versão em
vez de copiar o que eu vou deixar aqui na descrição ou mesmo o que Tá aparecendo aqui no vídeo Tá bom então vou copiar esse comando vou voltar lá no terminal e vou colar Tá bom para colar nesse terminal apesar de ser muito um atalho muito esquisito eu clico com o botão direito ah na verdade eu cliquei para aparecer aquele menuzinho né de de copiar colar e tal mas ele ele simplesmente ao ao clicar com o botão direito ele já cola aqui para mim então vou só apertar enter e pronto super rápido esse passo o
segundo passo é Rodar Esse comando aqui que também tá aqui na descrição ele também é muito rápido na verdade eu vou rodar um outro comando aqui que é bem parecido tá bom esse o que a gente tá fazendo aqui é o seguinte a gente tá adicionando Esse comando e esse outro comando aqui para dentro do nosso Bash RC Bash RC é um arquivo que fica na raiz na raiz não desculpa na na nossa pasta de usuário aqui do bunt para que ele Execute toda vez que a gente abrir um novo terminal Então ele vai deixar
o sdf disponível pra gente toda vez que a gente abrir um terminal pra gente testar eu preciso abrir um outro terminal ah justamente para ele carregar essas informações novas então vou clicar aqui no mais tá e vou fechar o meu terminal antigo e aí pra gente testar aqui o sdf foi instalado corretamente eu vou digitar o comando asdf Men V tá menos V de de versão de version em inglês opa deu um erro aqui na verdade desculpem não é Menos V é menos menos version tem que ser explícito assim tem algumas ferramentas que permitem a
gente colocar Traço v o sdf não é uma delas Tá bom então ele tá falando aqui versão 0.9 né Depois tem um hash aqui na frente Mas o que importa mesmo é garantir que foi a mesma versão que aparece aqui no site Tá bom então agora eu posso fechar o site e continuar só aqui direto no terminal agora a próxima ferramenta que a gente vai instalar é o Ruby e a gente vai usar O sdf para instalar o Ruby e o sdf tem alguns plugins para que a gente Trabalhe com diferentes linguagens diferentes frameworks tá
bom e ele tem um plugin oficial tanto pro Ruby quanto pro node que é a próxima coisa que a gente vai instalar então eu vou rodar aqui o comando asdf espaço plugin traço add e o nome do Plugin que é Ruby tá bom isso aqui vai fazer ele baixar esse plugin e instalar é bem rapidinho ó demorou um segundo 2 segundos talvez e o próximo Passo sim que vai demorar bastante porque a gente vai baixar o código do Ruby compilar então ele vai fazer uma série de coisas aqui e aí ele demora um pouco mais
agora pra gente saber qual versão do rubik a gente tem que instalar eu vou abrir novamente o meu navegador e vou abrir o site do Ruby tá bom para para ficar mais fácil de achar o site Eu geralmente jogo no Google assim Ruby L tá tá E aí ele me mostra aqui porque o site é muito parecido com isso é Ruby Trol lang.org vou deixar aqui na descrição para ficar mais fácil também e é importante você não copiar o que eu vou digitar aqui e sim usar a versão que tá lá no site tá aqui
eu posso ver um resumo acho que isso aqui é tipo um blog deles né eu posso ver que a última versão lançada foi a 3.1 mas no momento que você tiver assistindo essa aula Pode ser que Já exista uma versão mais nova e não tem problema na verdade é importante que você sempre utilize a versão mais Recente então ah uma outra forma de descobrir isso aqui também e é a forma mais confiável eu diria é vindo aqui na abinha de downloads porque ele mostra bem explicitamente né a versão estável é a 3.1.0 E por que
que a gente precisa dessa informação pelo seguinte vou voltar aqui no terminal e a gente vai digitar um comando que vai fazer o asdf né na verdade esse Plugin do asdf instalar o Ruby então eu vou rodar aqui Asdf espaço install espaço Ruby espaço a versão que a gente encontrou lá no site que é a tr 3.1.0 Tá bom vou apertar enter aqui esse passo aqui vai demorar um pouquinho tá porque ele vai baixar vai compilar e tudo mais então eu vou mais uma vez acelerar esse vídeo pra gente não perder tempo pronto tudo instalado
Demorou bastante tempo então se o se tiver demorando aí também não se preocupa não entre em desespero achando que tá travado é porque realmente demora Um pouquinho mesmo tá agora o seguinte eu vou apertar a setinha para cima para repetir o último comando e eu vou trocar a palavra install pela palavra Global tá bom isso aqui vai definir essa versão do Ruby globalmente no meu sistema então toda vez que eu digitar agora Ruby menos menos version el opa ele me mostra qual que é a versão atual E no caso eu tô usando de fato a
versão 3.1 tá bom Lembrando que se você tiver visto uma versão mais nova lá no site por favor Use a versão mais nova tá joia inclusive se eu fechar esse terminal né e abrir uma nova aba deixa eu fechar o antigo e digitar Ruby menos menos version ou simplesmente menos V ele me mostra a versão que a gente instalou deixa eu dar dar um zoom aqui novamente a pasta atual que a gente tá é essa Mount C users Lucas caton essa pasta aqui vou até tirar meu Terminal da de tela cheia né essa pasta aqui
é a minha pasta aqui do do meu usuário do Windows inclusive se Eu usar o comando CD que é o comando que a gente usa para trocar de diretório e acessar o meu desktop tá o que eu fiz aqui foi apertar Tab que ele completa o comando e apertar enter eu poderia por exemplo sei lá digitar toou arquivo.txt olha só ele vai criar um arquivo aqui na área de trabalho para mim tá então Ou seja eu tô usando o bunto mas eu tô alterando os arquivos do meu sistema Windows então um make inception aí né
a gente tá usando a gente pode tanto do Linux acessar o Windows e do Windows acessar o Linux também eu já te mostro como é que faz isso daqui a pouquinho tá então eu vou apagar esse arquivo aqui tá Ah ele vai sumir aqui do meu desktop beleza e seguinte só que a gente não vai colocar os projetos dentro da partição do não é nenhuma partição dentro das pastas do Windows o que a gente vai fazer é digitar CD vou inclusive maximizar minha janela aqui dar um zoom para ficar mais fácil de visualizar Ah Eu
vou usar o comando CD que é para trocar de diretório Eu vou acessar o diretório ti tá esse diretório ti é o meu home Tá bom mas não é o home do Windows é o home do Linux por isso que apareceu um ti aqui e aí eu vou criar uma pasta chamada projetos ou projects tá bom a gente usa esse comando mkd vou chamar colocar em inglês aqui mesmo projects tá bom E aí eu posso acessar esse diretório usando CD projects tá Ah aperto enter e beleza aqui a gente vai Colocar todos os nossos projetos
só que antes da gente criar o primeiro projeto aqui eu queria te ensinar como é que você acessa essa pasta pelo Windows e é importante você fazer isso se você quiser usar por exemplo vs code né ah ou algum outro editor aí então é o seguinte a gente vai abrir aqui o explorador de arquivos do windows E aqui nessa barra deixa eu até maximizar aqui na barra né onde a gente tem o caminho completo dos arquivos se eu clicar aqui na parte Branca eu consigo digitar alguma coisa então Olha só eu vou digitar barra invertida
duas vezes wsl e cifrão Quando eu fizer isso daqui ele vai mostrar uma espécie de de de pasta na rede tá é como se o bun e o Windows fossem dois computadores separados né porque na verdade é meio que uma virtualização que o Windows tá fazendo aqui então eu consigo clicar aqui na pasta Ubunto e eu vejo todos os meus arquivos aqui do Ubunto tá bom E aí aqui dentro desses Arquivos dentro dessa lista de arquivos Eu tenho minha pasta de home e aqui dentro o nome do meu usuário e aí lá dentro Eu vou
ter todos os arquivos do bunto inclusive o que eu acabei de criar que é essa pastinha de projects tá então vou clicar duas vezes na verdade é o seguinte deixa eu voltar um nível acima eu vou clicar com o botão direito nessa pasta aqui só para ficar mais fácil e vou marcar essa opção fixar no acesso rápido Eu particularmente gosto muito de Ter isso aqui de de de acesso fácil porque se eu fechar aqui sem querer ou se eu precisar abrir no vest code alguma coisa eu posso simplesmente clicar aqui vou ali no atalho e
pronto já vejo a pasta lá né Essa pasta vazia mas se eu se eu criar por exemplo um outro arquivo aqui Lucas T XT por exemplo e voltar lá no explorador de arquivos esse arquivo deveria aparecer aqui às vezes demora um tempinho Ué não criei deixa eu ver não o arquivo tá lá que aconteceu Deixa eu voltar e abrir de novo é tá lá às vezes o Windows demora um pouquinho para aparecer Tá bom mas inst lá sim eu só acho que eu não consigo apagar os arquivos aqui direto pelo Windows Ah não consigo sim
Então acho que eu consigo apagar se eu voltar lá e mandar visualizar os arquivos ele vai falar que não tem nenhum arquivo beleza Ah agora por que que isso facilita porque é o seguinte deixa eu minimizar o terminal e minimizar o explorador de arquivos eu Vou abrir o vs code aliás Desculpa deixa eu criar uma pasta aqui vamos fingir que a gente tem um projeto aqui ã novo nova pasta vou chamar de projeto um por exemplo e aqui dentro eu vou criar um novo documento de texto vou chamar de ah primeiro arquivo alguma coisa assim
tá só de exemplo quando eu tiver lá no ves code eu posso vir aqui em file Open folder tá E aí aqui dentro do do V code a gente também tem aquele atalho dos Projects né então eu venho aqui clico em project e clico em selecionar pasta dessa forma aqui ah ah ele vai pedir essa confirmação de se a gente confia nessa pasta eu vou mandar aqui ele sempre ah com confiar nos arquivos dessa pasta projects então clico Marco checkbox e clico em Yes tá bom ele tá me insistindo aqui para instalar o pacote em
português mas eu não quero isso e agora sim a gente tem esse arquivo aqui né a gente poderia editar alguma coisa Aqui tá bom ah e assim que você vai fazer para abrir os seus projetos aí no vest code Ah se eu não me engano na hora da instalação do vest code você também pode marcar uma opção que facilita para você clicar com o botão direito e aparecer uma da mesma forma que tá aparecendo aqui ó abrir no terminal do Windows apareceria uma opção abrir no vs code Mas você tem que marcar sua opção quando
você tá instalando o vs code se você não não marcou acho que você pode Desinstalar e instalar de novo daí aparece essa opção o que você achar mais fácil fala meus caros vamos instalar Então as ferramentas que a gente vai precisar ao longo do curso as ferramentas de desenvolvimento vamos instalar instalá-las aqui no ubunt Beleza seguinte primeira coisa que a gente vai fazer é abrir o terminal então eu vou clicar nesse botãozinho aqui que abre todas as aplicações e vou digitar terminal Beleza vou clicar aqui e ele Abre o terminal aqui pra gente ah eu
vou fazer inclusive uma coisa Extra eu vou clicar com o botão direito aqui e vou adicionar pros favoritos dessa forma quando a gente fechar ele já fica aqui mais prático pra gente abrir então vou clicar aqui tá H vou aumentar um pouquinho a fonte só para ficar mais fácil de visualizar tudo que eu vou fazer aí e antes de mais nada eu vou clicar aqui na no menu do terminal e vou abrir as Preferências se eu tiver em português obviamente vai ter escrito preferências em vez de de preferences aí eu vou aqui nos profiles o
seu vai est escrito perfil se o seu tiver em português e aqui esse unand eu acho que é sem nome ou alguma coisa que aparece assim é nessa opção que a gente precisa vir depois na aba aqui Command ou comando em português e marcar essa primeira opção Run Command as a login Shell em português essa opção eu fiz até uma Colinha aqui chama Executar comando como Shell de sessão tá joia Marca essa opção fecha as preferências e Beleza vou até maximizar aqui para ficar mais fácil e a primeira coisa que a gente precisa fazer é
Rodar Esse comando sudo appt update e sudo appt upgrade dessa forma aqui a gente atualiza todos os pacotes aqui do nosso bun beleza isso aqui é importante pra gente ah forçar O bunto para instalar as versões mais atuais das Ferramentas que a gente vai precisar Aqui ele vai perguntar né se eu quero continuar ele tá falando que depois dessa operação 735 MB adicionais vão ser baixados né aqui o meu é bastante porque essa aqui é uma instalação limpa do bund como vocês podem ver eu não tenho nada Ela acabou de é uma instalação do zero
mesmo tá jo então por isso que vai ter bastante coisa para atualizar aqui e eu vou acelerar o vídeo aqui só pra gente não perder tempo beleza finalizou as Atualizações aqui e agora vou rodar um outro comando Esse comando gigantão aqui que a gente vai instalar todas essas bibliotecas aqui lembrando que todos esses comandos que eu tô executando estão aqui na descrição dessa vídeoaula e também tudo isso aqui que a gente vai fazer você só precisa executar uma vez depois que a gente terminar a instalação nada mais isso aqui vai ser necessário você pode começar
codando já de uma vez Beleza então vou apertar enter aqui ele Vai me falar novamente que mais espaço adicional Vai ser necessário porque agora a gente tá instalando coisas novas então aqui vai demorar mais um pouquinho então eu vou acelerar mais uma vez o vídeo só pra gente não perder tempo na verdade eu nem precisei acelerar o vídeo porque já acabou foi muito rápido agora o seguinte vou limpar o meu terminal aqui e antes de eu continuar eu vou abrir o meu navegador e eu vou buscar aqui nossa deixa eu fechar essas coisas Aqui porque
é a primeira vez que eu tô abrindo o flx Ah aqui no Google né eu vou buscar por asdf VM tá isso aqui vai abrir Não é esse primeiro aqui esse segundo site ó asdm desculpa asdf vm.com ah o asdf é uma ferramenta pra gente gerenciar versões das Ferramentas que a gente precisa Então Ruby node e outras coisas a gente pode ter mais de uma versão instalada no mesmo computador e aí a gente usa essa ferramenta aqui para usar Essas diferentes versões Ah e O legal é que sim você só precisa aprender uma ferramenta para
instalar todas elas Então olha só eu vou abrir o site aqui né tô na página inicial vou clicar em get started Ah o primeiro passo é instalar as dependências então como eu tô usando o bunto aqui né e assim essa agora se você tiver usando outra distribuição você pode seguir a outras instruções aqui tá bom mas para quem tá usando bunt ou derivados do bunton ou Mesmo Debian é esse primeiro aqui então APT install cur e Git mas isso aqui a gente já rodou então a gente pode ignorar completamente esse primeiro passo e pular aqui
para para esse segundo passo né que é para baixar de fato o sdf tá então eu vou copiar esse primeiro comando aqui e aqui é o seguinte eu não quero que você simplesmente Copie o comando aqui da descrição quero que você abra o site aí e Copie de fato Esse comando porque essa Aqui é a versão do momento que eu tô gravando essa vídeoaula isso aqui eles atualizam sempre então pode ser que se você tiver assistindo essa vídeoaula Daqui a uma semana já esteja Já exista uma versão mais nova e é sempre importante você ah
utilizar a versão mais atual tá joia vou voltar lá para terminal vou colar ess Esse comando e é rapidinho né ele só vai basicamente clonar esse repositório e agora a gente precisa adicionar o sdf pro nosso PF Para isso eu vou rodar esses dois comandos aqui tá eh Lembrando que tudo isso que eu tô digitando aqui tá na descrição aqui do vídeo exceto Esse comando aqui porque aqui a gente tá especificando a versão então eu prefiro que você vá lá no site e pegue a versão mais atual agora esses dois aqui vão ser exatamente os
mesmos e basicamente o que a gente tá fazendo é lendo o o os arquivos do sdf né Toda vez que a gente carrega o nosso terminal por isso que a Gente tá colocando lá no arquivo best RC se você não manja disso tudo que eu tô falando não se preocupa muito com isso por enquanto é só uma forma da gente carregar o sdf toda vez que a gente abre o terminal então para garantir que isso aqui funcionou eu vou fechar o meu terminal vou até fechar o Firefox aqui também Ah tá falando de uma atualização
de software aqui eu vou ignorar Por enquanto vou abrir novamente o terminal deixa eu dar um zoom aqui beleza e agora Pra gente garantir que o sdf tá instalado com sucesso eu vou rodar o comando asdf espaço traço traço Version para ele mostrar pra gente a versão que foi instalada então no caso aqui tá falando né 0.9.0 e tem um hash aqui na frente que a gente pode ignorar mas isso aqui já significa que tá instalado com sucesso agora a gente vai instalar o Ruby e a gente vai usar justamente o asdf para instalar o
Ruby o jeito que a Forma Como o asdf funciona é através de plugins Então a primeira coisa que a gente precisa fazer é adicionar um Plugin do Ruby aqui dentro ah do sdf e para isso a gente vai usar o comando asdf espaço plugin traço AD e o nome do Plugin que nesse caso é Ruby tá bom isso aqui ele vai clonar o O plugin e vai colocar na pasta certa já pra gente e agora sim a gente vai de fato instalar o Ruby com o comando asdf install Ruby e mais aqui a versão atual
do Ruby Pat Como é que a gente faz para descobrir a versão atual do Ruby agora eu quero de novo que você não copia aqui a descrição quero que você abre no seu terminal eu vou digitar aqui Ruby Lang no Google tá só PR achar mais fácil o site oficial da linguagem de programação Ruby então vou clicar nesse primeiro link aqui tá o site é Ruby leng Ruby trl.org eu vou deixar a descrição e o link aqui na descrição também para ficar mais fácil Ah deixa eu fechar isso aqui e aqui é o Seguinte né
aqui ele tem tipo um resumo dos últimos ah posts lá do blog eu acho mas aqui já tá falando né Qual que é a última versão Mas a forma mais confiável da gente descobrir qual que é a versão mais atual é vindo aqui na aba de downloads e ele vai falar pra gente né o o o a versão estável atual é a versão 3.1.0 então eu vou voltar lá e vou completar o nosso comando aqui com essa versão então ficou a sdf install Ruby 3.1.0 beleza e aí ele vai compilar ele Vai baixar O código
vai compilar vai fazer umas coisas aqui esse passo geralmente demora um pouquinho então não pense aí que seu computador travou ou aconteceu alguma coisa é Porque de fato Demora mesmo então mais uma vez eu vou acelerar o vídeo aqui só pra gente não perder tempo show bola terminou de instalar aqui e agora eu vou fazer o seguinte eu vou usar a setinha aqui do teclado para repetir o último comando né se você não tá muito familiarizado aqui O terminal você pode apertar setinhas para cima e para baixo para repetir os comandos Tá eu vou voltar
aqui no último que a gente rodou vou ir com a setinha pra esquerda agora para poder apagar a palavra Install e vou substituir por global é isso aqui faz com que a versão ah 3.1 do Ruby 3.1.0 do Ruby seja a padrão a partir desse momento isso significa que quando a gente rodar Ruby menos V ou ainda menos menos version né Dá no mesmo ele vai mostrar pra gente a Versão atualizada é menos V funciona também tá então ele vai mostrar desculpa a versão atual que tá instalada a versão Global mesmo se a gente fechar
o terminal e abrir de novo ele vai continuar mostrando essa versão deixa eu dar um zoom aqui de novo tá joia fala meus caros Estamos aqui no Mac OS e vamos instalar as ferramentas de desenvolvimento aqui no sistema da Apple seguinte primeira coisa que a gente precisa fazer é abrir o terminal e no Macos Existem várias formas da gente abrir uma aplicação então uma delas é rodando o launchpad E aí a gente digita aqui terminal Opa terminal beleza ele já aparece ali ou ainda você pode vir aqui na pastinha ERS e o terminal tá aqui
ou ainda Você pode abrir o Finder applications ã utilities o terminal tá aqui dentro ou ainda a minha forma favorita que é pelo Spotlight E aí você vem aqui digita terminal e aperta Enter beleza Ah deixa eu aumentar um pouquinho A fonte porque porque senão fica difícil de ver no vídeo o terminal do Mac OS por padrão ele é branco que é meio incomum Ah eu utilizo um outro terminal deixa eu até abrir o Safari aqui eu utilizo um outro terminal chamado ITM 2 se você preferir utilizar ele fique à vontade é um terminal bastante
ah poderoso bastante flexível tá bom só para manter essa videoaula simples eu não vou utilizar ele eu vou utilizar o terminal padrão do Mac Mas provavelmente é uma Boa opção aí instalar esse outro terminal e ele funciona da mesma forma assim não tem absolutamente grandes diferen em termos de uso de qualquer forma se você preferir um terminal escuro eu acho que dá pr vir aqui nas preferências selecionar Esse pro não funcionou deixa eu ver aqui pro Ah ele abriu um outro terminal legal beleza então a gente pode fechar isso aqui eu acho que a partir
de agora quando a gente fechar deixa eu fechar aqui abrir Novamente Não ele voltou a ser Branco acho que eu tenho que abrir as configurações ah default eu acho que é isso agora sim a partir de agora quando fechar e abrir um novo ele vai sim abrir ele preto beleza Ah deixa eu aumentar a fonte aqui então é o seguinte a primeira coisa que a gente precisa fazer é instalar o home brew deixa eu abrir uma nova arbra aqui e fechar essa aqui do eterm eu vou buscar por homebrew aqui no Google e a gente
vai abrir esse primeiro Site aqui tá é o br. SH essa esse home brill é como se fosse um gerenciador de pacotes tá bom que o macos não tem um por padrão assim como o bunto assim como a maioria das distribuições Linux Hã o macos não tem um por padrão então é bastante comum desenvolvedores utilizarem o home RW para ser bem sincero eu não conheço ninguém que não que seja desenvolvedor que seja né programador e não utilize o homeb então ele tem esse comando aqui esse primeiro Comando aqui ó tá mostra bem na na tela
inicial assim do site é só clicar aqui para copiar E aí eu volto lá no terminal e colo Esse comando ele vai pedir a minha senha Vou digitar aqui não vai aparecer no vídeo mas eu já digitei apertei enter tá E aí ele vai mostrar algumas coisas e no final pede assim pra gente apertar return né que também é conhecido como enter para continuar então eu pressiono o enter aqui e ele vai instalar tudo que precisa assim Todas as dependências Ah pra gente poder depois instalar ferramentas de desenvolvimento enquanto ele instala aqui duas coisas importantes
uma tudo isso que a gente vai tudo que a gente vai fazer nessa videoaula você só precisa fazer uma única vez então depois que a gente terminar aqui você já vai est pronto para sair codando nas próximas vezes e a segunda coisa é que todos os comandos que eu tô digitando aqui então na descrição dessa videoaula Para você não precisar ficar olhando na videoaula e copiando no seu computador que seria mais difícil é mais fácil copiar né com texto mesmo que tá aqui na descrição aqui embaixo eu acho que ainda vai demorar um pouquinho aqui
para ele terminar essa instalação Então o que eu vou fazer é acelerar esse vídeo só pra gente não perder tempo show de bola tudo instalado aqui agora o que a gente precisa fazer tá até escrito aqui né nesse next steps ou seja Próximos passos é Rodar esses dois comandos aqui no terminal para adicionar o home rill pro nosso path então é o seguinte eu vou copiar esse comando aqui ó do jeitinho que está aqui vou copiar e vou colar eu não vou colocar esse comando aqui na descrição Provavelmente porque aqui olha só tem o meu
usuário Então você precisa fazer com o seu usuário então copia aí do jeitinho que apareceu na sua tela aperta Enter e o segundo comando aqui também tá vou Copiar Opa Faltou um pedacinho vou copiar E aí para colar eu posso clicar em qualquer lugar na H que eu colo ele vem aqui para baixo tá então apertei enter ele rodou direitinho então o home já tá em instalado agora eu vou minimizar o terminal vou voltar aqui pro Safari e vou fazer uma nova busca por asdf VM ou então vou deixar o link aqui embaixo também não
é esse primeiro aqui na verdade é mas esse aqui é o repositório no github não é o que a Gente quer o que a gente quer é esse segundo aqui tá esse site asdf vm.com que é o site oficial então nessa tela inicial aqui a gente clica em get started tá a gente vai instalar Deixa eu explicar na verdade primeiro Esse sdf é uma ferramenta que a gente utiliza para instalar várias versões de diferentes de ferramentas de desenvolvimento então por exemplo a gente vai precisar do Ruby do node de algumas outras coisas e a gente
vai utilizar o sdf para instalar elas Então significa o seguinte se a gente instala uma versão x hoje E daqui a um mês lança uma versão nova a gente pode só instalar a versão nova sem perder a antiga para que os nossos projetos que estejam utilizando versões antigas continuem funcionando e aí enfim a gente consegue é bastante flexível a gente consegue manter cada projeto em versão diferente e tal e se a gente instalar o Ruby o node seguir indo a diretamente as instruções dos Sites oficiais de cada um Deles a gente não tem essa flexibilidade
para trabalhar com versões diferentes Outra vantagem de usar sdf que é simplesmente a mesma sintaxe dos comandos para todas as ferramentas Ruby node etc então é mais fácil Ah não decorar porque eu eu pessoalmente mesmo não decoro nada disso sempre olho aqui na documentação para instalar mas a gente vê o mesmo padrão né então fica mais fácil tá jo é então vamos lá né vou seguir aqui o os passos tá o primeiro Deles é instalar as dependências no caso do macos é o homebrew isso a gente já fez tá joia as aqui tá falando né
as dependências vão ser automaticamente instaladas pelo homebrew beleza segundo passo é baixar o asdf Então como a gente tá utilizando o home brill eu posso simplesmente copiar esse comando aqui voltar lá no terminal vou limpar minha tela tá vou digitar Clear aqui para limpar e vou colar Esse comando então brill install asdf enquanto tudo tá Sendo instalado aqui eu vou voltar lá pro Safari pra gente ir pro próximo Pass aqui que é esse que é de fato a instalação né do asdf Ah aqui por mais que tem alguns macos aqui tá utilizando B que era
usado em versões antigas do Mac OS as versões mais atuais utilizam zsh que estão aqui embaixo Aqui no final Então a gente tem aqui o zsh e o home que é o mais indicado para versões mais novas então eu vou clicar aqui tá Ah tem esse comando deixa eu ver um botãozinho Para copiar não tem tudo bem vou selecionar aqui e copiar agora voltar lá no terminal olha só já tinha terminado o passo anterior né então eu vou copiar esse novo comando que a gente copiou de lá e apertar enter show de bola tudo instalado
pra gente garantir que tá tudo realmente funcionando eu vou fechar o meu terminal então vou digitar Exit Inclusive eu vou aproveitar e vou marcar aqui para manter o terminal no Doc tá E aí você coloca na posição que Você quiser tá bom ah deixa eu dar um zoom aqui de novo agora vamos testar se de fato a nossa instalação do sdf funcionou né E para isso a gente pode rodar o comando asdf menos menos version dessa forma aqui aí eu aperto enter e ele me mostra a versão mais atual eles sempre estão lançando versões novas
então não se preocupa se o seu tiver com uma versão mais alta aí Muito provavelmente vai est e tá tudo bem Beleza pode inclusive isso vale para Todas as ferramentas que a gente vai instalar aqui hoje pode sempre utilizar a versão mais nova tá joia Ah outra coisa por que que eu tô rodando esse version né para garantir que a instalação tá sendo feita porque se alguma coisa deu errada a gente vai descobrir nesse momento Então antes antes de ir pro próximo passo sempre roda isso aqui para garantir que a versão Ah que alguma versão
né foi instalada não é essa versão Especificamente mas a gente quer só ter certeza que tá funcionando beleza agora sim vamos usar o sdf para instalar alguma coisa Alguma ferramenta de Fato e a primeira ferramenta que a gente vai instalar é o Ruby Ah eu vou limpar minha janela aqui só para ficar mais fácil de visualizar então agora sim a gente consegue começar a instalar as ferramentas que a gente precisa aqui no sdf Ah o sdf funciona através ele ele tem ele estende as funcionalidades dele Através de plugins Então a primeira coisa que a gente
vai fazer é Rodar Esse comando sdf plugin add espaço Ruby Ou seja a gente vai adicionar um plugin de Ruby Beleza daqui a pouco a gente vai fazer a mesma coisa pro nodejs tá já instalou aqui e agora sim a gente de fato vai usar esse plugin para instalar uma versão do Ruby para fazer isso aí a gente roda o comando asdf install Ruby que é o nome do Plugin mais aqui a versão do Ruby só que eu não Quero que você Copie o que eu vou digitar aqui porque versões do Ruby estão sempre ah
sendo lançadas e eu quero que você utilize a última versão disponível então para isso a gente vai voltar lá no navegador eu vou abrir uma nova aba vou até fechar essa aba anterior aqui e a gente vai digitar Ruby Lang tá só para ficar mais fácil de achar o site oficial do Ruby que é esse aqui ó Ruby leng desculpa Ruby trol lang.org vai tá aqui na descrição também Então quando a gente abrir aqui a gente vai na aba downloads e aqui e bem aqui no no comecinho ele mostra qual que é a versão estável
atual tá joia no momento da gravação dessa aula aqui a versão mais atual é a 3.1.0 então eu vou copiar essa versão aqui e vou colar lá no terminal Lembrando que pode ser que seja uma versão diferente aí para você e tá tudo bem pode usar a versão mais atual Então Vou voltar lá no terminal e vou colar aqui opa ele colou errado deixa eu colar com o mouse aqui que acho que daí não tem problema Beleza então aperto o enter e agora sim ele vai baixar o Source né o código fonte do Ruby vai
compilar vai instalar as dependências vai fazer um monte de coisa aqui inclusive Esse passo aqui costuma demorar um pouquinho então não se preocupe achando aí que seu computador travou alguma coisa até porque ele tá mostrando aqui na barra de Título né várias coisas mudando então dá para ver que realmente não tá travado mas demora um pouquinho então não se preocupe com isso eu vou só acelerar o vídeo aqui pra gente não perder tempo beleza instalação do Ruby finalizada agora para testar a gente pode rodar o comando Ruby menos V tá joia Opa Opa tá errado
Ah tem um detalhe muito importante que eu esqueci e eu não quero que vocês esqueçam é o seguinte antes de mais nada deixa eu limpar minha tela Aqui só para ficar bem claro o que eu vou fazer quando a gente aperta a setinha aqui no terminal setinha para cima e para baixo do seu teclado você tem acesso a todo o histórico de comandos que você já rodou tá então Olha só eu vou rodar eu vou eu vou apertar a setinha até encontrar Esse comando de instalação do Ruby aí eu vou vir aqui e vou trocar
a palavra install por Global dessa forma aqui a gente tá falando pro nosso ambiente para usar essa versão do Ruby a versão mais nova Como a versão global no sistema todo então agora se eu rodar o comando Ruby menos V não funcionou vamos reiniciar o terminal paraa ver se não sei por algum motivo Ele não não não pegou a versão nova ainda vamos dar um Exit aqui e abrir uma nova aba aqui né ah deixa eu dar zoom aqui de novo ã e agora sim eu vou rodar Ruby menos v e agora sim beleza Tá
joia então às vezes é só uma questão de re Inicial Terminal mesmo para ele identificar a versão nova beleza Olá vamos Então finalmente criar o nosso primeiro programa Bom eu tô utilizando o macos aqui mas o procedimento é idêntico tanto no Windows quanto no Linux tá então eu tô aqui na minha área de trabalho e eu vou criar um diretório tá uma pasta essa pasta eu vou chamá-la de meu primeiro projeto uma coisa interessante a ser notada é que eu não Estou utilizando espaços tá eu tô colocando underline entre as palavras poderia usar espaços poderia
mas não é recomendado tá o ideal é que a gente Nunca coloque espaços e nem nenhum nenhum caracter especial para que não tenha a gente não tenha problemas tanto enquanto a gente tá desenvolvendo ou quando a gente vai fazer a gente vai enviar o nosso código pra produção né ou seja o estágio final quando usuários reais vão começar a utilizar tá o ideal É que a gente sempre utilize underline que é esse tracinho embaixo então o mesmo Vale pro nome do do diretório que eu vou deixar aqui no cantinho o mesmo Vale pro nome do
diretório quanto pros arquivos e subpastas que a gente começar a criar aqui dentro dessa pasta tá joia bom criada essa pasta deixa eu abrir meu terminal e também meu editor de textos tá só que eu vou abrir o meu editor de textos de uma forma diferente eu vou pelo terminal eu vou chamar o comando Que eu consigo abrir o editor de texto por padrão na instalação do Atom ele deveria ter incluído e esse atalho né Essa forma de chamar de de invocar o programa através do terminal às vezes não funciona então eu vou mostrar aqui
para vocês como que vocês podem chamar pelo terminal se não funcionar eu vou te ensinar como é que resolve isso tá então eu tô aqui no terminal Eu vou acessar o meu desktop né que é a minha área de trabalho e agora eu vou acessar essa Pasta aqui meu primeiro projeto Então o meu aperto o tab como a gente aprendeu em outras aulas aí ele completa aqui para mim basta eu apertar enter tá agora nesse momento basta eu chamar Atom né Digitar Atom nosso ponto esse ponto tá fazendo referência ao diretório atual tá então no
momento que eu apertar enter ele vai abrir o átomo aqui se por algum motivo não funcionar aí para você não tem problema basta você vir aqui no você abrir manualmente o Atom né seja no Windows através do menu iniciar ou no Linux através do do botãozinho que mostra todos os programas basta você abrir el de alguma forma e aí você vem aqui no menu dele vai ter essa opção install Shell Command aí basta clicar aqui no meu ele vai falar que já tá disponível E aí se não tiver ele vai acabar instalando para você e
aí começa a funcionar fazendo com que seja mais fácil a gente chamar o átom a partir do terminal a partir do do diretório que a Gente já já se encontra bom eu vou aqui então minimizar o meu terminal e aqui no na pastinha né aqui é uma lista de arquivos por enquanto a gente não tem nenhum ainda Ah aqui ele vai mostrar essa lista mas a gente também consegue gerenciar nossos arquivos né então eu consigo criar um novo diretório criar um novo arquivo tá e e é justamente o que eu vou fazer aqui agora vou
clicar em new file né que é novo arquivo e vou dar o nome para esse arquivo e eu vou chamar Esse arquivo de hello world tá hello world Lembrando que a gente não deve utilizar espaços então eu usei um underline aqui e no final a extensão RB tá que vem de Ruby né a gente vai criar um script Ruby um programa em Ruby na linguagem Ruby nesse momento então basta apertar enter e pronto ele criou um arquivo aqui pra gente se a gente até dar uma olhada aqui na pasta esse arquivo já se encontra lá
vazio obviamente mas ele já tá na pastinha Onde deveria est tá joia em um projeto geralmente a gente tem um ou mais é bem comum ter mais de um arquivo com essa extensão pon RB vão ter outros arquivos com outras extensões Tá mas códigos de programa vão estar escritos nesses arquivos P RB tá os códigos mesmo vão estar nesses arquivos e não arquivos com outras extensões Então vamos começar aprendendo o comando mais simples da linguagem Ruby Esse comando é o puts puut TS tá esse comando nada mais faz do Que imprimir alguma coisa na tela
e esse termo imprimir apesar de suar meio estranho porque quando a gente fala imprimir a gente logo lembra de uma impressora mas em termos de programação no contexto de programação é bastante comum a gente utilizar imprimir na tela tá é um termo que a gente utiliza tanto em inglês quanto em português então você vai acabar escutando bastante quando você tiver trabalhando com isso ou mesmo se comunicando com outros programadores Mas esse comando basicamente significa exibir na tela tá a mesma coisa então quando eu falar imprimir na tela você já imagina que eu tô tô me
referindo a exibição de alguma coisa na tela e esse alguma coisa geralmente é um texto tá então para executar o Puts A gente passa um parâmetro aqui na frente com aspas ou aspas simples ou aspas duplas Ah Lucas Mas é a mesma coisa dá para usar os tanto aspas duplas quanto aspas simples Não exatamente vão ter alguns casos que Somente aspas duplas funcionam e alguns raríssimos casos que só aspas simples funcionam no geral é uma boa prática eh utilizar aspas duplas Tá mas isso Varia muito de programador para programador tem programador que prefere aspas simples
porque ela fica ela deixa um visual do código mais simples Eu por exemplo em particular prefiro aspas simples sempre que possível Tá mas essa é uma discussão que vários programadores gostam e outros meio que já tão saco Cheio de de ficar falando sobre isso porque a gente a gente como comunidade Ruby ninguém nunca encontrou um padrão e falou vai ser assim então a comunidade dividida você vai acabar encontrando código com os dois padrões para esse começo para essas primeiras aulas não vai fazer muita diferença então você pode tanto usar aspas simples quanto aspas duplas e
agora aqui dentro das aspas a gente digita alguma coisa E aí que eu vou digitar o mesmo ah termo que A gente deu o nome do do do arquivo né que é hello world eu vou colocar el aqui também hello world esse termo que significa olá mundo em português é simplesmente um termo que é bastante comum quando a gente tá começando a programar você vai provavelmente encontrar os primeiros Capítulos de um livro as primeiras aulas da faculdade as primeiras sessões de alguma documentação de alguma linguagem ou de algum Framework alguma coisa eles geralmente Utilizam esse
termo hello world tá meio que significa que você aprendeu dar o primeiro passo naquela linguagem naquele contexto com aquelas ferramentas tá é bastante comum e enfim você vai até ver que programadores usam camisetas escrito hello world esse tipo de de brincadeira obviamente que você pode escrever qualquer coisa aqui você poderia até mesmo Escrever olá mundo em português que vai funcionar também tá o que importa mesmo é a gente escrever alguma Coisa aqui e salvar esse arquivo porque o nosso primeiro programa está pronto isso mesmo apenas uma linha Ela é bem simples A gente tem um
puts e a gente tem uma string aqui na frente a gente já vai entender o que que mais string nas próximas aulas mas basicamente é um texto tá então a gente tem um texto aqui entre aspas e a gente tem um comando então pra gente testar agora que a gente escreveu o nosso programa a gente quer testar obviamente para testar é muito Simples Tá eu vou salvar o arquivo então ou eu venho aqui em arquivo né file save ou salvar tá ou aindo atar Command s ou control S Dependendo de qual sistema operacional se tiver
usando geralmente é cont CRL S E aí uma vez que você tenha Salv o arquivo a gente volta no ter terminal e a gente vai executar esse programa pelo terminal PR fazer isso a gente chama o Ruby então a gente escreve Ruby espaço e mais o nome do arivo então nome do arivo é Hell World basta apertar Um Tab que ele completa pra gente e depois aptar enter vamos ver o acontece Olha só el mostrou aqui como output n como sa desse comando o hello world tá então se eu tivesse colocado olá mundo aqui executar
novamente Não esqueça de salvar ele vai mostrar a saída aqui pra gente tá então esse aqui é o comando mais simples do Ruby E também o primeiro que você deveria tentar fazer no seu computador executar porque esse vai ser O seu primeiro programa então pra gente finalizar essa aula e deixar um pouquinho mais emocionante eu vou queimar a largada aqui e vou mostrar para vocês um outro comando que a gente vai ver com mais calma nas próximas aulas mas que a gente vai colocar aqui agora só para deixar as coisas um pouco mais emocionantes Esse
comando é um loop tá é uma interação que a gente vai fazer cinco vezes para imprimir cinco vezes Ah esse olá mundo no terminal né na tela Ou Seja a gente quer repetir esse comando cinco vezes tá nada impediria da gente copiar e colar isso aqui cinco vezes obviamente Tá mas a gente pode fazer isso aqui de uma forma um pouco mais interessante e para fazer isso a gente vai utilizar a seguinte sintaxe 5 P times do tá a gente pega o que a gente tinha escrito antes que era esse bloco aqui e a gente
digita dois espaços ou ainda Tab porque o tab ele vai adicionar já dois espaços aqui pra gente tá e um End no final ou seja esse bloco de código aqui tá dentro desse loop tá o loop tá abrindo aqui no do e fechando aqui no end não precisa se preocupar com essa sintaxe aqui agora eu só tô mostrando aqui um passo além do olam mund Tá mas a gente vai ver tudo isso aqui com muita calma o que que é esse Por que que a gente coloca ponto por que que a gente tem esse método
do times Por que a gente faz Du e end que são os blocos a gente vai ver tudo isso aqui Com bastante calma nas próximas aulas mas por enquanto digita Esse comando aí salva o seu arquivo volta no terminal e executa novamente e pronto você tem um loop né Você fez um loop de cinco vezes para imprimir o l mundo aí no terminal e pronto você acabou de criar o seu primeiro programa bem-vindo ao mundo da programação Olá Nesta aula vamos ver o que é e como utilizar o irb então Afinal o que é irb
bom irb é uma ferramenta que é Instalada automaticamente quando a gente instala o Ruby Então quando você instala o Ruby ele é um pacote com várias ferramentas pequenas inclusive o próprio Ruby o interpretador principal e uma dessas ferramentas é o próprio irb o irb permite que a gente digite código e veja o resultado daquele código imediatamente isso é útil porque você pode ver rapidamente como que alguma coisa funciona por exemplo um trecho de um código irb significa interactive Ruby né Ou em português Ruby interativo para executar o irb é muito simples basta que você abra
o seu terminal e Digite o comando irb e pressione enter a ideia não é programar usando irb E sim fazer alguns testes rápidos para que a gente possa entender como que determinado código funciona eu vou mostrar alguns exemplos reais para ficar mais fácil de entender como é que funciona então eu tô aqui com meu terminal aberto eu vou digitar irb e pressionar enter ele entra Nesse outro modo aqui que é como se fosse um subterminal então se você tentar usar os comandos normais do seu terminal não vai funcionar você precisa e digitar código Ruby aqui
dentro tá e quando você terminar você pode digitar Exit e apertar enter ele e aí ele volta pro terminal padrão onde a gente consegue executar os comandos LS o comando SP Cat etc Então vamos abrir novamente aqui aqui o RB e eu vou digitar o mesmo comando que a gente Utilizou na aula de hello world que é o puts então eu vou digitar aqui e puts hello world e fecha aspas tá lembrando que aqui pode ser tanto aspas simples quanto aspas duplas tá tanto faz nesse caso ambas vão funcionar então puts hello world tá eu
aperto enter e ele já vai executar esse código né ele tá mostrando aqui pra gente o resultado vamos fazer uma coisa um pouquinho diferente agora eu vou digitar um número Tá mais e um outro número como se fosse Uma calculadora quando eu apertar enter ele vai realizar essa operação é uma operação matemática então ele realiza essa soma e mostra o resultado aqui pra gente a gente também pode fazer contas de multiplicação usando asterisco né como como se fosse o vezes e ainda o barra para fazer divisão na verdade e a gente pode utilizar isso aquii
como uma calculadora mais complexa mesmo então a gente consegue fazer várias operações aqui dentro do ir b e também no nosso Código que a gente pode utilizar num projeto real para limpar a tela aqui você também pode utilizar o atalho contrl L da mesma forma que a gente faz no terminal tudo que a gente consegue fazer numa aplicação real a gente também consegue fazer aqui dentro do RB vamos ver um exemplo com blocos da mesma forma que a gente fez na aula de hello world então eu vou colocar aqui C pon times e vou abrir
um bloco com o do como esse bloco não vai tá fechando não não tem um Final eu vou apertar enter e ele não terminou tá ele não executa então ele já inventou aqui para mim né ou seja colocou esse espaço e aí eu posso colocar aqui por exemplo puts Oi tá eu dou um outro enter ele ainda não terminou eu preciso de um end para aí sim finalizar o bloco da mesma forma que a gente fez anteriormente eu vou apertar enter e aí ele realiza ele ele executa esse bloco pra gente ou seja ele vai
imprimir cinco vezes esse texto que a Gente digitou aqui no caso Oi então ele imprimiu aqui 5 x Oi agora a pouco eu ensinei como que a gente fecha o irb usando exit uma outra forma de fechar ele é utilizando o atalho contrl D ele também fecha e inclusive também fecha o terminal se você quiser cont contrl D fecha o terminal completamente agora eu gostaria de te convidar a abrir o RB aí no seu computador e executar os mesmos comandos que a gente executou aqui para que você fique mais familiarizado com Irb como sempre se
tiver qualquer dúvida basta me mandar Olá e seja bem-vindo à aula sobre tipos de dados de uma maneira bem resumida o tipo de determinado dado em programação é simplesmente a categoria que caracteriza cada informação é um pouco difícil eh explicar isso apenas na teoria mas com exemplos que eu já vou mostrar vai ficar mais claro então por exemplo eh uma palavra programador ela pertence a um tipo de dado chamado String já o número 48 é um tipo de dado chamado integer que significa inteiro em inglês se você se lembrar um pouco das aulas lá de
matemática do Ensino Fundamental você vai lembrar que a gente tinha um número chamado pi a representação do número pi é 3.141592 etc e ele pertence a um tipo chamado ponto flutuante ou float basicamente nós humanos a gente utiliza os tipos de dados justamente para instruir o computador sobre qual tipos De dados que a gente tá trabalhando né no caso qual tipo de dados que ele está trabalhando nessa aula a gente vai praticar o uso de vários tipos de dados para isso eu vou utilizar o irb e no final dessa aula você já vai ser capaz
de reconhecer os tipos de dados que a gente mais utiliza em programas Ruby que são Strings números booleanos símbolos o nulo e alguns outros cada linguagem de programação tem as suas próprias características e também tem maneiras Próprias de como utilizar os seus respectivos dados o Ruby em particular tem uma característica bem interessante pois eh o o tipo de toda a variável é definido de dinamicamente assim como no PHP no JavaScript e também em outras linguagens mas o que que significa Exatamente esse lance de definir as variáveis dinamicamente os tipos dinamicamente Bom basicamente a gente não
precisa informar o computador Qual que é o tipo de variável que a gente tá Utilizando então eu vou aqui pro meu computador para mostrar eh um pouco mais na prática esse tipo de coisa então vamos lá eu tô com o meu terminal aberto aqui e todos os exemplos que a gente vai fazer a gente vai utilizar o irb tá joia ah quando eu quero criar uma string que foi o primeiro ou um dos primeiros exemplos que eu dei a gente abre aspas e escreve o nome da string e fecha aspas tá simplesmente fazendo isso daqui
apertando enter significa que aqui a Gente tem uma string a gente acabou de criar uma string Só que essa string tá meio solta aqui né a gente não guardou ela em lugar nenhum ela simplesmente foi digitada e enfim já se perdeu então pra gente não perder essa informação a gente atribui esses valores a variáveis então para criar uma variável é muito simples a gente simplesmente vem aqui começa a digitar por exemplo profissão tá igual e a gente digita qual que seria a a string Inclusive eu acabei de notar que eu Escrevi errado eu ia escrever
programador aqui em cima Então vamos lá agora vou escrever direito programador fecha aspas e agora sim a gente tem essa variável guardando Qual que é o valor da string né inclusive se eu digitar novamente aqui profissão ele me retorna Qual que é a string tá joia um segundo exemplo aqui vou trabalhar com números agora então vamos supor que eu tenha uma variável cham da resposta e eu vou atribuir o integer Né o valor o número 42 tá jo é assim que a gente define os tipos simplesmente a string a gente coloca aspas o número a
gente simplesmente digita o número mas é claro que existem outros tipos como eu tava comentando antes por exemplo os pontos flutuantes né ou floats então vamos lá o número pi por exemplo Ah é 3.14 15 Opa 14 15 não tinha outro ponto e aí aqui eu não vou saber os outros números Tá mas a gente poderia continuar colocando várias casas decimais no caso aqui vou deixar Só 3.14 15 mesmo tá então essas variáveis tanto resposta quanto pi estão guardando esses valores tá esses tipos de dados observa que não foi necessário falar qual que er o
tipo de cada variável antes da atribuição nota diferença no no no exemplo que eu vou dar agora em outra linguagem Como por exemplo o Java eu não tenho Java configurado aqui no meu computador porém eu consigo abrir meu editor de textos aqui e definir qual que é o tipo de de Arquivo que eu vou escrever então eu consigo escrever código JAVA apesar de não ter todo o ambiente preparado Então vamos lá pra gente criar uma string em Java em vez de fazer como no Ruby que a gente simplesmente digita Ah profissão igual a programador por
exemplo a gente precisa especificar Qual que é o tipo desse dado né então seria algo como string Ah o nome da variável igual a programador e ainda Precisa de um ponto e vírgula tá joia no Ruby no PHP em JavaScript pelo fato das das variáveis desculpa dos tipos serem dinâmicos como estava falando a gente não precisaria definir o tipo aqui no começo um outro exemplo se a gente quisesse ah criar um integer né a gente poderia usar simplesmente int a resposta igual a 42 tá é quase a mesma coisa porém no Java e em outras
linguagens a gente precisa definir os tipos explicitamente por último aqui só pra gente replicar exatamente os mesmos exemplos Se eu Quisesse fazer aqui o o pi né o número pi eu faria dessa forma aqui 3.14 15 F tá a gente precisa desse F aqui no final mas não se preocupa Java não é nemhum foco aqui ah eu quis só demonstrar que em algumas linguagens a gente precisa definir explicitamente o tipo isso não necessariamente é uma coisa ruim tá existem vantagens e desvantagens são apenas características de cada linguagem os integers né que são os números são
um dos tipos mais simples de se trabalhar Pois já é bem próximo do que a gente tá acostumado a utilizar no mundo real os mais simples como eu já demonstrei são os inteiros e também os números com com um ponto flutuante então voltando aqui para meu irb eu vou até limpar minha tela para ficar mais fácil alguns outros exemplos de números né eu poderia ter por exemplo uma variável chamada inteiro inteiro igual a sete por exemplo eu também poderia ter uma variável chamada dois patos na lagoa e o número 22 tá Isso aqui também é
um integer ã eu poderia ter uma raiz de do tá se eu quisesse fazer a raiz calcular a raiz quadrada de ah dois no caso é um número quebrado né é um número comto ponto flutuante e eu tenho uma colinha aqui obviamente porque eu não ia decorar esse número jamais mas é alguma coisa assim começa desse jeito eu errei aqui aqui na verdade é um ponto Desculpem então é 1.14 tá errado 1 pon 4 1 2 enfim tá isso aqui também é um float aqui vale a pena Eu lembrar que os números decimais né os
floats são representados com ponto e não com vírgula que é a maneira mais comum que a gente tá acostumado a representar no Brasil Beleza então só para fisar usem ponto não usem vírgula porque vírgula não vai funcionar nesse momento você pode estar se perguntando Pô caton eu entendi os números mas o que que dá pra gente fazer com com esses números aí aí meu caro eu te respondo várias coisas incluindo operações matemáticas por Exemplo deixa eu limpar novamente minha tela só para ficar mais fácil aí vou digitar por exemplo 1 + 9 e ele já
me retorna 10 obviamente poderia fazer uma multiplicação pra multiplicação a gente usa o asterisco então 8 x 7 ah poderia fazer 7 men1 tá o espaço é opcional Mas é uma boa prática fica mais elegante o código mas se você não colocar espaços ele também funciona posso fazer divisão então 100 divido por 10 por exemplo ele Me retorna 10 e eu também posso fazer uma mistura de integers com floats então por exemplo poderia aqui fazer 8.8 - 79 por exemplo tá ele vai me retornar um número negativo tá de 70.2 beleza Ele já entendeu que
a gente tava fazendo um cálculo junto com o float aqui e já converteu pra gente inclusive o irb deixa tudo colorido né então a gente consegue ver que esse meio roxo meio Rosa aqui é o float e o ã e o azul são os integers tá depende um pouco Da configuração do seu terminal né as Strings também ã blá blá elas ficam de uma cor vermelha Mas tudo depende um pouco aí da sua configuração porém se tiver tudo no padrão é legal eh assim funcionando né nesse padrão aqui com as cores eh fica fica legal
porque dá para ver visualmente quando que é um e quando que é outro a gente também pode criar as variáveis que a gente criou antes para fazer operações com elas vamos lá então eu tenho aqui as variáveis que eu tinha Declarado então era o inteiro deixa eu conferir o valor era sete eu tinha dois fatos na lagoa tá e o que eu fiz aqui olha só que interessante eu simplesmente apertei Tab e ele completa para mim tá joia ele sabe o que que as variáveis que estavam definidas né e ele já completa tá se eu
quisesse fazer com inteiro também eu poderia só apertar o tab geralmente você aperta Tab e ele completa a a variável a classe enfim o código que Você já digitou aqui no RB obviamente se eu fechar o irb e abrir novamente ele perde isso tá joia mas ah quando enquanto você tiver com ação aberta dá para fazer isso então vamos fazer umas operações matemáticas aqui vou digitar aqui inteiro mais dois patos na lagoa tá e ele vai me retornar na 29 que é 7 + 22 agora um pouquinho mais complicado vou fazer o pi que no
caso é 3.14 15 e o outro eu chamei de raiz de 2 tá inclusive Olha só eu digitei só Rai e Apertei Tab ele mostrou para mim as três opções aqui que tinham né no caso meu caso aqui essas outras duas são palavras reservadas do Ruby por isso que ele tá mostrando aqui como como sugestão Tá mas não é isso que eu quero eu queria Opa √2 Então vamos lá vou fazer pi dividido por √2 e ele vai calcular n esse cálculo nem faz muito sentido mas vamos lá né dividir lá o o 3.14 dividido
por 1 ponto alguma coisa e deu dois e tanto ou seja ele calculou pra gente baseado na no Valor que estão nas variáveis outra coisa que eu posso fazer também deixa eu limpar minha tela eh é exponencial né então eu poderia ter por exemplo 2 elevado a 2 Opa dois tá então para para para fazer um número elevado ao outro a gente coloca dois asteriscos tá então são quatro Se eu colocar três ele me retorna oito e assim por diante e obviamente eu poderia também usar variáveis aqui tá então pi elevado a 2 por exemplo
dá 9.8 Calma eu sei que é bastante coisa mas pra compreensão dessas operações que a gente acabou de fazer é fundamental que você saiba o significado de cada um desses símbolos Então vamos dar uma revisada então eu vou abrir um documento aqui no meu editor Ah só pra gente poder anotar tá jo isso aqui não é nenhum código válido não então a gente a gente tem o mais que significa adição uns espaços aqui para ficar mais claro então adição né que seria a soma Aí a gente tem o menos que é a subtração vou escrever
aqui menos aí a gente tem a o asterisco que é a multiplicação que é informalmente conhecido como vezes né um número vezes o outro e a gente tem a divisão que eu acho que não tem o nome a gente simplesmente chama de divisão mesmo essas aqui são as quatro operações básicas da matemática e a gente tem coisas Ah um pouco mais avançadas Como Por exemplo o a potência né ou seja um número elevado ao outro como eu tinha falado potência X elevado a y por exemplo a gente tem um módulo que de vez em quando
é útil eu esse eu não demonstrei aqui no RB Então vamos lá o módulo funciona da seguinte maneira quando a gente tem 5 dividido por por 2 por exemplo vai dar uma fração vai dar um número quebrado no caso seria 2.5 certo ah o Ruby aqui no caso ele não vai Mostrar porque por padrão quando a gente tá dividindo dois integers né dois inteiros Ele tem ele só pega o resultado tá joia e não o número quebrado se eu quisesse fazer isso eu poderia por exemplo colocar aqui 2.0 E aí sim ele retorna o o
a fração Mas o que eu queria mostrar Não era nem isso queria mostrar era o resultado Ah desculpa a sobra dessa divisão se você lembrar lá do do Ensino Fundamental quando a gente tinha um cálculo desse tipo né 5 Dio por 2 Antes da gente aprender fração que se eu não engano a gente aprende ah em algumas alguns anos algumas séries depois a gente aprende que 5 di por 2 O resultado é dois e sobra um né se você até fizer aquele aquele tipo quadradinho assim para para fazer você tinha um jeito lá de você
descobrir que número que tá sobrando e em programação a gente consegue fazer isso também utilizando o símbolo de porcentagem Então esse ponto fica um pouquinho confuso porque a Porcentagem não é porcentagem de verdade tá a porcentagem é o resto então no caso aqui 5 di por 2 o resto seria 1 Então vamos lá pegar outro número ah 8 di 3 né Deixa eu dar um espaço aqui dividido não desculpa se se eu colocar dividido ele vai me mostrar dois mas também vai sobrar dois então deixa eu colocar o porcentagem tá ou seja 8 di por
3 seriam 2is e sobram dois tá se eu pegar 10 por exemplo sobra um tá então ele mostra o retorno pô catal mas para que na vida eu Usaria isso olha para ser bem sincero você não usa tanto isso aqui na prática Eu acho que eu usei pouquíssimas vezes na minha vida mas é sempre bom você saber porque tem algum caso n um projeto Em algum momento que isso aqui vai ser útil Um Bom exemplo é pra gente descobrir Na verdade nem é tão útil assim no Ruby porque o Ruby tem uma forma melhor de
resolver isso mas em outras linguagens é bastante comum utilizar o módulo né Essa porcentagem Para aqui ó o módulo pra gente descobrir se o número é par ou ímpar Então sempre que eu quiser fazer isso eu div eu faço o módulo de dois então por exemplo 10 se o módulo de 2 é igual a z0 significa que ele é par se o módulo de algum número é é o módulo O Retorno de um número é um significa que ele é ímpar tá isso aqui você pode fazer o teste para qualquer número que sempre bate tá
no ru Existe uma forma um pouco mais elegante de fazer isso que é simplesmente a gente Opa 10 ah digitando od e even tá joia mas a gente vai ver isso aqui mais pra frente isso aqui é simplesmente um método isso aqui significa par e em inglês para quem não sabe od é par e desculpa even é par e od é ímpar tá joé então existe essa forma aqui mas não é nem Esse é o assunto da aula isso aqui é só por curiosidade que a gente não precisa fazer dessa forma aqui de qualquer forma
agora você sabe que módulo é o resultado de uma opera de Uma divisão é possível também fazer comparações entre os números Então vamos lá vou limpar minha tela aqui a gente consegue fazer comparações do tipo ah 5 é igual igual a 5 quando a gente vai atribuir uma variável não confunda isso quando a gente vai atribuir uma variável a gente coloca igual a um tá E aí essa variável chamada var começa a valer um tá ela a gente atribuiu esse valor quando eu coloco Igual igual significa que eu estou comparando uma coisa com a Outra
na maioria das linguagens de programação Essa é a sintaxe que a gente utiliza igual igual na maioria delas isso aqui me retorna um novo tipo de dados que a gente não viu ainda que são os booleanos booleanos podem ser true ou falso true para verdadeiro falso para falso false para falso tá joia Então olha só quando eu apertar enter ele vai me falar que sim 5 É de fato igual a 5 se eu se eu perguntasse né 5 é igual a 4 ele vai me retornar falso obviamente uma Outra forma de comparar esses números é
colocando um Bang né um uma uma exclamação um símbolo de exclamação seguido de um igual da mesma forma que a gente fez aqui em cima aqui é uma comparação de igualdade a gente tá verificando se o primeiro elemento é igual ao segundo nesse segundo caso aqui a gente tá perguntando se eles são diferentes então no caso c é diferente de quatro obviamente que é então ele vai me retornar true tá se eu colocasse Cinco é diferente de 5 não eu estou falando uma mentira então essa informação é falsa uma coisa interessante se eu comparar um
float com um integer ele me retorna true por quê Porque o Ruby consegue fazer essa conversão automática pra gente ele sabe que um float né um um um ponto flutuante 2.0 é a mesma coisa que dois então ele já retorna true aqui pra gente o que faz todo sentido existem outros tipos de comparação também eu vou até limpar Minha tela aqui para ficar mais fácil que é quando a gente quer verificar se um número é maior ou menor ou igual a outro E para isso a gente tem um novo símbolo aqui então Vamos lá por
exemplo 7 é maior que TR e aqui é o símbolo de maior mesmo é o mesmo símbolo que a gente utiliza na matemática tá é o símbolo de maior então quando a gente digita isso aqui perguntando né se o 7 é maior que 5 ele retorna true pra gente se fosse Menor ele retorna falso tá uma outra forma que a gente pode fazer também é perguntar se ele é maior ou igual Então vou dar um exemplo aqui por exemplo 7 é maior ou igual a 7 ele vai true por quê Porque ele qualquer uma dessas
dessas verificações aqui que fossem atendidas ele já ia retornar true então o set ele é maior que 7 ou igual 7 sim verdadeiro se eu tirasse o igual ele ia falar que é falso por quê Porque o set não é maior que set Ele é igual tá joia então fiquem Atentos aí porque a gente precisa especificar se é igual ou igual e e desculpa menor ou igual e maior ou igual tá como eu havia falado você percebeu que o resultado dado dessas operações que a gente fez não foi o número mas sim um outro tipo
de dado que é o boleano Né o true e o fals então agora é um ótimo momento para eu te apresentar melhor o que que é esse tal de boleano a principal característica de um valor boleano é que ele pode ser simplesmente Dois Ele só tem dois valores válidos verdadeiros que são o true e falsos que é o false isso torna bem simples as possibilidades de representação desse tipo de dado eu poderia criar uma variável por exemplo chamada variable e igual a true tá aqui na verdade pode ser qualquer nome tá eu tô inventando os
nomes aleatoriamente aqui então ã vamos chamar essa variável de True e sim eu posso atribuir diretamente um valor bolano tá se eu repetir o nome aqui por Exemplo variable ele vai me retornar true da mesma forma que eu também poderia colocar aqui igual a vamos dizer 4 = 4 tá ele vai fazer essa comparação vai trazer o resultado E vai atribuir o true que vai retornar daqui para essa variável vou até chamar de variable 2 aqui só para ficar diferente a gente poderia substituir Mas vamos criar diferente aqui só para pra gente saber tá então
na hora que eu digitar variable 2 ele me retorna true tá jo é então ele Fez aqui tudo de uma vez fez essa comparação e atribuiu aqui pra variável Então vou criar mais algumas aqui por exemplo content vou chamar de false ah espaço vou chamar de True tá coloquei algumas coisas aqui e da mesma forma que a gente fez com os números a gente pode comparar essas variáveis né comparar os bolean Então vamos fazer isso deixa eu limpar minha tela Aliás não foi uma boa ideia ter limpado minha tela não deixa eu digitar novamente aqui
só pra gente Saber content só pra gente saber quais eram os valores iniciais tá então aqui ó variable é true content é falso e espaço é true e agora vou fazer umas comparações por exemplo variable Ah é igual igual espaço tá Ou seja variable é true e espaço também é true o que eu tô fazendo aqui é verificando se eles são iguais então true é igual a true ele vai me retornar true é meio confuso mas a gente utiliza bastante isso quando a Gente tá programando Tá mesmo que esse aqui já seja um já esteja
no valor boleano né a gente tá comparando um valor boleano com um outro então vou comparar aqui agora content igual a espaço tá então o content ele é falso a gente tá verificando se ele é igual a true né que é o o espaço então aperto enter ele me retorna falso por quê Porque eles não são iguais tá joia Um é de um valor e outro de outro valor da mesma forma que a gente fez com os Integers integers com os números agora a pouco agora eu queria que você fizesse um exercício aqui comigo o
que que você acha que seria retornado na seguinte operação vamos lá vou limpar minha tela eu vou criar uma string chamada true e eu vou comparar ela com o boleano true então de novo aqui poderia ser outra coisa escrita tá joia Mas é uma string eu estou comparando com um boleano real tá que que você acha que seria retornado aqui a resposta é falso porque aqui a Gente tem uma string é um outro tipo de dado tá joia E aqui é um boleano real então aqui na verdade poderia ser qualquer coisa poderia escrever blá blá
Inclusive eu escrever blá blá errado mas ainda assim é falso tá jo é qualquer valor qualquer string que eu colocar aqui seria falso e obviamente a mesma coisa aconteceria se eu comparasse com o falso tá joia esse primeiro valor é uma string e esse segundo valor é um boleano então não interessa muito que você Colocar aquil e sempre vai retornar falso para que isso retorne o que a gente espera a gente sempre tem que utilizar os mesmos tipos de dados no caso comparar uma string com outra string ou ainda um boleano com outro boleano tá
joia apesar do Ruby permitir que a gente faça isso daqui geralmente não retorna O que a gente espera que foi no caso aqui falso para todas as essas operações aqui ou seja para ele tudo isso aqui é diferente eu já falei sobre Bastante tipos de dados aqui aqui e na próxima aula a gente vai falar sobre Strings que é uma parte bem interessante e muito poderosa do Ruby a gente consegue fazer muita coisa com esse tipo de dado que provavelmente é o tipo mais comum que a gente utiliza em programas do dia a dia em
aplicações do dia a dia que são as Strings Então é isso te vejo lá continuando a nossa aula sobre tipos de dados dessa vez a gente vai falar sobre as Strings E como você pode Imaginar uma string é a representação que utilizamos para palavras e textos bem simples e prático esse vai ser um tipo bastante utilizado durante toda a sua carreira os integers floats e e todos os outros tipos possuem métodos e as Strings não são diferentes então por exemplo agora a pouco eu tinha mostrado por exemplo ah o o método ods né para retornar
ass uma um determinado integer se ele é par ou se ele é ímpar né ele retorna true ou false tá Ah e a gente Tem a mesma coisa para Strings então se eu venho aqui e escrevo Sei lá o meu nome por exemplo eu posso chamar alguns métodos por exemplo o upcase que vai retornar toda essa string aqui em letras maiúsculas Eu também poderia escrever por exemplo Ruby dessa forma Aqui tudo em letra minúscula e utilizar o capitalize tá ele vai me retornar a primeira letra em maiúscula um outro método que eu poderia chamar aqui
para uma string Ah para qualquer string na Verdade é o Size o Size ele vai mostrar para mim o tamanho dessa string ou seja Quantos caracteres ela tem no caso aqui a palavra Hello tem cinco caracteres tá se eu digitasse espaços Lucas caton por exemplo ele conta os espaços também tá tá certo string inclui espaços quebra de linha tudo vai contar como caracteres Beleza então vamos lá ah deixa eu digitar uma outra string aqui por exemplo paralelepípedo Se Eu não digitei errado Acho que tem um acho que é com e na verdade então paralelepípedo ponto
vamos chamar esse método Elite que ele recebe um parâmetro a gente vai entender um pouco mais sobre métodos depois mas ele a gente passa aqui entre parênteses um primeiro argumento e esse argumento eu vou passar a letra a e olha só o que que acontece ele tirou para mim todas as as ocorrências da palavra da letra A que na verdade foi só aqui e aqui né para lel Pípedo é exatamente tá então ele removeu daqui um outro método legal é o gsub Então deixa eu digitar aqui Ana canoana por exemplo e eu vou chamar o
o g sub tá que é um método pra gente substituir uma substring um pedacinho da string por outra string então por exemplo vou digitar Ana e vou colocar um traço tá então ou seja ele vai procurar todas as ocorrências aqui do Ana no caso ele vai encontrar essa aqui essa aqui ele quase bate mas não bate ó porque é uma letra O Tá então ele bate a primeira e bate com a segunda e ele vai trocar tudo isso aqui por um traço Olha só vou apertar enter ele colocou um traço aqui no começo né e
colocou um traço aqui no final tá então ficou traço cano traço então se eu tivesse uma string por exemplo Lucas Carvalho e eu quisesse trocar o Carvalho ah por ah caton né então eu poderia vir aqui e digitar um dos Ah um sobrenome e substituir por outro sei lá alguma coisa assim né então Ele vai trocar e vai retornar string convertida pra gente agora a gente vai aprender uma coisa extremamente importante ah sobre Strings e sobre programação em geral é uma coisa que eu aposto que você vai utilizar todo santo dia pro resto da sua
vida como na na sua carreira de programador Então vamos lá vou limpar minha tela e eu vou escrever aqui curso Ah eu tenho uma string então eu quero juntar ess essa string com outras Strings como é que eu faço isso Com tom simples a gente pode utilizar o mais sim P mas o mais não é para número não é para integer sim mas ele também pode ser usado como Strings Então olha só eu preciso colocar um espaço tá então aqui a gente tem uma string sem espaços depois eu eu vou colocar um espaço aqui se
você não colocar ele vai ficar tudo junto Porque esses espaços aqui Não Contam eles não são partes da string o que a parte da string é o que tá dentro das aspas Então vamos lá curso D vou dar Outro espaço vou fechar as aspas e eu posso colocar mais uma string eu posso colocar quantas eu quiser na verdade então vamos lá escrever programação ah na verdade o irb não não aceita cidil aqui então vou escrever programacão mesmo tá joia obviamente que num programa Real a gente estaria utilizando o editor de texto isso aqui é mais
para teste no editor de textos a gente obviamente consegue colocar sedila e acentos e coisas da língua portuguesa tá Então ah cursos D com espaço programação utilizando mais para juntar essas Strings Então vou apertar enter e ele me retorna uma única string com os valores combinados Deixa eu voltar aqui para meu editor de textos vou limpar isso daqui e isso aqui chama concatenação tá isso aqui a gente tá concatenando Strings tá aga Esse nome que você vai você vai escutar bastante sempre que você escutar concatenação de Strings significa isso a gente tá Juntando Strings umas
com as outras existe uma outra forma de juntar as Strings que é chamado de interpolação tá op interpolação interpolação é uma forma um pouco mais elegante na maioria das vezes a gente deve a gente pode e deve utilizar interpolação em vez de concatenação na verdade deixa eu deixa eu demonstrar uma coisinha Extra ainda com caten nação eu vou criar uma variável chamada course ah Type por Exemplo né ou seja tipo de ah curso eu vou chamar aqui de programação tá então eu tenho aqui essa variável com esse valor eu poderia fazer assim ó ah curso
da mesma forma que eu fiz aqui em cima curso espaço mais colocando os espaços direitinhos e aqui em vez de escrever programação eu posso usar a variável tá então ficaria curso né uma string mais outra string e mais uma variável que conté uma string tá apertando dando enter O resultado é exatamente o mesmo Agora Ah deixa eu demonstrar a mesma coisa com interpolação a interpolação é bem simples não é mais complicado que isso daqui na verdade é até mais elegante do que essa forma que a gente estava fazendo aqui pra gente utilizar a interpolação a
gente digita curso d e a gente vai colocar a nossa variável nesse ponto aqui ó tá de alguma forma a gente tem que colocar o valor dessa variável aqui dentro e no Ruby tem uma sintaxe própria para isso que é utilizando #tag Abre e fecha Chaves tá Então nesse momento ru não vai colocar isso daqui na string ele vai copiar o valor de alguma variável que no caso eu quero que ele coloque corse Type nesse momento ele vai me retornar aqui curso de programação exatamente da forma que eu esperava que ele fizesse tá e a
gente pode Lógico colocar outras coisas aqui né por exemplo vou repetir o valor dessa variável ele vai colocar duas vezes lá para mim tá eu poderia por exemplo Colocar Ah uma soma então sei lá 5 + 4 aqui dentro ele vai realizar aquela operação tá E vai retornar como string pra gente tudo que a gente coloca entre a essa interpolação aqui né o hashtag mais as chaves significa que é código Ruby que vai ser convertido para Strings Beleza então Ah aqui a gente tem curso de programação espaço nove tá bom Ah isso aqui é extremamente
poderoso e eu aposto que você vai usar pro resto da sua vida Provavelmente diariamente porque é muito muito comum muito comum mesmo a gente utilizar isso daqui Existem muitos outros métodos que estão disponíveis por padrão nas Strings e que enfim você pode utilizar a documentação oficial para saber mais se você quiser então vamos lá eu vou abrir meu navegador se você bus Eu geralmente busco por Ruby leng tá que é o site oficial é ruby-lang.org Eu geralmente busco no Google que fica mais fácil de encontrar E aí eu posso clicar Aqui em documentação E aí
você rola Aqui para baixo até encontrar essa área aqui de documentação de referência é esse primeiro link aqui Ruby Core reference e aqui a gente consegue fazer uma busca por Strings por exemplo tá e a gente tem toda a documentação das Strings tá no caso aqui a versão atual do Ruby que eu tô utilizando é a 2.7.1 Pode ser que quando você esteja assistindo essa aula já existe uma versão mais nova Então procura sempre a documentação da versão Ah que você está utilizando tá joé então deixa eu mostrar aqui por exemplo Ah Dois métodos que
a gente utilizou né a gente utilizou o método delete tá então se eu clicar aqui ele já me mostra a documentação Opa desculpa perdi a documentação né falando qual que é o parâmetro tem toda a documentação inclusive se eu clicar aqui ele vai mostrar o código fonte que é escrito em C que é uma outra linguagem mas enfim não se preocupa com isso agora Ah deixa Eu buscar também o gsub que a gente utilizou tá aqui o gsub ó tá então aqui tem toda uma explicação do que que esse método faz o que que a
gente pode passar tem uns exemplos mais avançados enfim e olha quantos métodos a gente tem né Deixa eu mostrar a lista aqui do lado esquerdo tá tá tudo isso daqui são métodos para as Strings tem muita coisa que dá para fazer muita coisa mesmo ó tem o upcase que eu utilizei também né que é para deixar as Strings maiúsculas Tá e enfim tem como deixar minúscula tem como fazer comparações tem tem uma série de coisas mas eu recomendo que você não se preocupe com isso agora pelo menos não se preocupe tanto É como se você
tivesse aprendendo um novo idioma e a documentação fosse o dicionário é bem provável e desculpa é bem Improvável se tornar fluente um novo idioma simplesmente lendo o dicionário né geralmente o o a forma mais ideal de fazer isso é praticando aquela nova Língua alguma informação relevante sobre Strings que eu preciso destacar a gente tem duas maneiras de de criar ess Strings ah utilizando aspas simples e as aspas duplas vamos dar uma olhada Então deixa eu fechar aqui o meu navegador e deixa eu limpar o meu terminal Ah eu poderia por exemplo escrever meu nome com
aspas simples e com aspas duplas eu poderia incl inclusive compará-las Então vamos lá com aspas simples vamos perguntar se é igual a aspas duplas e Ele vai falar que sim é a mesma coisa mas será que é a mesma coisa mesmo na verdade não a primeira opção não processa caracteres especiais e a interpolação que a gente acabou de ver já na segunda opção Sim tudo isso funciona caracteres especiais e a interpolação então eu vou voltar aqui pro terminal para mostrar Ah quando que a gente pode utilizar uma Quando que a gente pode utilizar outra Então
primeiramente vamos criar uma variável Aqui ah chamada John desculpa chamada name com o valor de John e aí eu vou ter uma outra variável chamada presentation que eu vou escrever meu nome é E aí eu vou interpolar essa outra variável tá com name então se eu mandar imprimir aqui presentation tá ele aparece meu nome é John então eu vou redefinir essa variável aqui E para isso eu posso simplesmente apertar setinhas do meu teclado para ele voltar no histórico né então eu vou para cima e para baixo e aí Eu consigo digo redefinir essa variável tá
e o que eu vou fazer aqui é em vez de meu nome é John eu vou colocar um caracter especial que é o Barra n tá esse barra n é a quebra de linha é basicamente o único caracter especial que você precisa que você precisa aprender agora tá porque ele simplesmente vai quebrar uma linha ou seja chegou nesse ponto aqui vai pra linha seguinte e continua mostrando lá tá se eu simplesmente digitar Presentation aqui ele não vai me mostrar diferença alguma agora se eu colocar um putz aqui no começo né que seria a forma de
imprimir na tela ele vai mostrar o meu nome é na linha de cima e o John na linha de baixo mas agora veja o que que acontece deixa eu limpar minha tela aqui quando eu digito vou chamar de presentation 2 tá quando eu utilizo aspas Simples então vamos lá ah vou escrever aqui Hello Word simplesmente tá se eu colocar o Barra n aqui ele não vai Fazer a quebra de linha Então vamos lá presentation 2 Ele simplesmente repete o Barra n se eu tivesse feito a mesma coisa com aspas duplas ele funcionaria perfeitamente a quebra
de linha a mesma coisa vale paraa interpolação então vamos lá vou criar uma variável chamada número ah com valor 42 tá então presentation eh deixa eu voltar aqui chamar de presentation 3 Ah vou usar aspas simples e vou escrever assim o número é e vou fazer uma interpolação Aqui né número tá E vou colocar aspas simples Quando eu fizer o presentation 3 ele não me mostra o número interpolado tá só para repetir aqui o mesmo exemplo com aspas duplas Aí sim ele faz interpolação então aspas duplas é o que a gente quer na maior parte
das vezes a gente quer que funcione com interpolação e a gente quer que funcione com quebra de linha com outros caracteres especiais aí você me pergunta pô catom mas se existe se por Que que existe duas as formas sendo que só uma funciona essas coisas né Por que que a gente não sempre utiliza uma só e é uma pergunta que todos os programadores de Ruby se fazem e na verdade é assim é mais uma questão cultural porque já é dessa forma tantos anos que se eles mudarem agora quebraria muitas aplicações que já estão no ar
utilizando aspas simples e as pessoas que usam aspas simples Ah assim tem pessoas que preferem e mas é preferência Pessoal mesmo tem pessoas que preferem um ou preferem o outro e Inclusive tem tem ferramentas que força você utilizar Ah um determinado estilo só para manter consistência no seu projeto Ah um desses projetos por exemplo seria rubocop mas não se preocupa com isso no momento o importante é você entender que a maioria das vezes o que a gente quer é aspas duplas o que as pessoas que gostam de aspas simples alegam e eu eu mesmo usava
bastante hoje em dia eu prefiro aspas Duplas mas a string fica mais limpa né parece que você olha assim no código dá um aspecto mais bonito fica mais elegante porque aspas duplas eu não sei parece que fica mais sujo mas mas enfim é é uma é um é um argumento tão bobo que não faz nem sentido a gente se preocupar em utilizar aspas simples por conta disso então a regra de ouro é utilize aspas duplas sempre que você não vai ter problema uma dica Extra se por acaso deixa eu até liar minha tela se por
Acaso você quisesse escrever aspas dentro de uma string Como que você faz simples você pode falar assim ó meu nome é Lucas caton aí vamos supor que eu queira colocar aspas entre a palavra Lucas caton né o Ruby vai já se perdeu pode ver que ele nem tá vermelho mais tá a gente pode fazer isso colocando uma barra e as aspas então eu vou colocar aqui no final também tá então a gente tá dizendo pro Ruby olha essa string Ah desculpa essas aspas são literais Ou Seja eu não estou fechando a minha string tá então
quando eu fechar aqui sei lá colocasse um aqui por exemplo ele vai mostrar meu nome é aspas Lucas caton fecha aspas tá joia isso aqui vale para outros os caracteres especiais também é bastante comum a gente ter uma barra invertida mas o caracter que a gente quer que seja literal nessa aula era isso que eu queria passar para vocês eu te vejo na próxima aula então vamos ver então mais um tipo de dados dessa Vez a gente vai ver os símbolos ou símbols em em inglês símbolo é bem semelhante à Strings Mas eles possuem algumas
características especiais por exemplo algumas operações não estão disponíveis nos símbolos Então deixa eu dar um exemplo aqui bom antes de mais nada pra gente representar um símbolo a gente utiliza dois pontos antes de escrever alguma coisa então por exemplo alguma coisa tá a gente coloca dois pontos e escreve alguma coisa esse aqui É um tipo tipo símbolo tá da mesma forma que a gente faria uma string com as aspas Ah para uma para os símbolos a gente simplesmente coloca os dois pontos na frente se a gente inclusive quiser descobrir o tipo de um determinado dado
a gente pode colocar o ponto clas no final e ele retorna aqui pra gente que tipo que é então por exemplo 4 2 Class Ah 42.0 vai ser um float e assim por diante e os símbolos não são diferentes então símbolos P CL ele vai mostrar que Ele é do tipo símbol tá agora o que que o que que ele difere tanto de uma string vamos lá primeira coisa a gente não consegue fazer concenção interpolação tá então se eu quisesse fazer Lucas mais caton no formato de string Isso aqui vai funcionar Se eu quisesse fazer
isso daqui com symbols ele vai me dar um erro tá ele não consegue Ah fazer ele não consegue usar o sinal demais ele não entende isso e realmente não faria sentido pelo Propósito principal dos símbols que é justamente ser imutável Ou seja a gente não pode alterá-lo em hipótese alguma um outro exemplo aqui vou criar uma variável var por exemplo e vou atribuir sei lá algum conteúdo vou chamar de content tá isso aqui funciona tá essa variável agora vale isso agora se eu quisesse adicionar mais coisas né tipo more content por exemplo ele não vai
funcionar porque ele também não funciona ah ele não responde né a esse método ah Traço traço Inclusive acho que eu não mostrei isso aqui com Strings né se eu fizer o mesmo exemplo com Strings por exemplo content aí se eu fizer Ah igual a more content com Strings isso daqui vai funcionar Tá var agora a variável var cont tem content e more content tá ficou tudo junto aqui o mesmo a gente não consegue fazer com os símbolos a gente vê esse erro acontecer porque algumas operações não estão disponíveis quando a Gente tá utilizando símbolos dessa
maneira a partir do momento que um símbolo é criado ele vai ser imutável como eu falei ou seja todas as vezes que a gente for se referenciar a esse símbolo ele vai ser exatamente o mesmo vamos ver agora o tipo nulo uma definição bastante interessante de nulo é a noção de falta de um objeto ou seja falta de um dado falta de alguma coisa é um um tipo de dado que representa o nada que não pertence a nenhum dos tipos Utilizáveis em uma linguagem Isso significa que ele é uma referência paraa ausência de um valor
ou conteúdo então por exemplo a gente pode acessar uma posição específica de uma string de acordo com o í desculpa né um caracter dentro de uma string de acordo com o seu índice deixa eu mostrar aqui no terminal eu vou criar uma variável aqui chamada Word Por exemplo Ah eu vou escrever palavra mesmo tá palavra palavra dentro de uma variável Word tá se eu quisesse H Se eu quisesse acessar um determinado caracter em uma determinada posição a gente tem o que a gente chama de índices para fazer isso então basicamente eu passo a minha variável
e a gente passa o índice aqui dentro Lembrando que na maioria das linguagens de programação incluindo Ruby a esse índice começa no zero então a letra P é o índice zero a letra A é o índice um e assim por diante então se eu colocar aqui índice zero ele vai me retornar a letra P Se eu colocar Índice um a letra A tá e assim por diante então aqui eu tenho a letra r a letra A que é a última e o que que você acha que acontece quando eu digitar o índice sete o próximo
índice vamos descobrir vou aqui digitar mesma coisa utilizando set e ele me retorna New New é o tipo nulo que eu estava me referenciando tá então isso aqui a gente pode chamar em português de nulo tá Ah mas é mais comum a gente chamar de New mesmo tá em outras linguagens ele pode Ser conhecido como New tá nul l l mas no Ruby a gente chama de New dessa forma aqui então só para recapitular o new significa algo que não existe algo que a gente não consegue se referenciar a gente não consegue trabalhar e Note
que ele é diferente de uma string vazia tá uma string vazia ainda é considerado do tipo string mas o new não o New ele é basicamente o nada e assim a gente encerra as aulas sobre tipos de dados Espero que você tenha aprendido se tiver Alguma dúvida é só me mandar e eu te vejo na próxima aula Olá seja bem-vindo à aula de estrutura de dados nessa aula eu vou demonstrar como você cria ah dois tipos novos de dados utilizando Ruby então ah conforme a gente fez em aulas anteriores eu tenho aqui o meu terminal
e eu vou abrir o irb o primeiro tipo que eu queria apresentar é um tipo de coleção tá Ou seja a gente consegue colocar vários elementos uma lista ah o Ruby simplifica Isso bastante pra gente ah de forma que você precisa apenas de um tipo para fazer qualquer tipo de coleção em outras linguagens é comum você ver vários tipos diferentes para resolver tipos diferentes de problemas no rubby não você simplesmente tem um tipo chamado Array tá vou escrever o nome aqui eh ou Array né em português é mais comum a gente de escutar tá a
pronúncia correta é Array então ah você pode falar do jeito que você Quiser bom como que a gente cria um Array Ah muito simples a gente abre colchete escreve por exemplo eu vou escrever valores de um até quatro e fecha colchetes Pronto já temos um Array e podemos fazer o que quiser com ele por exemplo eu poderia ah atribuir ele para uma variável certo ah se eu digitar Array só para mostrar ele vai repetir os valores ele vai mostrar o valor dessa variável Array esse Array adivinha també bem um objeto Então se você mandar exibir
a classe dele ele vai exibir aqui o tipo que é Array tá joia eu fiz na ordem aqui eu vou na verdade criar um outro Array com uma ordem bagunçada então 2 6 3 9 Opa faltou o cochete e a partir desse dessa variável né ou do objeto Array si eu poderia chamar alguns métodos sendo um deles o sort que é para ordenar essa lista né então a gente não precisa se preocupar com implementação de como Ordenar tal não não precisa de nada disso porque o Ruby já traz esse método ponto sorte pra gente utilizando
o melhor algoritmo de de ordenação que existe Tá ok ah uma outra coisa que eu poderia fazer seria rodar um reverse né que que ele vai fazer ele vai inverter o Array então ele vai mostrar 9 3 62 93 62 né a outra coisa que a gente ainda poderia fazer é é combinar os dois métodos então Array P sort pon reverse ele vai ordenar e Depois vai inverter então você pode ver que ele tá em ordem decrescente né do maior pro menor uma outra coisa que dá para fazer é adicionar novos elementos então eu vou
adicionar aqui um um número um por exemplo né Então pronto agora nosso Array tem o valor um ali ah por último tá Ah eu vou vou inserir outro valor eu vou repetir um valor no caso aqui eu vou pegar um valor TR tá então eu vou limpar minha tela aqui só para ficar mais fácil E vou mandar exibir novamente o Array tá Como você pode ver aqui vou até mandar ordenar é mais fácil para ver a gente tem dois elementos iguais tá uma coisa que a gente pode fazer aqui é rodar o método Unique que
vai eliminar todos os duplicados né eck exatamente de únicos né de elementos únicos Eu também obviamente Posso rodar sem o sorte aí ele remove o que tá repetido mas não ordena por nada ou seja ele mantém a ordem original muito bacana muito Simples né esse tipo de dado é muito utilizado a gente vai usar para uma série de coisas e ele é muito poderoso e ao mesmo tempo ele é muito simples você só precisa lembrar que para criar ele você declara as colchetes e coloca os valores aqui dentro Inclusive a gente pode colocar um texto
aqui para tem um um Array de texto mas você pode misturar os elementos então você pode ter um um Array com vários tipos diferentes por exemplo esse daqui né e não tem problema A gente pode ah misturar os tipos aqui dentro que não tem problema nenhum Vamos então para um segundo tipo segundo tipo que eu quero apresentar aqui nessa aula de estrutura de dados que é o hash vou escrever aqui escreve assim hash tá joia é em algumas outras linguagens ele é conhecido como hash map mas a maioria chama de hash mesmo bom como é
que a gente cria um hash muito parecido com Array só que a Gente usa Chaves em vez de colchete tá joia e qual que é a diferença entre eles bom um hash não é uma lista tá ele é conhecido como um dicionário então ele é uma estrutura de dados que contém uma chave tá e um valor tá ou em ingl Tá bom eu vou criar um um has aqui eu vou colocar primeiro nome tem duas sintax sintaxes que você pode utilizar uma delas é essa Daqui que é a sintax antiga do ru último nome e
pronto tá criamos o nosso hash e a sintaxe mais nova que é a que a gente vai utilizar que é muito parecida com Jon né Jon do JavaScript Tá bom então temos o nosso hash aqui e você pode ver que para exibir ele ainda usa Sintaxe antiga e isso tem um motivo mas você não precisa se preocupar com isso agora h o que a gente quer se preocupar aqui é o seguinte hash eu consigo passar ah qualquer elemento aqui qualquer chave então vamos lá primeiro nome e ele me retorna O valor tá joia ã mesma
coisa se eu passar o último mas se eu passar alguma coisa que não existe ele me retorna New tá Por quê Porque é um elemento que não está no meu Hash uma coisa bem parecida Eu ainda tenho o meu arrei aqui uma coisa bem parecida que a gente pode fazer com arrei é passar um índice aqui no final então se eu passar o índice zero ele vai pegar o primeiro elemento do Array do Array desculpa que é dois se eu passar número um ele vai pegar o seis então se eu passar o c é o
último elemento que é o três e se eu passar o seis ele retorna New também tá foi uma Coisa que faltou comentar sobre o Array Tá bom então você repara que é bem parecido com hash né quando não tem a chave ele retorna New A diferença é que o Array sempre vai utilizar os índices ou seja sempre um número ele nunca vai ter as chaves tá bom mesma coisa das aulas anteriores Tá bom a gente vai ver isso aqui com mais calma passo a passo Então se tá sendo muo novidade para você fica tranquilo que
a gente vai refazer a gente vai Fazer exercícios a gente vai fazer outros aplicativos que utilizem tudo isso daqui para ficar mais claro ã ainda sobre o hash eu posso chamar um método chamado Kiss E aí ele me retorna um arrei com todos os elementos Ah desculpa com todas as chaves e eu posso chamar values que me retornaria todos os valores tá só para lembrar o meu hash estava assim ó primeiro nome Lucas e último nome caton então primeiro nome último nome Lucas Caton uma coisa interessante que a gente também pode fazer é Rodar um
método P count e ele vai retornar a quantidade de elementos né que a gente tem aqui tá o mesmo só por curiosidade o mesmo funciona com Array também tá lembra que nossa Ray tinha Ah seis elementos então 1 2 3 4 56 é por isso que ele retorna seis aqui e o nosso hash considera a os pares de chave e valor como um elemento Então aqui tem um aqui tem dois por isso que ele retornou dois tá joia então ah Array e hash tá são os dois as duas estruturas de dados que a gente mais
utiliza no Ruby é Espero que você tenha gostado dessa aula e a gente vai ter alguns exercícios para você fazer agora faça os exercícios é importante que você entenda essa parte e se tiver alguma dúvida é só me mandar tá joia Então é isso te vejo na próxima aula até lá nessa aula aqui a gente vai entender como é que funciona para que que servem e como é que funcionam os comentários de Código então vamos lá tô com meu terminal aberto aqui eu vou abrir um editor de textos tá no caso que tô utilizando o
vs code Ah você pode usar qualquer um tá e eu vou criar eu vou começar aqui criando um novo arquivo que eu vou chamar de com.rb o nome também é irrelevante é só para um exemplo então não teria problema se você chamasse de outra coisa metar um pouquinho aqui a fonte e eu vou escrever um código qualquer aqui tá jo Então vamos lá vou Criar uma variável chamada números não precisa se preocupar com o código porque também não é importante e vou fazer um arrei que vai de 1 até 10 beleza e aqui na linha
de baixo eu vou chamar esse arrei e vou fazer um filtro ou seja só vou pegar alguns elementos dessa lista e que filtro que eu vou fazer eu vou fazer um filtro de números ímpares tá então a gente pode é como se a gente tivesse passando aqui para chamar esse método para cada um dos elementos então ele Verifica né se esse número é ímpar ods em inglês significa ímpar Ah se ele for ímpar ele entra ele continua no arrei caso contrário ele cai fora tá para isso que serve o Filter e é para isso que
a gente coloca o bang aqui também mas enfim não se preocupa com o código O código que não é importante e por final na última linha eu vou escrever assim é eu quero exibir o total de elementos então números aí eu volto lá no meu terminal e Eu rodo ruby com que é o nome do arquivo então aqui eu tenho C ou seja ele pegou os 10 elementos tirou os pares só sobrar os ímpares ele tá mostrando Total se eu tirar essa parte aqui inclusive ele vai mostrar todos os números ele vai mostrar os números
ímpares os comentários tem dois propósitos o primeiro deles é a gente poder ignorar código que a gente não queira que seja executado então por exemplo vamos supor que eu tire essa Linha aqui tá se eu apagar a gente continua tendo o nosso arre lá em cima e continua mostrando aqui no final o total Então esse código ainda vai funcionar só que em vez de apagar a gente pode vir aqui e colocar um hash no começo da linha deixa até aumentar um pouquinho mais ainda minha fonte a gente pode simplesmente colocar um hash aqui no começo
Vou salvar esse arquivo e executar e olha só agora o c aqui do final tá mostrando 10 porque ele não Está filtrando Então sempre que a gente colocar um hash ele para de executar o código dali pra frente e eu também poderia colocar o hash aqui por exemplo né não preciso necessariamente ah colocar no começo da linha vou vou dar um exemplo real aqui tá Vou colocar até o set vou fechar o Array né Precisa ter uma sintaxe válida e vou colocar o hash aqui pra frente então aqui eu acho que ele teria 1 2
3 4 Elementos ímpares vamos executar tá quatro elementos tá jo É então a gente pode colocar tanto aqui quanto no começo quando você utiliza um editor de textos como vs code Sublime text o Atom o vin a maioria deles vai ter um atalho para a gente colocar esse hash Ou seja a gente não precisar vir aqui e colocar manualmente apesar de ser uma coisa muito simples esse atalho na maioria das vezes é Command no Mac mais Barra ou control Mais barra no Linux Windows Então deixa eu dar um exemplo aqui vou selecionar essa linha tá
eu Posso até deixar o cursor aqui no final ou selecionar um trecho quando eu aperto comand de barra ele comenta a linha toda isso é legal quando a gente tem muitas coisas para comentar ou seja várias linhas eu venho aperto com de barra e ele coloca um hash em cada uma das linhas em vez de a gente ter que ir lá e manualmente colocar e tudo mais enfim é um pouco mais prático então comand barra e control barra se você tiver no Linux e Windows o segundo propósito Dos Comentários é a gente poder escrever comentários
ou seja gente explicar o que que o nosso código faz um exemplo poderia vir aqui e escrever a lista a baixo contém números de 1 a 10 o código abaixo filtra ap filtra apenas números ímpares ou ainda poderia colocar assim código abaixo mantém apenas números ímpares e o final poderia colocar assim exibe o total de elementos elementos nesta lista tá a razão pela Qual a gente pode colocar esse tipo de explicação é porque esse código não vai ser executado ou seja pro computador o que vale mesmo é essa linha aqui essa aqui e a última
os comentários apesar de de ter muitos programadores que abominam a ideia de ficar colocando um monte de comentário em alguns casos fazem sentido então um exemplo aqui no final exibe o total de elementos nessa lista é um comentário extremamente desnecessário é muito simples você olhar aqui e entender O que que o código tá fazendo Então nesse caso aqui a gente poderia Apagar ah na verdade em todos esses casos aqui provavelmente a gente poderia pagar mas quando a gente tá começando a programar ou ainda quando a gente tá fazendo um exemplo didático como é esse daqui
é legal a gente ter alguns comentários para explicar o que que cada coisa tá fazendo então se você tá começando agora a programar eu te recomendo colocar um comentário ou alguns comentários durante O seu código para você poder olhar depois e lembrar o motivo pelo qual você tomou alguma decisão agora em projetos reais a gente usa assim comentários para algumas coisas imagina que Ahã por algum motivo você tinha duas soluções possíveis né uma decisão de Arquitetura do seu software você poderia ter seguido o caminho a ou ter seguido o caminho b então às vezes é
legal você ir lá escrever um comentário olha aqui existiam duas dois caminhos possíveis a Serem seguidos a gente poderia ter ter ido pro lado a a gente poderia ter ido pro lado b a gente decidiu pelo caminho B por tal e tal motivo aí você pode vir inclusive você pode fazer mais de uma linha né então escolhemos então por exemplo né escolhemos o caminho B pelos seguintes motivos E aí aqui você coloca uma lista né motivo um motivo dois motivo três e etc Então nada te impede de colocar isso Daqui para mostrar uma decisão de
de Ah enfim por que que você seguiu determinado caminho naquela linha específica naquele código específico a regra de ouro é se dá para evitar evita não coloque deixe o seu código Limpo fica muito mais simples de ler muito mais agradável de se trabalhar com tal código quando não der paciência coloque um comentário Olá seja bem-vindo a aula de expressões condicionais na aula de hoje Mais uma vez eu vou abrir o irb para demonstrar como que a gente utiliza o if tá bom o if é um uma palavra chave dentro da linguagem a maioria das linguagens
tem e ele ajuda a gente a determinar se a condição é válida ou não ou seja se ela é verdadeira ou não e a partir de então ah executar algum código Tá bom eu vou dar um exemplo aqui ah vamos criar uma variável chamada a iG 1 e agora vou escrever um if a é maior que zero tá Nesse caso a expressão condicional que a gente tá criando é a é maior que zero no caso ele é é uma pergunta que o computador vai fazer ah se um o valor um é maior que zero tá
nesse caso é verdadeiro então ele vai executar qualquer coisa que a gente colocar dentro dessa expressão eu vou colocar puts verdadeiro e vou colocar um R tá você pode ver que ele imprimiu aqui na tela o resultado no caso verdadeiro eu vou criar uma outra expressão agora Com a seguinte expressão a é menor que zero nesse caso ele não vai imprimir absolutamente nada tá bom você pode ver que ele só retornou o new aqui então quando você tem vamos supor a linha um do seu código a linha 2 3 4 você chegou em algum ponto
vamos supor nesse trecho do código aqui que tem um if ele só vai executar aquela instrução se o if for Verdadeiro Caso contrário ele pula da linha um para três direto uma outra forma também de Escrever uma condicional uma expressão condicional é colocar tudo na mesma linha então eu vou escrever aqui puts Ok if a maior que 1 pode ver que ele não escreveu nada se eu colocar a menor que 1 Ó Desculpa Ah sim porque o a ele é exatamente igual a um a gente poderia escrever de duas formas ou o A é igual
a número um Aí sim ele vai imprimir o ok ou o a ele é maior ou igual a um tá que é esse símbolo aqui que a gente utiliza maior ou igual nesse caso ele vai Retornar o ok e a mesma coisa se eu colocar menor ou igual porque no caso ele é igual então ele vai retornar o ok da mesma maneira uma outra coisa que você também pode fazer é utilizar o unless o unless ele não é comum em outras linguagens é uma coisa meio particular do Ruby e ele funciona ao contrário do IF
em inglês unless significa a menos que Ou seja você poderia traduzir mais ou menos dessa forma né então Imprima Ok a menos que Alguma coisa aconteça tá vamos colocar uma condição aqui por exemplo a menos que a seja igual a 1 por exemplo tá então ele não vai imprimir por quê Porque o a é igual 1 certo então se eu colocasse a menos que a seja do Aí sim ele vai imprimir tá joia é basicamente o contrário do IF ele inverte a expressão tá só somente se a expressão for falsa que ele vai executar o
código bom vamos avançar um pouquinho aqui e eu vou ensinar agora o else else funciona da Seguinte maneira vamos dizer que eu tenho aqui uma variável chamada idade e eu coloque 17 anos então vou criar uma expressão se idade foi maior ou igual a 18 a gente imprime maior de idade e agora a gente vai introduzir essa nova forma de criar nos as nossas expressões condicionais que é com ELS ele não tá alinhando direito aqui tá essa esse alinhamento a gente chama de identação no código mas não tem problema tá esse ELS deveria tá alinhado
Seria alguma Coisa desse tipo aqui e o ELS deveria ficar aqui ó então menor de idade é isso que a gente vai digitar lá também tá bom então é o if o else e o and alinhados tá E tudo que tiver aqui dentro com dois espaços de distância menor de idade and Pronto ele retornou menor de idade porque minha idade aqui era 17 Vamos alterar Então nossa idade para 21 para facilitar eu vou copiar esse código Pode reparar que agora ele Retornou maior de idade Tá certo então na primeira No primeiro caso ele caiu no
ELS por quê Porque a idade não era maior que 18 então ele caiu nesse caso aqui e ele ignorou completamente o código que tinha aqui ele caiu nessa expressão e aqui foi o contrário aqui era verdadeiro porque idade 21 era maior que 18 então ele imprimiu essa expressão maior de idade uma outra forma de você escrever essas expressões condicionais é utilizando o operador ternário o Operador ternário ele funciona da seguinte seg maneira você primeiro digita a expressão Então vamos supor idade maior ou igual a 18 Depois você coloca uma interrogação algum código aqui dois pontos
e algum outro código aqui então a gente tem separado em três partes tá a primeira parte é a condição a segunda parte é vai ser executada se essa expressão for verdadeira e a segunda a terceira parte vai ser executado Se essa expressão for falsa então vamos lá eu vou digitar puts maior deidade e aqui puts menor de idade Ele não vai me permitir pelo fato de que eu vou precisar de um parênteses aqui pronto agora funcionou o puts nada mais é do que um método e a string que escrevemos em seguida é o parâmetro desse
método só que você não precisa passar um parênteses tá na maioria dos casos em alguns casos como aqui em cima Como tem muitos espaços o ru pode se confundir na verdade pode ficar ambíguo e ele não vai saber onde que ele deveria considerar um parêntese implícito ou não então ele acaba se perdendo por isso que a gente tem que colocar o parênteses nesse caso uma outra forma de fazer o mesmo comando ali em cima eu vou voltar ali é fazer isso ó puts e aqui como parâmetro eu passo a minha Expressão de idade primeiro você
tem a expressão E aí você chama puts duas vezes nesse aqui a gente tá chamando Só o puts uma vez esse aqui é todo o parâmetro que ele tá recebendo E então você tem aqui dentro a expressão o resultado se ela for verdadeira e o resultado se ela for falsa V apertar enter então ele retornou maior de idade tá se eu mudar minha idade aqui para 10 executar novamente ele retorna menor de idade a gente pode Melhorar esse código ainda mais a gente pode utilizar interpolação de Strings aí nesse caso a gente até consegue tirar
os parênteses porque não tem mais aqueles espaços e não fica ambíguo então o ru não se perde a tá imprimindo essa frase né aqui dentro é um código el vai utar isso daqui antes de girar string ele vai fazer uma interpolação ele vai verificar essa idade maior que 18 para poder retornar maior ou menor e depois ele vai colocar O resto da string que já tá já tá fixa aqui tá então menor de idade se eu mudar de colocar 90 anos maior de idade tá joia tem algumas outras coisas para falar sobre expressões condicionais mas
eu vou deixar isso pra próxima aula Se tiver alguma dúvida me manda e a gente se vê na próxima aula Olá seja bem-vindo a aula sobre expressões condicionais parte dois dessa vez em vez de abrir o irb eu vou começar abrindo o meu editor de textos e digitando o seguinte código Nome Pedro ô ó não cometam esse erro sempre igual igual para poder comparar tá bom caso contrário você está atribuindo esse essa string para essa variável que é inclusive o que eu vou fazer aqui na linha de cima tá então isso daqui é uma atribuição
Isso aquii é uma comparação ou seja é uma expressão condicional tá então ah vou retornar aqui autorizado e vou colocar o else aqui Para não autorizado apenas Lembrando que tudo que vem depois do hash é um comentário e não vai ser executado eu vou copiar esse código aqui pelo fato do nome ser Lucas ele vai retornar falso essa expressão vou até colar aqui falso Tá certo então ele não não executa esse código do meio aqui ele vai executar esse de baixo o código depois do ELS tá então retornou não autorizado bom caso você queira comparar
uma coisa diferente Você pode colocar um exclamação aqui tá então ah se o nome for diferente de Pedro aí tá autorizado vamos colar lá para ver o que acontece autorizado porque o nome é diferente de Pedro né o nome que a gente salvou aqui nessa variável é Lucas então ele retorna autorizado Tá qual que é a diferença de rodar isso daqui deixa eu editar aqui mesmo fica mais fácil de entender e isso daqui nenhuma tá é exatamente a mesma coisa Ele também vai retornar autorizado tá é exatamente a mesma coisa só formas diferentes de escrever
o código Tá bom eu vou complicar um pouquinho mais as coisas agora eu vou criar uma outra variável chamada autorizado E aí eu vou mover essa essa lógica aqui para cá e o autorizado eu vou colara aqui ou seja esse autorizado ele vai guardar um valor boleano Ban tá E Bolean é true ou false Então nesse caso aqui a gente tá verificando que nome é diferente de Pedro só que na verdade eu vou colocar igual Pedro vou executar novamente retorno falso tá então autorizado uma variável que vai guardar o resultado dessa expressão aqui que no
caso é falso então autorizado também vai ser falso então a gente sabe que autorizado agora vai guardar o boano tá que que eu posso fazer aqui eu posso colocar o Símbolo de exclamação aqui na frente tá também conhecido como Bang o que que ele o que que ele faz ele inverte o poano que tá na frente dele então vamos rodar aqui esse mesmo código com um Bang na frente o que acontece ele estava retornando falso e agora ele vai retornar true então o que que acontece aqui ele tá verificando se não está autorizado tá se
você for meio que ler o código Você pode ler dessa maneira se não está autorizado Tá bom então aqui a Gente precisa inverter a ordem né não autorizado autorizado tá Seria a mesma coisa de escrever unless a mesma coisa tá é só uma forma diferente e você vai ver bastante que alguns casos é interessante você usar o bang tá só vou rodar aqui mais uma vez tela Não autorizada por quê Porque o nome é Lucas tá se a gente mudar o nome para Pedro agora eu vou salvar esse arquivo no meu desktop chamado expressões condicionais
P RB Ó o meu arquivo tá aqui já ó Então em vez de copiar e colar eu vou executar esse arquivo eu preciso mudar pro desktop e agora sim rby expressões condicionais tá então tá autorizado Tá ok porque agora o nome chama Pedro tá se eu colocar Pedrão ele vai falar que não está autorizado tá uma segunda coisa que a gente pode fazer e agora sim começa a ficar uma coisa mais real é verificar se O a senha está correta né então vamos criar eu vou apagar esses comentários aqui só pra gente ter mais espaço
bom eu vou alterar o nome novamente para Pedro eu vou fazer melhor que isso na verdade eu vou receber esse o nome e o password por parâmetro tá então a gente vai poder executar o nosso código ass Ruby o o nome do arquivo mais meu nome e a minha senha aqui e para fazer isso aí a gente usa o ou a Rgv essa palavra-chave reservada do Ruby é um Array e ele vai receber esses dois parâmetros Tá bom então nome vai ser o primeiro parâmetro que vai ser o zero tá e eu vou duplicar aqui
eu escrever senha e senha aqui eu vou pegar o primeiro parâmetro tá bom eh Toda vez que você utilizar o primeiro parâmetro você pode digitar first E se for o último você pode digitar last não é recomendado em todos os casos por exemplo aqui eu poderia passar mais alguma coisa aqui no Final e aí esse terceiro elemento que seria o último tá então eu vou manter o first Mas eu vou colocar o um aqui para pegar o segundo elemento Lembrando que a o índice começa no zero então o zero é o primeiro e o um
é o segundo eu vou colocar esse código comentado para ele não ser executado por enquanto e eu vou mandar imprimir nome só pra gente ver o que que tá vindo nessas variáveis senha vamos ver o que que ele imprime á imprime o nome Lucas e senha senha tá Esse alguma coisa foi ignorado porque a gente não tá usando ele tá colocar aqui super secreta senha super secreta pronto e agora a gente quer verificar se tá autorizado ou não então vai verificar se o nome é Lucas tá é importante notar que se você colocar em maiúscula
ele não vai funcionar então autorizado agora a gente volta do jeito que tava antes tá autorizado ou não autorizado tá Por enquanto eu vou checar Somente o nome então vamos lá autorizado excelente agora a gente precisa verificar senha também como que a gente faz isso duas vezes o e Comercial tá isso significa que ele vai verificar essa expressão e mais uma que a gente colocar aqui na frente no caso senha igual senha super secreta vamos ver se funcionou continuo autorizado tá se eu mudar aqui pra senha o k aqui no final por exemplo ele vai
me dizer que não Está autorizado mais uma coisinha que eu vou ensinar nessa aula é caso eu queira aceitar um outro usuário também então eu vou colocar um parênteses aqui pra gente poder separar a lógica tá então o nome é igual a Lucas e eu posso usar o símbolo de or que é esse Pipe Pipe nome igual a Pedro tá vou usar o Pedro aqui de novo então o que que a gente tá fazendo aqui agora ele primeira coisa ele vai verificar essa expressão tá então ele Vai verificar se o nome é igual a Lucas
ou nome é igual a Pedro depois disso ele vai passar para essa expressão aqui mas ele só passa para essa expressão se essa expressão aqui foi verdadeira se ele verificou que o nome não é nem Lucas nem Pedro ele nem chega a executar essa expressão da direita tá Por quê Por causa do ec comercial duplicado aqui tá ok o ou é o contrário mesmo se esse aqui for falso ele Verifica o da direita Porque qualquer um dos dois pode ser Verdadeiro para que ele ele retorne true tá joé então aqui o nome tem que ser
igual a Lucas ou o nome tem que ser igual a Pedro e a senha tem que ser senha super secreta Vamos então salvar e ver se funciona Então a primeira tentativa que eu vou fazer aqui é passando Lucas e senha super secreta autorizado eu vou inclusive parar de exibir isso aqui porque a gente já viu né era só para ensinar como é que o RV Funciona então vamos lá de novo autorizado Se eu mudar minha senha para alguma coisa diferente ele vai falar não autorizado seix eu mandar para Pedro com uma senha errada el vai
retornar não autorizado mas se eu colocar a senha certa Ele também me retorna autorizado bom foram introduzidas Várias Vários conceitos diferentes aqui né a gente aprendeu o bang que você coloca o ponto de exclamação no começo da frase você aprendeu o ou você aprendeu and tá Esse Pipe Pipe também é conhecido como or tá e o deixa eu colocar aquição F mais fácil e esse duplo e Comercial é conhecido como A então eu espero que você tenha gostado desses conceitos novos isso aqui a gente usa muito tá no dia a dia de programação você vai
ver isso o tempo todo então acostume-se com eles eu tenho certeza que você vai aprender isso aqui e vai tirar de letra muito rápido Espero que Você tenha gostado da aula e eu te vejo na próxima aula até lá Olá seja bem-vindo a aula na qual vamos falar sobre o case que é uma forma de substituir o if em alguns casos para simplificar a lógica de tomada de decisão para demonstrar como que a gente pode utilizar o case eu vou utilizar esse código que eu já tenho disponível aqui esse código não ficou muito elegante pelo
fato da gente ficar passando várias expressões condicionais E separando-as com and e or né esse Pipe e o e Comercial imagina que por exemplo eu preciso adicionar mais uma expressão ou seja mais uma comparação aqui nesse if ia ficar extremamente complexo e difícil de manter tem uma outra forma que a gente poderia escrever usando o Case que ele vai ficar mais simples de ser entendido e mais flexível caso a gente queira adicionar novos comportamentos novas tomadas de decisão o case ele é parecido com o if Tá bom inclusive ele serve para situações onde você tem
um if pegar esse if autorizado aqui como exemplo E você tem um outro if aqui dentro fazendo outra comparação E aí imagina você tem um outro else aqui dentro né E aí você vai tendo mais coisas e aí imagina que você ainda pode ter um outro if né E aí fica essa coisa if if fif fica uma bagunça só a sintaxe pra gente criar um Case é muito simples a gente vai escrever aqui case nome O que que a Gente quer que aconteça caso o nome então a gente coloca o caso o nome seja Lucas
então e a gente pode retornar a senha registrada Tá bom eu posso colocar uma variável aqui eu vou inclusive alinhar isso daqui só para ficar mais fácil da gente entender então tudo que retornar desse Case aqui eu vou jogar para essa variável vocês podem ignorar esse código aqui por enquanto e podem ignorar a senha por enquanto também então caso o nome seja Lucas a senha tem Que ser S1 tá como se fosse abreviação de senha um então eu posso inserir outros caso aqui quando a senha for Pedro então a senha é S2 vamos lá a
gente tem Natanael e a senha é S3 eu vou mandar imprimir isso aqui na tela tá bom só pra gente poder entender e vou mandar exibir Qual que é a senha registrada obviamente isso daqui tá sem segurança nenhuma então a gente não usaria isso daqui no sistema real tá é mais para fins didáticos mesmo então Vamos revisar o código O que que ele tá fazendo primeira coisa é pegar o primeiro parâmetro que vai ser passado pelo terminal depois do comando né no caso eu Reni esse arquivo para Case tá então nome deixa eu abrir meu
terminal aqui Ruby cas e Lucas então ele vai pegar esse nome cas aqui ele vai verificar se esse nome bate com uma dessas coisas que estão aqui no caso ele vai bater com Lucas e vai retornar S1 tá esse S1 vai ser registrado nessa Variável que a gente vai imprimir na tela e é só isso que o código faz por enquanto deixa salvar executar e pronto a senha registrada pro Lucas é S1 tá E vamos tentar fazer fazer um teste pro Pedro S2 Se eu colocar um nome aqui que não existe por exemplo Paulo ele
vai retornar nada é uma uma Street vazia na verdade só que a gente não quer mostrar senha para usuário né o que a gente quer é verificar se ele está autorizado Então a gente vai pegar o segundo parâmetro Que é a senha e o nosso autorizado aqui vai ser autorizado é igual senha digitada ou informada se a senha informada é igual a senha registrada tá então ele vai comprar uma senha com a outra vamos ver se isso aqui funciona se eu não passar nada ele vai retornar não autorizado porque essa senha vai vir vazia uma
string vazia ou seja aspas aspas né mas se eu passar a senha aqui na frente passar uma senha errada ele Continua não autorizado porém se eu passar S1 autorizado ou seja bateu username com password as credenciais né ou nome e senha vou tentar Pedro com a senha do Lucas não funciona como se era esperado mas tentar com S2 autorizado como eu falei antes essa senha não Tá em criptografada tá bom ela tá em código explícito aqui então não é uma boa prática principalmente em termos de segurança mas para efeito didático ela funciona bem bom eu
vou deixar esse Código aqui depois do dessa aula então você vai poder copiar esse código e eu vou criar um novo arquivo chamado k 2. RB a gente vai fazer uma brincadeira com o cas aqui primeira coisa que eu vou pegar aqui é criar uma variável chamada tempo atual e vou utilizar o ar v p first tá o primeiro o primeiro parâmetro que a gente vai passar no nosso comando então eu vou fechar o irb e vou digitar Ruby cas 2 e vou passar um tempo tá esse tempo vai ser um tempo de um jogo
de Futebol que varia como vocês sabem de 0 minutos até 45 minutos o primeiro tempo e depois ele vai de 46 até 90 eu vou eu não vou considerar de 0 a 45 de novo quando você de um jogo de futebol de videogame por exemplo você vê que eles costumam Não não é uma cultura Nossa do Brasil a gente chama de 045 e depois de 045 novamente mas fora do Brasil eles costumam chamar de 46 até 90 minutos bom e o que que eu quero com esse cas do né Esse arquivo que eu criei agora
o que que eu quero com esse programinha eu quero que ele informe pra gente dado o tempo atual que a gente vai passar como parâmetro aqui vamos por 3 minutos eu quero que ele retorne se é o primeiro tempo ou se é o segundo tempo ou ainda se é um tempo inválido tá joia Então a gente vai utilizar o cas para esse propósito tá então cas tempo atual eu poderia fazer né zero então retorne primeiro tempo tá quando for um então Retorna primeiro tempo vai vai ficar uma lista muito grande aqui e a gente não
quer isso né então como é que a gente faz a gente usa um Range então eu posso colocar 0 até 45 e ele retorna primeiro tempo e aqui eu altero para 4 até 90 né E aí ele retorna segundo tempo eu poderia inclusive colocar um puts aqui se for primeiro nesse caso aqui ele vai imprimir primeiro tempo se for segundo segundo tempo e a gente também quer verificar se o usuário Digitou alguma coisa que não está nesses ranges aqui tá bom no caso se ele digitar 91 por exemplo ou se digita 1000 ou mesmo um
valor negativo então que a gente vai escrever aqui el puts tempo inválido legal por padrão o ARV ele sempre eh transforma os parâmetros em um string eu vou até eh mandar exibir aqui ó tipo do parâmetro e vou passar aqui o tempo atual pon Class só para poder mostrar para vocês que o tipo dele é uma string tá então Ah o que eu vou fazer Aqui é converter ele para integer eu vou apagar esse comentário aqui vamos rer novamente três primeiro tempo você passa zero primeiro tempo 45 primeiro tempo 46 Opa segundo tempo tá se
eu passar 90 ainda segundo tempo mais 91 o tempo já é inválido mesma coisa se eu passar um valor negativo também vai ser um tempo inválido dessa forma a gente resolve de um um código simples todas essas variações de tempo aqui tá bom esse foi um segundo exemplo do Case incluindo o Else para ficar mais claro então é isso espero que você tenha gostado dessa aula e a gente se vê na próxima aula Olá seja bem-vindo à aula sobre laços laços são uma forma de interar os seus elementos de uma coleção sendo ela um Array
ou um hash eu não vou enrolar muito com explicações teóricas eu vou te demonstrar na prática O que que significa um laço tá joia primeira coisa que eu vou fazer aqui é abrir meu terminal e então abri o meu irb como a Gente anda fazendo ultimamente e vou criar um array com os seguintes valores 1 2 3 4 tá joia legal criamos e bom o que que eu quero fazer agora é imprimir cada um desses valores e fazer alguma coisa com eles para alterar eles por exemplo para fazer isso é muito simples a gente usa
um método chamado it que vai iterar tá bom iterar é uma palavra que significa você vai de elemento em elemento e fazer alguma coisa com ele tá bom E então eu Vou faz fazer a seg escreve o seguinte código Array P each e agora vou passar um bloco bloco é uma coisa nova que vocês não viram ainda no Ruby tá Ah bloco tem duas formas de ser escritas eu vou escrever as duas formas tá bom essa é a primeira a gente geralmente usa essa forma quando a gente vai escrever tudo em uma linha só tá
e a segunda forma a gente escreve quando a gente tá utilizando em mais de uma linha então eu vou escrever aqui elemento tá eh esse Pipe variável Pipe significa que cada um dos elementos aqui vai ser referenciado através dessa variável Tá bom então só para vocês entenderem eu vou escrever aqui puts vou fazer uma setinha e vou escrever elemento aqui dentro tá bom então fazendo puts com essa string e agora eu tenho que fechar essa essa chave aqui para fechar o meu bloco então legal ó você vê que ele colocou uma setinha para e colocou
um número né Você pode colocar uma setinha Do outro lado você pode brincar com com essa interação um pouquinho tá bom Outra coisa que eu vou fazer aqui é multiplicar Esse valor já que são todos inteiros e o símbolo de multiplicação é o asterisco tá ou eu poderia usar um mais também poderia somar um para todos eles então você pode reparar que o 1 virou 2 3 4 e 5 eu poderia somar 10 e eles viraram 11 12 13 14 eu poderia fazer qualquer operação multiplicar por dois vou limpar minha tela do virou 1 2
3 4 virou 2 4 6 e 8 como você pode ver não tem muito segredo é eu só gostaria de mostrar mais uma coisa nessa aula que é como você escreve o bloco em várias linhas né Lembra que eu falei que tinha duas formas de escrever um bloco então eu vou demonstrar aqui a a segunda forma tá joia Então vamos lá a gente tem um Array aqui assim né E aí a gente vai fazer um loop da maneira que a gente já feito foi assim né elemento E aí a gente faz o puts Opa Elemento
aqui tá bom Opa a a diferença é que em vez de abrir e fechar Chaves A gente vai usar o do e o end tá E aí a gente joga isso aqui pra linha de baixo ficando mais ou menos assim tá então a gente tá fazendo aind do Wi mesma coisa em vez de usar abre fechas e fecha Chaves A gente tem o do e o end Beleza você repara que a variável aqui continua da mesma maneira e eu vou copiar esse código aqui na verdade deixa eu ah vou colocar isso Daqui mais menos um
na verdade dessa vez tá bom vou copiar esse código vou jogar aqui no meu irb você repara que ele subtrai o um de cada um dos elementos né então é isso uma linha é bem simples só para mostrar como é que a gente faz essa iteração né essa esse laço a gente chama de laço ou ainda de loop tá bom porque ele tá fazendo um loop né ele tá indo um por um Então é isso uma aula um pouco mais Fácil dessa vez ah Espero que você tenham gostado e eu te vejo na próxima aula
tchau tchau Olá seja bem-vindo a aula sobre Ruby jams Ruby jams ou simplesmente jams que é o jeito mais comum que a gente costuma usar nada mais é do que uma forma de gerenciar nossas bibliotecas disponibilizar para outros desenvolvedores e utilizar bibliotecas criadas por outros desenvolvedores também a gente tem esse site rubygems.org que é o site oficial das Ruby jams você não precisa abrir esse site para para procurar ess Jam tem outras formas mais eficientes como por exemplo utilizando bundler mas eu vou explicar o bundler numa próxima aula então eu vou focar só no R
jams nessa aula aqui tá joia bom como é que funciona vamos supor que você tenha criado um escrito um código que você ache que pode ser útil para outros projetos também então em vez de simplesmente copiar e colar o código O Que pode ser meio pode ficar meio bagunçado depois de um tempo você pode eh criar um código diferente para um alterar uma coisa só em um não altera no outro pode ser meio confuso você eh coloca tudo numa pasta e cria um pacote chamado gem tá tem uma estrutura de diretórios própria para ser utilizado
Mas não se preocupe que tem uma ferramenta o próprio bundler que eu tava falando agora H pouco o bundler ajuda a gente a empacotar e a publicar aqui no Site do RU jams para outras pessoas poderem utilizar ou você mesmo poder utilizar em outros projetos Ah um exemplo disso daí é o Projeto mail que é deixa eu abrir aqui aqui é um é um handler para gerenciar e-mails né então você consegue enviar e-mails através do Ruby então eh a gente usa bastante essa G eh uma interna do Rios por exemplo Então quando você quer mandar
um um e-mail para um usuário você não precisa escrever todo o Código ah do zero você pode simplesmente usar essa gem porque esse trabalho já foi feito tá certo uma G que eu criei H muitos anos atrás eu não tô mais mantendo essa GM mas eu vou usar como exemplo nessa aula é o Code to PDF tá é código para PDF o que que essa GM faz Opa eu não fez a busca Ah agora fez ela converte o seu código fonte para um PDF tá uma vez eu estava trabalhando numa empresa e a gente precisava
converter os códigos de todos os projetos para PDF Porque a gente ia registrar os softwares ah como propriedade intelectual pra gente não ter problema de de de de copiarem o nosso código e e né uma pessoa mal intencionada pegar o código e utilizar para para uso próprio então a gente ia registrar isso tudo direitinho e a gente precisava Enviar Para eles um PDF com todo eh com todo o código escrito nesses projetos como eu sabia que eu ia ter que fazer isso para vários projetos eu pensei por que não criar uma Gem né isso poderia
inclusive ajudar outras pessoas né E foi uma gema assim que eu criei meio que aqui na brincadeira você pode ver que aqui tem todas as versões ó a primeira foi em 2011 na verdade eh a maioria das versões foram lançadas até 2012 né Depois eu parei de manter essa gem e parei porque ela já tava funcionando bem então não precisava de muita manutenção e acabou que assim foi foi uma uma coisa bacana porque 18.000 pessoas como você pode ver Aqui 18.000 pessoas baixaram essa gem e testaram e usaram Espero que tenha dado certo mas é
legal que notar que o mesmo código foi utilizado por várias pessoas ou seja essas pessoas não precisaram escrever todo esse código do zero né então Ah bom o que que eu vou fazer eu vou instalar essa gem tá eh a sintaxe que a gente usa para instalar uma gem é gem Install e o nome da gem então eu vou digitar aqui code to PDF tá e ele vai instalar a versão mais Recente que no caso é a 031 Vai demorar um pouquinho e depois disso essa di Vai disponibilizar aqui ó ele vai disponibilizar e esse
binário tá em qualquer diretório que você tiver inclusive ele você vai digitar PDF você vai ver que ele já tá disponível eu deixei aqui no meu desktop uma pastinha de um projeto tá na verdade é uma parte de um projeto só e chamado Tools e aqui ele tem eh alguns códigos em Ruby tá tem alguns Markdowns tem outros arquivos também e para utilizar a GM eu simplesmente dito cod to PDF e eu passo o nome da pasta em seguida tá bom deitado isso daqui você vai ver que ele vai ler os arquivos depois ele vai
converter para PDF então eu vou abrir o arquivo aqui e você repara que ele colocou todo o código né ele coloca o nome do arquivo e o número de das linhas e o código na frente tá e você não precisa dessa gem você não precisa utilizar essa G né Foi só um Exemplo ah de como que a gente pode compartilhar código através do R gems tá bom ah eu não sei se eles mostram uma estatística de quantas gems existem mas existem aqui ó ah não esse aqui é o total de downloads Mas com esse número
você consegue imaginar né quantas gems existem inclusive o próprio rails é uma G né então achado 79 milhões de vezes eh aqui nesse site tem mais informações né você pode ver a lista com todas as Gems você pode ver a Os guias de como criar de como que você coloca o nome de como que você publica questões de segurança uma série de coisas e você pode inclusive contribuir aqui pro próprio projeto mas ah a ideia principal que eu quero que você entenda aqui é que rub Jam ou simplesmente gams né ah é uma forma de
empacotar o seu código Ou seja criar uma biblioteca e compartilhar entre os seus projetos e também com outros Desenvolvedores tá joia Ah só para complementar isso daqui um lugar muito comum que a gente costuma ah publicar o nosso código fonte caso ele seja open source é no github né se você não tem uma conta lá eu recomendo fortemente que você crie uma E aí as pessoas conseguem ver o código né então esse aqui por exemplo é uma GM que eu não criei mas eu estou mantendo então tem toda a o código fonte dela aqui tá
certo tá tudo no github e qualquer Pessoa consegue entrar e ver tá joia E essa foi a aula de hoje te vejo na próxima aula Olá nessa aula vamos falar sobre bundler bundler é uma ferramenta que te ajuda a gerenciar as suas gems as quais vimos na aula passada imagine o seguinte cenário você tem um projeto E aí você tá utilizando uma gem alguma gem específica e ela tá na versão um E aí tem um colega seu que tá trabalhando nesse projeto e ele vai lá e instala instala o mesmo projeto configura tudo No computador
dele porém ele instala a mesma gem na versão dois e aí ele vai começa a trabalhar no projeto aparentemente Tá tudo funcionando e tal de repente alguma coisa para de funcionar no computador dele e no seu continua funcionando aí ele vai arruma no dele passa a funcionar e no seu para Por que que isso tá acontecendo por conta das versões diferentes as versões são incompatíveis bom como que a gente pode resolver isso o bundler pode ajudar A gente o bundler serve pra gente garantir que todas as versões que você tem instalado no seu projeto também
vão ser instaladas num projeto diferente Então imagina assim que você tem uma G vamos vamos pegar esse mesmo caso desse projeto que eu comentei você tem lá versão um certo Você instalou no seu computador testou Tá tudo funcionando quando seu colega seu amigo for instalar o mesmo projeto ele também vai instalar a versão um porque o bundler ele cria um Arquiv Minho dentro do nosso projeto onde ele lista todos os arquivos todas as versões de dependências dessas gams porque uma Gam pode depender da outra e tudo mais então ele cria um arquivo nem é um
arquivo pra gente editar tá é um arquivo que só ele entende eh dá pra gente ler é texto puro mas eh tem uma sintaxe meio diferente e ele usa internamente tá a gente não precisa nem mexer nesse arquivo e esse arquivo garante que a as mesmas gems vão ser Instaladas tá então quer dizer que se o seu colega atualizar essa gem esse arquiv inho vai ser atualizado E aí quando você atualizar o projeto você também vai ah instalar a mesma versão que ele tem então você sempre ficam na mesma versão e isso evita uma série
de problemas de incompatibilidade esse arquiv inho que eu falei na verdade são dois arquivos o primeiro deles chama J file esse sim a gente edita tá esse a gente vai abrir no nosso editor de texto E escrever uma lista das gems que a gente vai usar o segundo chama j file. loock e esse a gente não edita esse o bundler gerencia pra gente e a gente nunca precisa abrir ele esse recurso de manter as versões das gems em diferentes projetos é interessante também na hora que a gente vai vai fazer Deploy quando a gente tá
colocando a nossa aplicação no ar para que os usuários finais vão utilizar ou que seja um website a gente tá colocando publicamente disponível a Gente quer que tudo continue funcionando no servidor também então o Jam file e o bundler também fazem com que tudo que funcionava no seu computador funcione no servidor um outro recurso que o bundler também ajuda a gente é quando uma gem é incompatível com a outra então Imagine que por exemplo o ros que é uma gem é incompatível com uma Gem do postgis alguma gem alguma versão muito antiga da do postgress
na especificação da Gem do RS vai tá lá internamente tá a gente nem Vê essa configuração mas se você olhar no código fonte do R você vai ver lá a Gem do post tem que ser maior ou igual a não sei 0.5 um exemplo isso isso faz com que o bundler Garanta pra gente que quando ele tiver instalando todas as gems todas elas são compatíveis entre si e se uma uma só você pode estar uma lista de 30 gems se uma só não for compat ível ele vai dar erro e vai falar olha você precisa
resolver ess essa esse problema de de compatibilidade aqui tá Certo não é um problema muito muito comum de acontecer mas também não é tão raro pode pode ser que aconteça de vez em quando antes do bundler e antes de outros gerenciadores de outras linguagens tal era bem mais complicado você tinha que muitas vezes anotar no ridm né no no arquivo de de documentação mesmo e o que que era compatível com o que como que configurava e tal e o bundler Assim como outras ferramentas que gerenciam as dependências dos Plugins das gems Ah assim como essas
outras ferramentas o bundler veio para resolver seus problemas e ele resolve isso de forma Espetacular é muito bacana ele funciona muito bem e o mais legal é que ele é muito fácil de usar e eu vou demonstrar isso agora bom eu tô aqui no meu computador já tô aqui com o terminal aberto e eu vou então criar uma pasta aqui vamos fingir que isso aqui seja um projeto tenho minha pasta aqui eu vou acessar essa pasta aqui pelo terminal Então tá na minha área de trabalho então desktop CD para trocar de diretório e pronto eu
acessei aqui pelo terminal essa pasta aqui que a gente acabou de criar vou utilizar aqui o editor Atom tá você pode utilizar qualquer editor que você quiser eu simplesmente arrasto esse projeto essa pastinha pra gente poder trabalhar nesse projeto aqui tá eu vou criar uma um um primeiro arquivo que é o j file na verdade é o único arquivo já que o J file. loock é o bundler que vai Criar pra gente Lembrando que se você tiver no Windows e dependendo do editor se você tiver usando o editor de texto muito simples por exemplo o
Notepad que é o bloco de notas ele vai criar com a extensão pon TXT tá bom e também mesmo se você não tiver usando o bloco de notas Cuidado para não confundir e colocar a extensão pon RB que é do Ruby tá esse arquivo simplesmente não tem extensão Então esse arquivo aqui é muito simples tá a gente simplesmente precisa Declarar três coisas primeira delas chama source e é basicamente de onde o bundler deve buscar as gems que a gente vai listar nesse arquivo aqui então é o site onde ele procura essas dependências é um repositório
de dependências tá então o site é https 2 barru js.org tá esse é o repositório oficial de gams do Ruby a segunda coisa que eu vou declarar aqui é a versão do Ruby tá a versão que eu tô utilizando neste exato momento é a 2.5.0 tá se você tiver utilizando uma Versão mais nova não tem problema você simplesmente vem aqui e coloca Ah dessa forma aqui tá bom Com esses três Ah três números da versão que três números que compõem a versão e a terceira parte do G file são as gems em si eu vou
começar aqui utilizando e adicionando o enumerate it que eu comentei na aula passada eu vou adicionar a g rilos também então eu vou adicionar o RPC aqui também e se a gente quisesse por exemplo a versão atual do Ros é 5.1.5 se por algum motivo eu quisesse colocar para utilizar versão 4.2 não sei por algum motivo eu quisesse especificar eu posso simplesmente fazer dessa forma Aqui você passa um segundo parâmetro tá então é vírgula E aí você passa um segundo parâmetro com a versão que você quer deixa eu aumentar minha fonte aqui então antes da
gente rodar o bundler para ele gerar o jfire p loock eu vou deixar essas duas linhas aqui comentadas e só pra gente ver por partes Como é que tudo funciona tá bom salvei o arquivo vou voltar pro meu terminal vou limpar a tela aqui só para ficar tudo mais claro e aí eu simplesmente rodo bundle install tá esse comando tá a gente tá chamando bundler repare que aqui o comando é bundle não tem um R tá quando você instala o bundler ele já cria Esse comando aqui pra gente depois install se eu quisesse eu não
precisava passar install se eu rodar simplesmente bundle o modo padrão dele já é Rodar Install Tá mas internamente ele tá rodando bundle install então na prática não vai fazer diferença alguma esse procedimento demora um tempinho porque olha só ele tá verificando as gems ele tá buscando as gems nesse site que a gente passou para ele tá resolvendo as dependências né Tá vendo se tudo é compatível e tal se se por acaso elas não fossem era nesse passo aqui que ele ia dar erro tá E aqui ele tá verificando que eu já tenho todas essas gems
Instaladas e ele mostra uma mensagem aqui no final dizendo que foi instalado né que um G file de dependência Ah foi carregado e oito gems foram instaladas Poxa mas se eu coloquei uma gem aqui só por que que foram oito instaladas e o que que são essas outras gams aqui bom acontece que ã o bundler gerou o arquivo bundler P loock pra gente e se a gente deu uma olhada eh ele verificou Quais são as dependências da gem é n 88 e a única dependência dessa gem é o Active Support porém o Active support também
tem as suas dependências então ele tá aqui e a ele tem essas quatro dependências e aí cada uma delas tem as suas próprias dependências então é como como se fosse um loop né ele vai indo em um aí ele verifica Ah é 18n Ah ele ele tem essa dependência aqui até que chega no momento que não exista mais dependência alguma tá aqui embaixo ele coloca mais algumas informações Mas como eu tinha falado anteriormente tudo isso Aqui é usado internamente por ele tá a gente nunca precisa editar esse arquivo a gente nem deve editar esse arquivo
para evitar problemas agora eu vou descomentar aqui a di rios e 4.0 desculpa 4.2.0 e eu tenho certeza que eu não tenho instalado no meu compador eu vou limpar meu terminal aqui então quando eu rodar bandal novamente olha só ele vai falar que essa G não é compatível com Active support que já estava lá anteriormente Porque a gente já tinha instalado a versão 5.1.5 tá então para resolver esse problema a gente roda bundle update esse bundle update ele vai atualizar as versões que a gente já tinha instalado Então olha só ele tá resolvendo as dependências
E aí ele tá instalando essa G Jason que eu não não tinha antes ele tá instalando eh tudo que tá verdinho aqui ó ele tá mostrando ah tô instalando 4.2.0 e era 5.1.5 Ou seja a gente tá retrocedendo a gente tá usando uma versão mais antiga agora tá e ele instalou várias outras aqui como dependências e olha só como é que ficou o nosso G file agora ficou bem maior Tá certo e todas essas gems aqui estão em uso só que a gente sabe que na prática a gente vai utilizar somente essas duas porque elas
que estão aqui no nosso file o que acontece é que elas dependem dessas outras gems tá bom não se preocupe todas elas ocupam alguns Bytes Alguns kilb são todas gems ah de código puro então é não ocupa Nenhum espaço no seu computador Mas é interessante saber como é que as coisas funcionam por baixo dos panos por último eu vou descomentar essa G aqui e vou novamente rodar bundle ele vai simplesmente incluir agora o wires pack dependendo do tipo de conexão que você tem aí é Pode ser que demore um pouco mais um pouco menos tá
certo aqui no caso eu já tinha o rpec instalado por Isso que ele foi bem mais rápido dessa vez tá então nosso team f. loock tá mais uma vez atualizado se eu buscar aqui por airpack vai ver que tanto airpack quanto as suas dependências já estão todas aqui todas instaladas bom vamos criar alguma coisa mais útil Então nesse projeto porque por enquanto a gente só tá listando as dependências né Vamos criar um arquivo aqui chamado cores. RB RB de Ruby tá bom é bacana se você puder fazer isso aí no Seu computador no seu terminal
você vai aprendendo na prática né como que as coisas funcionam em vez de simplesmente ficar assistindo as aulas você faz aí junto comigo você acaba aprendendo mais tá bom então a primeira coisa que eu vou fazer aqui nesse arquivo cores. RB é fazer um require do bundler tá então é bundler bar setup geralmente a gente só precisa colocar o nome da gem na maioria dos casos o bundler é uma exceção e a gente coloca barra setup e isso porque Ele vai carregar outras gemas e para ele carregar outras gemas a gente precisa rodar um comando
que é bundler require tá bom sempre que a gente tiver um projeto eh fazendo assim do zero igual a gente fez criando a pasta criando os arquivos manualmente a gente tem que colocar essas duas linhas se por exemplo você tiver trabalhando num projeto rails você não precisa fazer nada disso ele vai criar o gfile gfile p loock ele já vai colocar algumas dependências por Padrão aqui pra gente e ele já vai fazer esse esquema aqui do bundler para ele poder carregar as gems automaticamente então ele vai fazer tudo isso aqui pra gente tá bom como
esse aqui é um projeto que a gente tá fazendo na mão né na raça aqui colocando cada linha do código a gente precisa colocar essas coisas Bom vamos lá a uma das gems que eu carreguei então foi o enumerate 8 Vamos só para garantir que a gente tá carregando essa gem eu vou colocar um putut enumerate it Que é é a classe principal não é nenhuma classe Na verdade é um módulo eu vou verificar qual que é a classe desse módulo aqui tá vamos lá voltar pro terminal e vou rodar Ruby espaço cores. RB ele
vai imprimir pra gente module como eu falei antes essa constante aqui é um módulo tá então por isso que ele tá exibindo ali módulo então basicamente a partir desse ponto aqui desse trecho aqui do código a gente pode escrever qualquer Código usando as gems que estão no nosso J file tá joia se tiver alguma dúvida é só me avisar e a gente se vê na próxima aula Olá A partir dessa aula criaremos alguns programas sem interface gráfica program sem Inter Face gráfica são aqueles que não tem janela por exemplo um aplicativo de calendário como esse
aqui ou mesmo um aplicativo de mapas como esse aqui são programas que tem interface que tem uma janela que tem botões até mesmo um navegador como por Exemplo Safari ou Google Chrome Então qualquer navegador onde você consiga por exemplo Abrir o site do Google o Google nada mais é do que uma aplicação ou seja um programa A única diferença é que ele roda dentro do navegador já os aplicativos sem interface gráfica são aqueles que rodam pelo terminal ou seja basicamente o que a gente vem fazendo até agora porém dessa vez Vamos criar algo que seja
um pouquinho mais útil Vamos criar um programa que vai calcular A idade de uma pessoa então vamos lá eu vou abrir meu terminal e antes mesmo de criar o programa eu vou mostrar como que a gente vai executar esse programa depois que ele tiver pronto Bom primeiramente a gente chama Ruby depois a gente coloca um espaço mais o nome do arquivo que a gente quer executar no caso esse arquivo chama cálculo underline da idade P RB porque esse aqui vai ser o arquivo que a gente vai criar então a gente tá falando Ruby eu quero
que você Execute esse arquivo e aqui eu vou dar um espaço e vou passar o primeiro parâmetro primeiro e único na verdade esse primeiro argumento ou parâmetro será o ano de nascimento no meu caso em particular eu nasci no ano de 1987 então ele vai calcular a minha idade baseado nesse ano que estamos informando então Mãos à Obra eu vou abrir o Atom meu editor de textos se você não estiver vendo a lista Com os arquivos e diretórios não tem problema basta você vir aqui em file Open E aí a gente escolhe o diretório que
a gente quer abrir no meu caso eu vou abrir o desktop a minha área de trabalho pronto agora eu consigo vir aqui clicar com o botão direito e selecionar novo arquivo ou em inglês new file esse arquivo como a gente viu anteriormente vai se chamar cálculo da idade. RB Lembrando que o arquivo não Deve conter espaço entre as palavras a gente deve usar o underline tá ou und como você quiser chamar esse tracinho aqui embaixo sempre utilize underline em vez de utilizar espaços ah outro aviso importante não esqueça também do pon RB No final vocês
lembram que no nosso terminal a gente tinha digitado cálculo da idade e mais o ano esse primeiro argumento aqui ele vai vi através do arg V então arg V que retorna um Array de todos os parâmetros que a gente tá Passando né então a gente só quer pegar o primeiro a gente pode utilizar o método first porém tem uma pegadinha aqui todos os métodos que você passa através do terminal sempre vem como string então aquele 1987 vai vir dessa forma aqui e não do jeito que a gente quer que é um número ou seja dessa
forma aqui para fazer essa conversão é muito simples basta que a gente coloque um ponto tu e no final sempre que você quiser converter uma string para um Integer ou seja um texto para um número inteiro basta você colocar pon tui no final e agora precisamos Salvar esse dado que foi informado através desse parâmetro em uma variável que eu vou chamar de ano de nascimento então aqui o aqui eu tô fazendo uma atribuição tá esse ard v.f. vai ser atribuído pro ano de nascimento e a partir de agora a gente consegue já calcular Qual que
é a idade então eu vou criar uma outra variável Chamada idade para a qual eu vou atribuir o resultado desse cálculo como é que a gente faz para descobrir a idade muito simples a gente faz uma subtração o ano atual menos o ano de nascimento Então vamos lá o ano atual no momento que eu tô gravando essa aula é 2018 então eu vou fazer 2018 menos o ano de nascimento que a gente já tem salvo nessa variável que a gente declarou na primeira linha porém a gente não quer deixar o 2018 travado ali porque se
a Gente executar esse programa em 2019 2020 ou qualquer outro ano seguinte ele para de funcionar então muito simples em vez de passar 2018 aqui a gente chama esse método time. now. tá isso aqui já é nativo do Ruby não precisa fazer nada mágico para ele funcionar simplesmente time. Now ele vai nos retornar um objeto que tem todos os dados do presente momento ou seja da data atual a gente poderia utilizar month para mês Day para dia ou mesmo Hour e vários outros métodos aqui então eu vou retornar aqui para ir e tudo Teoricamente deve
funcionar porque aqui a gente tem o ano atual menos o ano de nascimento para finalizar o nosso programa A gente precisa exibir a idade que a gente acabou de calcular para isso eu vou utilizar o E aí eu vou passar uma string basicamente falando sua idade é e eu vou fazer uma interpolação com a variável idade ficaria mais ou menos assim sua idade é X anos então salvei aqui o arquivo e vamos então pro terminal verificar se o nosso programa funciona de fato eu digito Ruby cálculo da idade pon RB mais o parâmetro 1987 aperto
enter sua idade é 31 anos que é de fato a minha idade Agora imagina que uma pessoa nasceu ano passado então pessoa vem e digita 2017 e a gente tem um probleminha de gramática aqui né sua idade é um anos não faz sentido faltou Cortar esse S fora como é que a gente faz isso muito Simples a gente pode utilizar um operador ternário que a gente já aprendeu anteriormente vamos voltar aqui pro Atom e em vez de utilizar a palavra anus eu vou fazer uma outra concatenação então eu vou verificar aqui se alguma condição que
a gente quiser vai ser verdadeira ou não e aí a gente exibe anos ou ano então eu vou colocar um X aqui tá bom depois a gente define o que que vai ser e a sintaxe de um operador ternário é essa né se x for verdadeiro a Gente quer exibir ano se for falso a gente quer anos joia mas o que que seria o x O que que a gente faz para verificar se precisa ser ano ou anos muito simples a gente simplesmente compara a idade com número um ou seja idade é igual a um
tá se idade for igual a um a gente quer que retorne uma string ano se ela for qualquer outro número diferente de um retorna anos vamos salvar e ver se funciona vou executar exatamente o mesmo Comando que eu Z que da última vez funciona sua idade é um ano vou agora executar 1987 sua idade é 31 anos vou colocar só mais um valor aqui 1964 sua idade é 54 anos muito bem agora eu quero que você faça o mesmo programa que a gente criou aqui no seu computador se você tiver alguma dúvida aqui embaixo tem
um espaço de comentários onde você pode me mandar a sua dúvida e então eu te ajudo até a próxima Aula Vamos criar mais um programa sem interface gráfica pra gente poder exercitar os conceitos que a gente vem estudando esse programa que a gente vai criar nessa aula em particular ele é mais para fins didáticos que a gente vai criar uma lista de de registro de clientes então o ideal nesse caso seria utilizar um banco de dados que é uma coisa que a gente vai estudar em aulas futuras Tá mas para fins didáticos esse programa funciona
bem então como é que Vai funcionar bom nosso programa Vai ter uma lista de clientes né supostos clientes a gente vai criar alguns dados falsos aqui só pra gente poder brincar e aí com esse dados vamos supor a gente tem três registros de clientes e cada um deles vai ter um número de Identificação em programação a gente geralmente chama esse código esse número de ID ou ID em inglês tá é o ID de identificação né do inglês identifier e sabendo que cada cliente vai ter esse número a gente vai Poder ir no terminal digitar Ruby
o nome do arquivo que a gente quer executar o nome do nosso programa no caso e o primeiro parâmetro será Justamente esse ID né o ID E aí o programa Vai procurar nessa lista de registros e vai falar hum Ele quer o cliente número cinco com código cinco Deixa eu procurar aqui ah é isso daqui e aí ele exibe todos os dados que ele encontrar então Mãos à Obra vamos começar eu vou abrir minha terminal aqui e eu vou abrir o Atom tá o Meu editor de textos então Atom aqui da mesma forma que aconteceu
na aula passada ele não tá mostrando os arquivos e os diretórios ah da pasta atual tem uma dica interessante eu vou fechar o meu editor e eu vou fazer diferente em vez de simplesmente digitar Atom eu vou digitar Atom ponto ponto dentro de um terminal dentro da da do contexto de programação significa o diretório atual assim como dois pontos significa o diretório anterior ponto é o Diretório atual então o que que vai acontecer aqui a gente tá pedindo para ele abrir o Atom nesse diretório se eu tivesse algum diretório aqui por exemplo chamado projeto eu
poderia chamar ele dessa forma então Atom mais a pasta que eu quero no caso eu quero o próprio desktop a própria área de trabalho então como vocês podem ver ele já abre aqui do lado o diretório pra gente poder trabalhar vamos então criar nosso arquivo que vai se chamar registro De clientes mesma regra que a gente comentou anteriormente tá joia não pode ter espaços tem que ser underline e precisa de um ponto RB no final antes de começar nosso programa de fato eu queria demonstrar a duas sintaxes de hash que podemos utilizar então o hash
tem essa sintaxe a gente abre Chaves e podemos colocar aqui ah nome por exemplo Lucas vírgula para poder criar o próximo elemento idade 31 Por exemplo tá isso daqui é um hash válido em Ruby então a gente abre Chaves colocamos um indentificador que a gente chama de chave e temos o nosso valor repara que é o nome Aparecido isso aqui são as chaves mas essas chaves é a mesma Chaves que a gente tem na na matemática por exemplo e aqui é uma chave tá é como se fosse um identificador e aqui a gente tem o
valor nesse caso aqui é uma string que é o meu nome Lucas e aqui é um integer que é um número ou seja 31 que é A minha idade eu vou pular algumas linhas aqui eu vou criar um outro hash mais ou menos assim ó Qual que é a diferença do primeiro hash e do segundo nenhuma até a versão 1.8 do Ruby apenas esse segundo hash era válido a gente não tinha essa sintaxe aqui em cima que é mais comum em outras linguagens de programação a partir do Ruby 1.9 eles criaram essa sintaxe aqui ela
é um pouco mais limpa ela não precisa da setinha muita gente gosta de Utilizar essa nova sintaxe porém tem um problema sempre que você utilizar essa sintaxe nova as chaves vão ser necessariamente uma um um símbol tá que é esse tipo de dados que a gente já utilizou anteriormente e não tem como a gente utilizar por exemplo um uma string se a gente quisesse aqui tá se a gente quisesse dessa forma aqui tá não teria como fazer nessa sintaxe Então sempre que a gente quiser que a nossa chave seja uma string ou seja um número
um Integer ou seja qualquer outro elemento a gente precisa usar essa sintaxe da setinha e eu tô te explicando tudo isso porque a gente vai precisar dela nessa aula então eu vou apagar a sintaxe que eu fiz anteriormente e verdade eu vou limpar esse hash aqui vou começar de novo nesse hash que a gente vai guardar os nossos clientes Então a gente vai ter uma variável a variável clientes e aí a gente tem a o símbolo de atribuição que vai receber esse hash ou seja o registro Dos nossos clientes Então eu quero que as chaves
sejam o ID que eu comentei antes né o ID que vai ser um número Então primeiramente a gente vai criar o nosso primeiro cliente então o nosso id1 vai ser igual a um esse registro aqui a gente vai substituir a gente poderia substituir por qualquer coisa mas a gente vai fazer uma coisa mais interessante que isso a gente vai substitu el por out has isso mes gente vai ter um has dentro de outro Isso éo comum vamos l então eu tenho aqui o nosso primeiro regist e aqui eu algumas Chaves no eu nome Lucas a
segunda chave desse has é data de cadastro E aí você pode colocar qualquer data aqui tá é só seria só um uma lista de registros falsos mesmo só pra gente poder brincar com uma lista então eu vou colocar aqui por exemplo 25 de novembro de 2018 e a terceira e última chave vai ser cidade então colocar aqui Roseira SP uma curiosidade A gente tá utilizando as duas sintaxes nesse primeiro hash aqui a gente tá utilizando a sintaxe da setinha onde a gente coloca a chave do lado esquerdo e o valor do lado direito separados por
uma setinha que nada mais mais é do que o símbolo igual maior nesse segundo hash que eu tô selecionando agora a gente tá utilizando a sintaxe nova que é a sintaxe com dois pontos então a gente tem um sbol de um lado e uma string ou qualquer outro tipo de dado do outro aí Você pergunta Ah Lucas mas eu poderia ter o mesmo hash com duas sintaxes diferentes sim poderia se eu quisesse passar aqui por exemplo segundo e passar qualquer outra coisa aqui qualquer coisa ficou meio bagunçado não faz sentido a gente provavelmente não faria
isso num projeto real mas funciona tá isso aqui tem uma sintaxe real uma sintaxe válida no Ruby se a gente executar isso aqui Ruby não vai reclamar mas eu vou apagar porque não faz sentido né a gente tem Uma chave do tipo número e outra chave do tipo Simbol ficaria muito bagunçado Então o que a gente quer aqui na verdade é o segundo registro que vai ser vai seguir exatamente a a mesma estrutura do Primeiro Registro porém com outros valores Então vamos lá nome Pedro e aqui você pode colocar qualquer dado que você quiser coisas
que você não pode errar em um hash quando você tiver utilizando uma um símbolo né que é a sintaxe com dois pontos é uma convenção né é uma boa Prática utilizarem letras minúsculas e com underline igual a gente fez aqui caso você queira separar se você colocar um espaço aqui por exemplo não vai funcionar Tá certo a gente precisa necessariamente de Underline não esqueça também dos dois pontos e também não esqueça da vírgula inclusive para separar o registro do nosso hash inteiro aqui de clientes né então vírgula vírgula e no último é opcional você pode
colocar ou não eu não costumo colocar eu Prefiro deixar assim bom temos um hash com o registro dos clientes se a gente executar esse programa do jeito que tá aqui não vai acontecer nada a gente simplesmente criou uma lista de registro de clientes como eu falei anteriormente o ideal seria ter essa lista aqui em um banco de dados outra coisa para ficar atento é que você não deve confundir esse igual que é um símbolo de atribuição ou seja aqui nesse caso a gente tá atribuindo esse hash para essa Variável clientes você não deve confundir esse
símbolo com a setinha a setinha serve simplesmente para separar a chave e o valor de um elemento do hash Então vamos finalmente fazer nosso programa executar alguma coisa bom no terminal a gente quer executar alguma coisa desse tipo aqui Ruby eu vou digitar r eeg e vou apertar o tab ele automaticamente completa o nome do arquivo para mim em vez de ter que digitar manualmente toda vez e eu vou Passar um parâmetro Então vamos supor que eu passe um esse um vai ser o primeiro parâmetro que a gente vai capturar aqui no nosso programa usando
o ARV assim como a gente viu em outras aulas Então a gente vai pegar o argv o primeiro parâmetro então ponto first e a gente vai identificar esse número através de uma variável que eu vou chamar de ID do cliente tá então eu vou fazer uma atribuição desse valor para essa variável só que Lembrando que todos Os parâmetros que a gente passa através do terminal vem como string então a gente coloca um true e para poder converter ele para um integer Afinal esse parâmetro que a gente tá passando aqui nada mais é do que um
identificador desse hash aqui em cima então ele precisa ser um integer bom na próxima linha aqui eu vou criar um puts e vou digitar assim buscando informações do cliente e aqui eu quero rebir alguma coisa assim cliente número Um Então esse has aqui é só para dizer número tá é só uma forma de simbolizar que é o número não tem nada a ver com a sintaxe do Ruby agora esse um sim eu quero substituir pelo id que o usuário digitou no terminal como parâmetro então eu vou substituir esse um eu vou apagar e vou fazer
uma concatenação do ID do cliente eu posso colocar três pontos aqui no final essa linha vai exibir alguma coisa desse tipo aqui buscando informações do cliente um né ou qualquer Outro dado que a gente passe como parâmetro o que eu vou ensinar aqui agora é interessante porém é totalmente opcional porque nesse caso não vai fazer sentido Mas é interessante caso você precise disso algum dia é o comando slip a assinatura desse método é slip e mais um integer na frente no caso eu vou passar três por exemplo que seram 3 segundos então e slip vem
do inglês de dormir a gente vai simplesmente fazer o nosso programa dormir durante 3 segundos Então a gente tá fingindo que está buscando esses dados no banco de dados sendo que na realidade Ele só tá parado mesmo tá bom Por isso que eu falei que opcional é mais para ficar com uma cara de programa Real mas não tem utilidade alguma tá certo é só para efeito didático para vocês poderem aprender o slip aqui continuando aqui antes de exibir todos os dados desse cliente a gente precisa criar uma variável cliente Onde vamos copiar os dados desse
hash de Acordo com o ID que foi passado como é que a gente faz isso muito simples da mesma forma forma que a gente acessou dados de hashes anteriormente vou fazer um símbolo de atribuição Então essa variável cliente tá recebendo vou passar o nosso hash com os registros e entre coate a gente passa o ID do cliente basicamente aqui poderia est passando 1 2 3 diretamente mas a gente quer que seja dinâmico a gente quer que seja o que o usuário passou pelo terminal então Clientes nessa posição especificamente vai ser jogado dadoo para essa variável
cliente Ou seja a variável cliente vai ter vamos supor que a gente esteja passando o id1 ele vai copiar esse hash aqui para essa variável Então significa que cliente vai ter nome data de cadastro e cidade o que facilita pra gente a exibir os dados dessa forma aqui cliente nome cliente data de cadastro e cliente cidade e agora basta a gente Formatar né a gente criar um puts ali com a a descrição do que que a gente tá exibindo e tudo mais então vamos lá Puts é importante que você cria Strings com aspas duplas quando
você tiver fazendo concatenação igual a gente fez aqui em cima em alguns casos aqui por exemplo a gente não precisa porque a gente não tá fazendo concatenação porém se você tiver fazendo eh concatenação dessa forma aqui não funciona então eu vou voltar aqui deixa com aspas duplas vamos lá a Primeira linha nome e o vou colocar simplesmente nome e dois pontos e aqui sim eu faço a concatenação dessa informação mesma coisa pra linha seguinte data de cadastro Lembrando que aqui pelo fato de ser uma string a gente pode colocar espaços dois pontos aqui não tem
nada a ver com a sintaxe do Ruby você pode fazer enfim até emo aqui se você quiser colocar um emoj você pode colocar que não tem problema tá aqui na string tudo vale vou deixar esse aqui só Para provar que funciona mais um puts aqui cidade caso você queira pular uma linha do terminal ou seja exibir uma linha em branco basta você utilizar o puts sem parâmetro algum ele automaticamente vai pular uma linha e para finalizar mais um puts com a seguinte string programa finalizado vamos rodar e ver se tudo isso funciona buscando informações do
cliente um ele deu essa pausa de 3 segundos e Exibiu os dados que a gente tava esperando é o nome data de cadastro com o emoe e a cidade depois ele pulou uma linha exibiu o programa finalizado dependendo do tipo de terminal que você estiver utilizando o emoe pode não funcionar porém o Ruby Tem suporte Inativo a eles então você pode utilizar sem problemas a única coisa que eu vou fazer aqui é mover o emoe para o puts de buscando informações do cliente Ficou ali meio perdido no Meio aqui vai ficar mais interessante Então eu
vou rodar novamente dessa vez com o número dois então ó lá já apareceu o emoe fez essa pausa de 3 segundos e exibiu os dados do Pedro dessa vez né então ah data de cadastro cidade São Paulo depois programa finalizado vamos testar com o último registro que a gente tem aqui buscando informações do cliente TRS Fábio data de cadastro Rio de Janeiro tudo funcionando mas o que que acontece se a gente passar um registro Que não existe bom ele vai buscar e deu um erro obviamente já era já era esperado esse erro porque cliente aqui
ele tá retornando New porque toda vez que a gente tenta encontrar um elemento de um hash passando uma chave que não existe ele retorna New então cliente aqui é New nesse caso e a gente só quer exibir os dados abaixo se o cliente não for New Então como é que a gente faz a gente pode fazer um if cliente é diferente de New e aqui eu vou alinhar Né eu vou identar esse código pra direita no Atom basta você selecionar o código e apertar Tab que ele vai jogando todo o seu texto pra direita ou
shift Tab ele joga o seu texto pra esquerda e aqui eu poderia simplesmente utilizar um end para fechar o if e não exibir nada ou ainda eu posso colocar um else e criar um puts para mostrar alguma informação útil por exemplo esse cliente não foi encontrado Vou salvar o arquivo voltar Aqui no meu terminal vou limpar minha tela só para ficar mais fácil mais claro de entender eu vou executar o comando que a gente tinha executado anteriormente Lembrando que é só apertar a setinha para cima e para baixo do teclado pra gente acessar todos os
comandos do histórico do terminal então eu vou aqui executar primeiramente o três que a gente sabe que existe então buscando informações do cliente Opa eu digitei uma variável Errada aqui tá faltando uma letra e tudo bem vamos tentar de novo uma curiosidade at Ruby zib aqui pra gente a ele Tenta adivinhar se é o que qual foi a variável que a gente estava tentando utilizar então igual o Google que ele fala ah você quis dizer tal coisa mesma coisa aqui ele mostra pra gente né did me E aí tem cliente e clientes que são as
duas variáveis que de fato estavam disponíveis tá bom rodamos aqui ele exibiu os dados Conforme esperado Então vamos agora passar valor quatro que a gente sabe que não existe cliente não encontrado bom aqui a gente termina essa aula eu quero que você crie esse mesmo programa aí no seu computador se você tiver alguma dúvida basta me mandar na área de comentários aqui embaixo que eu te ajudo ok te vejo na próxima aula tchau vamos criar mais um programa sem interface gráfica para continuar estudando os conceitos que a Gente vem estudando nesse programa que vamos criar
dada uma lista a gente vai identificar quais dos elementos são ímpares e exibi-los na tela vamos lá aqui no terminal depois que o programa tiver pronto é dessa forma aqui que a gente a gente vai chamar o nosso programa Ruby espaço o nome do arquivo que a gente ainda não criou exibir números ímpares P RB e um limite Tá então vamos supor se eu passar cinco ele vai criar uma lista de 0 até 5 né 0 1 2 3 4 5 e vai exibir somente os números ímpares num segundo momento a gente vai criar uma
evolução desse desse programa e a gente vai passar dois números vamos supor 5 e 10 nesse momento o nosso programa vai criar uma lista somente entre 5 e 10 no caso 5 6 7 8 9 e 10 e vai exibir os números ímpares dessa lista Bom se você quiser fazer essa aula tentar fazer esse exercício sem assistir a aula eu realmente recomendo fazer isso se você quiser assistir aula primeiro Também não tem problema desde que você faça depois aí no seu computador tá joia Vamos lá então eu vou pagar essa linha aqui que eu digitei
e vou abrir o Atom com o ponto no final para abrir no diretório que a gente gente tá vou criar então o arquivo que Eu mencionei agora H pouco então exibir números ímpares ponto RB coincidentemente o parâmetro que a gente vai receber do terminal também é um integer ou seja também é um número Mas isso é apenas uma coincidência existem vários casos que a gente vai querer receber esse argumento como string então simplesmente argv pfst já vai funcionar a gente não precisa fazer o tui nesse caso em particular a gente quer um número porque é
um limite então eu vou converter ele novamente para integer e eu vou atribuir esse valor para uma variável chamada limite seguindo em frente o que a gente precisa fazer aqui é criar uma Ari que vai ter Todos os elementos de zero até o limite que a gente passar vamos supor que o limite seja 5 então a gente quer um arrei que tenha número 0 1 2 3 4 5 e aqui a gente vai utilizar o it que a gente aprendeu na aula de Laços de repetição ou seja ele vai fazer um loop né ele vai
iterar cada um desses elementos desse arrei eu vou passar um bloco e eu vou criar uma variável para cada um dos elementos que ele for iterando Então nesse caso eu vou chamar De número colocar o end para poder fechar o nosso bloco então a gente tá abrindo aqui fechando aqui abre no do fecha no end e passa essa variável ou seja se eu colocar um puts aqui número ele vai exibir cada um desses elementos no meu terminal vamos testar antes de continuar o código salva o arquivo então Ruby exibir números ímpares e um limite no
caso aqui não vai fazer diferença porque a gente não tá fazendo Nada então eu poderia passar qualquer número aqui que não vai fazer diferença por enquanto olha só ele exibiu os números de um até o CCO Então esse bloco aqui tá funcionando já podemos ir pra próxima etapa E a próxima etapa é justamente transformar esse arrei um arrei dinâmico ou seja não tem como a gente adivinhar que número Que o usuário vai digitar para isso existe tem duas formas de fazer isso uma delas é utilizando o Range escreve dessa maneira aqui Range funciona assim eu
vou apagar esse Array vou Abrir parênteses eu passo o limite mínimo dois pontos e não é dois pontos um em cima do outro é ponto ponto e o limite máximo no caso aqui seria cinco por exemplo só que a gente quer que isso seja dinâmico Então vou utilizar a variável limite que a gente definiu aqui na primeira linha vamos salvar o arquivo e ver se funciona funciona como eu tinha digitado 999 Ele criou uma lista gigante aqui que varia do zer até 999 eu vou limpar minha tela eu vou demonstrar uma outra forma de fazer
esse loop aqui essa outra forma é utilizando o up to o Up two nada mais é do que um método da classe integer ou seja qualquer número tem esse método definido então a gente pode executar por exemplo 0 up to e como parâmetro aqui a gente passa o limite e aí a mesma coisa o resto tá it Número número end eu vou deixar esse código comentado que a gente não quer executar ele por enquanto só pra gente ver se tá tudo funcionando passar um limite menor dessa vez vou passar cinco beleza tudo funcionando dependendo do
caso você pode precisar usar o upt ou usar um Range na maioria das vezes um Range fica mais elegante fica mais fácil de entender o que que tá sendo feito então eu vou manter o Range aqui por esse Motivo o próximo problema que a gente precisa resolver é limitar os números ímpares porque a gente tá exibindo todos os números aqui certo então Existem algumas maneiras de fazer isso na maioria das linguagens de programação você tem que fazer de um jeito um pouco mais sujo digamos assim um pouco mais verboso a linguagem Ruby Aceita esse tipo
de sintaxe mas depois eu vou te mostrar mostrar um jeito mais bonito mais elegante de escrever esse código Vamos fazer do jeito feio primeiro então vou colocar um if ímpar aqui depois eu fecho com end e eu vou identar essa linha aqui para ficar pra frente certinho bem alinhado para explicar como que a gente vai identificar Quais números são ímpares eu vou abrir o meu irb E demonstrar uma coisa interessante sobre os números aqui quando você faz uma conta por exemplo 4 di 2 ou seja 4/2 ele retorna 2 certo se a gente fizesse 5/2
daria 2,5 Porém Aqui a gente tá Trabalhando como um integer só que são valores inteiros então O resultado é dois Só que tem um um que sobrou lembra das aulinhas de matemática lá do primário dividindo CCO por dois sobra um Mas aonde que foi parar esse um bom tem uma sintaxe que inclusive é compartilhada Entre várias linguagens de programação que é porcentagem essa porcentagem vai retornar o resto da divisão e é justamente ela que vai nos ajudar a definir se esse número é ímpar Ou não vamos fazer mais alguns testes aqui 4 porcentagem 2 o
resto é zero 5 porcentagem 2 o resto é um 6 O resultado é zer 7 O resultado é 1 você reparou um padrão ele sempre retorna 0 1 0 1 ou seja números ímpares Retornam um como o resto e números pares Retornam Zero Isso pode ajudar a gente a identificar Quais números dessa lista são ímpares para isso a gente vai fazer o seguinte eu vou utilizar a variável número que é cada Elemento desse Array percentagem 2 e aqui vai retornar ou zero ou 1 só que eu só quero os que forem iguais a 1 então
igual igual a 1 então o que que vai acontecer aqui quando o primeiro número no caso zero passar por esse código aqui por essa verificação ele vai retornar zero e não vai ser impresso quando o número um passar por essa verificação ele vai retorn e vai entrar nesse if E aí ele vai ser impresso o número do vai retorn zer não vai impresso e assim por Diante vamos ariv e exec aqui PR gente ver seudo funcionando minhaa e agora s eu execo Ruby exibir númeres com o parmet funcionou Então a gente tem 1 3 e
5 vamos passar outro número aqui para testar 1 3 5 7 e 9 se eu passar o número 11 como parâmetro ele vai exibir os mesmos números de antes incluindo o 11 porque ele também é ímpar legal mas poxa você me falou que tinha um jeito mais Elegante de fazer isso sim é verdade eu vou demonstrar isso novamente aqui no irb todo número tem dois métodos que podem nos ajudar a identificar se eles são pares ou ímpares esses métodos são o od e o Então od significa ímpar e even significa par Vamos fazer outro teste
porém agora com o número do 2. od ou seja tá perguntando se o número do é ímpar então ele vai retornar falso e 2 p even ou seja o número do a Gente tá perguntando se ele é par no caso positivo true e agora a gente pode utilizar esse método od para verificar se o número é ímpar aqui no o nosso código então ODD interrogação vamos fechar aqui o irb Exit ou tem um atalho Ctrl d e a gente pode executar novamente o nosso programa e tudo continua funcionando se você quiser deixar ainda mais claro
você pode colocar esse if na mesma linha Vou colocar aqui vou apagar esse End e vou deixar tudo ind dentado vamos executar novamente tudo funcionando agora para nosso programa ficar um pouquinho mais interessante a gente poderia passar dois Limites por exemplo 5 e 10 assim como eu tinha explicado no começo da aula então vamos lá aqui a gente tá recebendo o primeiro parâmetro Tá eu vou chamar ele de limite mínimo Lembrando que mínimo em português teria acento Mas a gente nunca deve usar acentos em variáveis Na verdade o único Lugar que você pode utilizar acento
são dentro de Strings então por exemplo você faz um puts Esse número é ímpar algum texto desse jeito aqui não tem problema algum utilizar acentos Tá mas no código em si evite então eu vou duplicar essa linha aqui porque a Segunda eu vou chamar de limite máximo bom ARV nada mais é do que um Array no Array a gente pode acessar os elementos passando chave e o índice então no caso aqui zero seria o primeiro Elemento e um seria o segundo elemento Lembrando que o Array sempre começa na posição zero pode ser um pouco confuso
no começo mas depois você acaba acostumando até porque a maioria das linguagens de programação seguem esse padrão então zero é o primeiro elemento um é o segundo dois é o terceiro e assim por diante para finalizar a única adaptação que eu preciso fazer aqui é o limite máximo vai ser o segundo parâmetro aqui o segundo elemento do meu Range e limite mínimo eu vou substituir o zero que estava aqui antes então ele vai variar do limite mínimo até o limite máximo vai fazer essa interação esse lo né E então ele vai verificar o número ímpar
da mesma forma salva o arquivo e vamos rodar para ver se funciona tudo ok tudo funcionando o primeiro argumento é CCO e o segundo argumento é 10 então quer dizer ele vai variar de cinco até 10 5 6 7 8 9 10 e vai extrair os elementos ímpares dessa lista atenção Quando a gente tiver utilizando ARV que como eu falei é um Array a gente não precisa colocar ponto aqui nem nada além da chave tá bom do colchete Desculpa então argv colchete e o índice que a gente quer ali se a gente tivesse um terceiro
elemento aqui seria arg V2 Tá certo não precisa de ponto apenas obviamente o ponto que a gente utiliza para chamar o método tui posteriormente aqui você pode me perguntar por que que eu utilizei coate zer e não o argv pfst Tá Dá no mesmo por is a gente utilizar first aqui algumas pessoas não gostam muito dessa sintaxe porque fica misturada nessa primeira linha utilizei first na segunda utilizei um índice então talvez utilizar um índice aqui fique mais elegante fique mais simples e mais claro de entender o que que tá acontecendo aqui agora eu quero que
você crie esse mesmo programa porém com números pares se você tiver alguma dúvida basta colocar aqui embaixo que eu Te ajudo Ok até mais