Unknown

0 views11472 WordsCopy TextShare
Unknown
Video Transcript:
k [Música] l [Música] k k [Música] k [Música] C k [Música] k [Música] h [Música] Olá pessoal tudo bem sejam muito bem-vindos e muito bem-vindas aí a mais uma Live Nossa aqui na nossa imersão full stack full cycle tudo bom com vocês Vocês conseguem me ouvir bem tudo em ordem eu colocar aqui meu celular no no que alguém acho que tava me ligando nesse momento deixa eu colocar a parada aqui no não disturb galerinha seguinte hoje é dia da gente falar de linguagem go né Tem bastante coisa interessante trabalhar e eu espero realmente aí que
vocês consigam ter uma ideia geral da linguagem porque na semana que vem onde a gente começa a nossa imersão provavelmente vocês vão ter bastante contato com a linguagem né um dos microsserviços que a gente vai desenvolver na próxima imersão vão ser microsserviços focados aí na linguagem de iG Então vai ser muito bacana mesmo a gente ter esse nosso bate-papo sobre a linguagem aqui ah tem gente tá falando que tá baixo Vocês conseguem me ouvir bem galera somente para eu saber realmente para eu saber se tá se tá de boas Maravilha galera negócio o seguinte tá
Ah primeira coisa que eu quero saber duas coisas Antes de eu começar aqui bater esse papo com vocês tá a a primeira coisa é quem aqui é novo no canal tá assistindo pela primeira vez uma live nossa ou tá acompanhando aí esse Esquenta da nossa imersão pela primeira vez Ah por favor coloca aí né hash novato hash novata seria bem importante aí para eu conhecer mas ao mesmo tempo se você já acompanha a gente aí no canal acompanha a gente eu já vi vários alunos aqui inclusive ah coloca a também hash veterano veterana somente para
eu ter uma ideia também aí é bem importante para eu saber filha e o segundo favor que eu gostaria de pedir para vocês é quem aí nunca absolutamente nunca teve contato com a linguagem go antes Alguém poderia a falar aí para mim ó escreve assim no gol no tracinho Gol só para eu ter uma ideia aí pra gente ter uma ter uma ideia aí ó Tem aluno do MBA da full pych Tem aluno do curso da full pych Tem aluno aí que tem a pós go Expert que a gente tem também então Ah bacana show
de bola tem vários no gos ainda então relaxa que hoje vocês Ah vão ter uma introdução legal nessa linguagem a a minha ideia tá pessoal é como semana que vem vai ser uma semana bem Intensa com bastante conteúdo e bastante coisa eu quero muito ah trazer o conteúdo mais objetivo possível para que vocês não fiquem ah por muito tempo nessa semana com muito conteúdo porque semana que vem vocês vão ter que se organizar porque vai ter conteúdo lançando todos os dias da manhã e à noite a gente vai ter lives fantásticas inclusive galera já vou
dar um spoiler aqui para vocês que na segunda-feira a gente vai fazer abertura da imersão a gente sabe que quem acompanha a gente sempre faz uma abertura com mercado livre mas essa abertura ela vai ser diferente vai ser com o Juliano do Mercado Livre Mas o que ele vai trazer das evoluções que o Mercado Livre fez de anos para cá para onde eles estão indo o que eles estão fazendo inclusive muito com essa parte de ia assim vai ser Fantástico tá então vocês não podem perder de jeito nenhum segunda-feira aí para vocês beleza show de
bola Então galera vamos fazer o seguinte tá Ah eu quero ah esclarecer alguns pontos aqui para você Ah pra gente falar a mesma língua na hora que a gente tá trabalhando com a linguagem go aqui para vocês tá Por que que eu tô dizendo isso porque a linguagem go ela é uma linguagem um pouco diferente das linguagens mais convencionais que a gente tá costumando acostumado não só por conta da sintaxe a sintaxe da Go ela é meio esquisita mas você se acostuma e acaba gostando Eu trabalho com go Já faz um bom tempo que eu
trabalho com go faz bastante bastante tempo mesmo que eu trabalho nem sei eu acho faz quase 10 anos que eu trabalho com go Então para mim é uma é muito natural programar com a linguagem a eu recebi aí né faço parte do programa de Google developer experts na linguagem go né então ah é um mega prazer poder também tá com o pessoal da Google pegando bebendo informação direto da fonte para trazer bastante coisas aí para vocês tá então negócio é o seguinte galera como é que eu vou separar esse nosso bate-papo aqui a minha ideia
é a gente gastar tá 15 minutos sobre eu explicar para vocês a ideia da linguagem eu quero passar a ideia de como que ela funciona e o por que ela acaba sendo um pouco diferente das outras e os outros 45 minutos a gente vai trabalhar um pouco com código tá vou usar para caramba ia pra gente trabalhar com código aqui e facilitar um pouco as nossas vidas mas ao mesmo tempo Ah vai ser divertido porque a gente vai conseguir construir algumas coisinhas bem legais Fechou então vamos nessa galera vamos nessa porque tem bastante coisa pra
gente fazer então eu vou pegar aqui essa minha aba porque eu quero poder continuar vendo o chat e jogar para cá e eu vou compartilhar aqui com vocês o scol draw e deixa eu só ver uma coisa É isso aí beleza eu vou compartilhar aqui com vocês então o scal draw e vou aqui compartilhar a minha entire screen porque fica melhor aqui para mim tá então vamos lá dito que todo mundoo tá vendo a minha tela obviamente eu vou ter que aumentar o zoom um pouquinho mas vamos falar sobre a linguagem go tá ou mais
conhecida como golang mas somente para vocês saberem tá galera o nome da linguagem é go tá não é goang a gente chama de GO leng principalmente porque quando você vai buscar alguma coisa no Google se você digitar go imagina Que palavra mais genérica que existe nesse mundo a não ser gol né então quando você coloca golang dá para entender um pouco melhor mas a grande sacada da linguagem go que a gente tem que entender é o seguinte o go ela é uma linguagem que ela possui um runtime tá E esse runtime do go ele tem
todo o fonte que a linguagem tem ou seja tudo que existe na linguagem que foi criado na linguagem roda nesse runtime aí o que que acontece por outro lado a gente tem aqui o código que a gente digita tá tá Vou colocar aqui ó o nosso código legal vou até pintar aqui de diferente esse azulzinho aqui quando eu junto o meu runtime com o meu próprio código o que que acontece aqui pra frente eu Gero um arquivo binário que é um arquivo executável tá ou seja o que eu tô dizendo aqui é que o go
é uma linguagem compilada e se ele é uma linguagem compilada você já começa a perceber que por padrão Ela já tem né A uma performance que acaba sendo às vezes bem acima do que outras linguagens que trabalham de forma interpretada Mas a questão hoje em dia de de linguagens de programação em relação à velocidade e performance faz diferença galera faz faz bastante diferença Óbvio mas não é o único motivo para você escolher uma linguagem nos dias de hoje e é por isso que eu sempre tento costumar a dizer para todo mundo tá não se apaixone
por tecnologia tá se apaixone ah por conseguir resolver problemas conseguir entregar software tá porque as linguagens passam tá os frameworks passam mas os problemas ficam as pessoas ficam e e eu já vi muitas viradas tecnológicas eu eu trabalhei com Pascal trabalhei com c+ mais eu trabalhei com nossa eu trabalhei com PHP eu trabalhei com dnet eu trabalhei com python eu trabalhei com go cara eu trabalhei com assim um monte de linguagem de programação com todos os frameworks possíveis que você possa imaginar mas uma coisa que a gente percebe é que existem ciclos e existem desenvolvedores
apaixonados a maioria dos desenvolvedores Apaixonados que eu conheço são desenvolvedores que não conseguem aceitar que o que ele tem é uma ferramenta Então apesar de eu adorar programar em go eu me divirto eu adoro programar Eu adoro a linguagem não é por conta disso que eu vou querer enfiar Gol em todo quanter lugar tá só para você ter uma ideia aqui na full cycle a gente tem software rodando em go a gente tem software rodando em PHP a gente tem software rodando em Python a gente tem software rodando em nestjs então a gente não fica
preso a uma linguagem tá tem todo um contexto para você utilizar mas hoje aqui a grande sacada ah perguntaram se eu trabalhei Pascal e Delf Pascal e eu programei tanto em Pascal fazendo as coisas em Pascal e também programei em Delf por muito tempo também tá trabalhei com Pearl também para automação de servidores free BSD na época que eu tinha uma empresa de hospedagem era muito louco mas vamos lá a grande sacada aqui nossa pessoal é entendendo essa ideia a gente já começa a entrar num ponto importante que o gol Apesar de ele ser compilado
e ser tudo isso ele tem algumas vantagens eh muito fortes e eu acho que hoje eu tô aqui para puxar o saco da linguagem gol tá vou puxar o saco da linguagem e não tô dizendo que o gol é melhor que qualquer outra linguagem mas o go ele tem um suporte muito forte pra concorrência tá eu não sei se você sabe o que é concorrência Tá mas concorrência nos permite a realizarmos diversas tarefas de forma simultânea tá não necessariamente paralelas a gente vai chegar nesse ponto Tá mas o grande ponto é que hoje a gente
trabalha no universo multicore então a gente consegue também atingir paralelismo o que que isso significa que eu consigo por exemplo né rodar diversas tarefas diversas operações de forma simultânea isso aqui é comum em qualquer linguagem de programação mainstream tá então isso aí é um ponto importante aí o grande ponto em relação a isso é que se você já trabalhou com paralelismo semáforos Locks mutex sincronizações de operações e tudo mais você deve saber que não é simples fazer isso tá e e pelo fato de não ser simples O que que a gente acaba fazendo a gente
acaba de utilizar tudo que é complexo gera fricção e tudo que gera fricção a gente não usa a verdade é essa se a academia que você vai ficar 5 km da sua casa a chance de você não ir é maior do que se ela tivesse A 500 m da sua casa tá então tudo que gera maior fricção é mais difícil de você fazer eu acho que a grande sacada do Gol é que ele conseguiu fazer de uma forma muito simples a gente conseguir tá trabalhar com isso de uma forma bem simplificada e transparente ou seja
trabalhar com paralelismo e concorrência no gol é algo simples basicamente somente para vocês entenderem Ah o go ele tem uma coisa a gente tem um problema clássico quando a gente tá trabalhando com paralelismo e com concorrência a gente tem pontos que são coisas parecidas com essa tá vamos imaginar que aqui eu tenho o endereço af23 4 na memória vou imaginar que esse é um espacinho na memória e aqui eu vou guardar o número um aí vamos imaginar que eu tenho uma trad aqui tá E essa minha trad aqui ela vai fazer uma soma ela vai
fazer 1 mais 1 para fazer um cálculo de juros e ele vai guardar esse resultado de 1 mais 1 aqui então esse resultado em tese vai virar dois certo mas simultaneamente o que que tá acontecendo Eu tenho uma outra trad e aqui ela tá fazendo 1 mais TR e logo após que ele muda esse valor esse cara aqui em seguida ele começa a fazer um cálculo usando o valor e esse cara faz a mesma coisa o que que acontece no meio dessa história pessoal acontece que o seu sistema nesse momento ele vai se comportar bizarramente
porque você tem uma condição de corrida uma Race condition são duas dois caras diferentes brigando pela mesma posição na memória então quando esse cara botar dois aqui em seguida esse cara botar três esse cara aqui tá pensando que ele tá fazendo o cálculo com dois mas os cálculos dele vai estão tudo errado ou vice-versa Esse é um problema muito grave e é o grande ponto que faz com que trabalhar de forma concorrente ah seja difícil em qualquer linguagem de programação porque você tem que começar a fazer o quê antes de gravar aqui você tem que
dar um Lock aí somente esse cara Mexe depois que você faz o seu cálculo você dá um unlock para daí esse cara poder mexer é basicamente isso que acontece o fato é que você esquecendo um Lock um unlock ou qualquer coisa desse tipo pode gerar comportamentos bizarros as coisas vão ficando cada vez mais complexas porque a gente tá falando aqui de uma trad mas essas coisas acabam se amplificando dentro do sistema inteiro o go Ele trabalha de uma forma diferente tá a gente tem aqui o mesmo endereço na memória tá a gente tem o mesmo
endereço na memória aqui porém quando eu quero mudar um valor aqui o que que eu vou fazer eu ao invés de chegar e mudar diretamente o valor eu vou fazer o seguinte eu vou criar pi Gateway não eu vou criar um pequeno canal de Comunicação tá E esse canal de comunicação vai fazer com que eu tenha uma trad aqui que a gente chama de GO rotina tá depois eu vou explicar para vocês como é que isso funciona e essa go rotina ela quer pegar esse valor então o que que acontece ela vai pegar esse valor
esse valor vai chegar aqui para ela nesse canal pum aí o que que acontece esse cara aqui ele vai fazer a soma lá de 1 mais 1 aí o que que acontece outra at precisa desse valor para fazer algum outro cálculo então o que que vai acontecer a gente gera mais um canalzinho aqui olha só que legal né E aí a gente tem uma outra trad aqui que vai fazer o quê pegar esse valor agora de 1 + 2 jogar aqui para dentro entendeu E vai fazer o resultado mais qu e assim vai então eu
não sei se você começa a perceber mas quando você tá usando o go você não fica mais brigando por espaço na memória você compartilha as memórias para se comunicar então ao invés de as pessoas ficarem brigando por esses espaços né por trades diferentes as tredes elas vão se comunicando por canal então a gente evita esse problema que acontece aqui Pode parecer algo um pouco estranho eu vou mostrar isso na prática para vocês mas isso aqui muda o jogo tá tem uma outra coisa importante aqui para vocês entenderem em relação ao gol Antes de a gente
ir pra prática que acontece é o seguinte toda vez que a gente tem uma trad O que que é uma trad num sistema operacional basicamente Você tem algo que é um processo certo e o processo ele cria como se fossem subprocessos tá que são as nossas trads ou seja são fios são delimitações dentro de um próximo de um de um de um dentro de um mesmo processo é basicamente isso que acaba acontecendo bem falando de uma forma bem grosseira tá então uma trad é um fio que é gerado através de um processo e eu posso
criar várias trades e essas trades o que que elas conseguem fazer elas conseguem fazer execuções simultâneas dentro do mesmo processo dentro do mesmo programa Tá e é isso aí da vida inclusive às vezes para você trabalhar com concorrência e paralel o grande problema que acontece aqui no final das contas é o seguinte que cada vez que você gera um processo aqui tá você dependendo do sistema operacional você vai gastar entre 1 a 2 megas tá o que que isso significa significa que eu pedi uma nova trad eu vou fazer uma sisc no sistema operacional o
sistema operacional vai gerar uma trad para mim vai pegar um espaço na memória e vai alocar para eu trabalhar então o que eu tô querendo dizer que se eu tiver um programa com 100 trads eu vou ter pelo menos aí 100 m de memória sendo utilizados brincando mesmo que essa trad não precise de toda essa memória tá quando eu tô trabalhando com as trads do gol o gol né ele cria trads obviamente nível de sistema operacional mas para gerenciar pro próprio runtime gerenciar mas a grande sacada do go é que ele tem uma parada chamada
de GO routines tá isso aí no final das contas são Light trads ou ou Green threads o que que isso significa essas trads que são geradas pelo go uma go rotina elas não são trads que o gol pede pro sistema operacional porque imagina que eu tenho um processo aqui eu tenho o sistema operacional Sei lá eu tenho o meu Linux toda vez eu preciso de uma nova trad o eu faço uma cisc eu bato no sistema operacional e falo lá pro k quero uma nova trad Daí o cara vai lá devolve aqui para mim para
eu conseguir trabalhar quando eu preciso de uma nova trad usando uma go rotina na realidade a gente faz um pouco diferente quem gerencia as go rotinas é o runtime do gol e o runtime do Gol gera essas trads leves pra gente o Ou seja a gente não faz com que a gente fique chamando o sistema operacional fazendo uma squall porque o próprio gol no Run time dele ele tem uma parada chamada de scheduler e esse scheduler ele é muito parecido com o próprio scheduler do sistema operacional para conseguir fazer esse gerenciamento de todas essas tarefas
aqui pra gente então o que significa é que toda vez que a gente cria uma Gol rotina e a gente pega essa go rotina ela acaba sendo muito leve ela tem 2K então na realidade o que o gol consegue fazer é ter a possibilidade de você ter vamos dizer centenas de milhares de trads rodando simultaneamente na sua aplicação sem ocupar muita memória da forma como um processo comum aconteceria gerenciado pelo runtime do Gol que tem um scheduler extremamente eficiente num programa compilado sem in topet o sistema operacional e isso faz com que a linguagem ela
consiga ser extremamente veloz rápida e o mais importante de tudo é fácil de trabalhar com isso trabalhar com isso comparado com isso é Mel na chupeta então quando Como eu disse para você se a sua academia fica perto da sua casa você tende a usá-la muito mais e com o gol acontece a mesma coisa como trabalhar com concorrência e paralelismo no gol é fácil você usa isso para caramba e uma vez que você usa para caramba a sua aplicação ela ainda vai conseguir performar ainda mais porque ao invés de ela fazer ah diversos processos um
depois do outro ela consegue rodar as coisas de forma simultânea e ela consegue sincronizar essas informações sem uma dor Infernal que é de você trabalhar com semáforos como a gente está acostumado Então essa que é a ideia da linguagem go galera eu acho que esse é um dos principais diferenciais que a linguagem tem quando a gente tá falando da linguagem em si né Ela é uma linguagem rápida ela é uma linguagem compilada você consegue compilar essa linguagem para qualquer plataforma é muito simples a gente conseguir trabalhar isso aí pra gente tá mas vamos lá Agora
que eu consegui passar essa ideia geral aqui para vocês vamos um pouco aqui pra minha ideia um ponto importante tá para você baixar o gol você acessa go.dev aqui é o site você clica em download ontem se eu não me engano foi gerada a versão 1.24 do go eu nem instalei ainda no meu computador eu tenho ela tinha ela no release candidate mas já tá na versão 1.24 com diversas novidades bem legais vou gravar um vídeo sobre isso inclusive mas o ponto importante aqui é se você tem o go instalado no seu computador você vai
no seu vs code instala a extensão do Gol tá digita aqui ó go tá você instala esse cara eu tô com vest code insider então ah talvez eu possa ter algum problema aqui ah golang deixa eu ver golang aqui go aqui eu acho que ele já vai aceitar o GO porque eu tenho no meu outro vs code mas se ele não tiver a gente instala depois eu abre o outro meu vs code aqui mas o fato aqui é o seguinte Toda vez que você vai criar um projeto com go Ah mais ou menos como o
nodejs trabalha você tem que ter um arquivo de inicialização tá então no go ele chama go mod init eu vou dar um nome do meu projeto chamado imersão full pych legal e agora ele criou esse arquivo go.mod aqui pra gente tá E aqui basicamente ele fala o nome do meu módulo e a versão eu tô rodando com a versão 1.23 do Gol aqui já tá na versão 1.24 só para você saber tá desatualizado aqui mas o gol também é retrocompatível não tem problema nenhum relação com isso aí o que que acontece no meio dessa história
eu vou criar um arquivo aqui chamado main.go tá E nesse arquivo main.go eu vou criar todo o arquivo do go na primeira linha você tem que ter um package tá e o package que eu tô criando aqui é um package Main onde vai ter uma função Main que é mais e menos a função m do pyon a a o método Main do Java onde você pode por exemplo dar um Hello Word Então vou colocar aqui ó print LN Hello Word aqui para mim e agora se eu quiser executar eu vou dar um go Run main.go
e eu tenho o meu hello world ou seja Acabei de rodar o meu programa em go pela primeira vez mais interessante é que se eu der um go build aqui para m ponto Olha o que que vai acontecer ele vai gerar um arquivo binário aqui para mim e se eu colocar imersão FC eu já tenho o meu hello world Ou seja eu já compilei e esse arquivo tá pronto para produção O mais legal é que eu posso falar assim ó goos é igual Windows go build Olha o que que vai acontecer ele vai compilar para
Windows e vai gerar agora então o arquivo xe para poder rodar no Windows tá então é basicamente essa pegada que a gente tem na hora que a gente tá falando do go tá então nós temos a a gente tem muita possibilidade e facilidade para fazer a nossa aplicação buildar a nossa aplicação para qualquer plataforma e na hora que você for fazer o Deploy no final do dia adivinha o que vai acontecer você só vai ter um arquivo para fazer a a instalação Então essa aí que é a grande pegada aí para vocês o lance é
o seguinte tá o grande ponto do Gol aqui ele começa a ficar muito forte na hora que você quer fazer algumas coisas que pareçam que a gente precisa de muita coisa externa o go ele tem uma biblioteca padrão muito boa tá eu vou dar um exemplo aqui pr pra gente tá eu vou colocar http P Listen and serve 2. 8080 aqui para mim Ah eu acho que inclusive vai dar erro porque docker RM menos aqui deixa eu matar eu ten um contêiner rodando agora vou dar um go Run m. go e agora galera por incrível
que pareça Eu tenho um servidor web rodando com uma linha e aí se eu der um Curl deixa eu aumentar meu zoom aqui vai diminuir meu Zoom eu dar um Curl local host 2.80 80 você vai ver aqui que eu já tenho um page not found porque eu tenho um servidor web rodando aqui para mim então você consegue perceber que até mesmo para eu criar um servidor web basta eu dar um Import que o meu PS Code já importou automático aqui no pacote net http que eu já tenho o meu Web Server aqui para mim
Se eu quiser eu posso chegar aqui pro meu CoPilot vamos ver se ele vai funcionar eu vou colocar no modo ag gente que ele tem aqui e eu vou colocar crie para mim um endp listando ah produtos de beleza e incorpore no servidor web no endp barra products vamos ver se ele vai fazer isso aqui para mim se ele não fizer eu faço tá galera vamos ver se ele vai conseguir criar essa parada aqui para mim beleza ele tá gerando aqui para mim ah etc eu vou aceitar aqui pelo jeito Ele fez eu vou dar
aceitar eu nem vou dar um continuar para ele rodar aqui para mim e agora eu já quero explicar aqui para vocês o que ele acabou de fazer Porque é importante vocês entenderem alguns pontos aqui pra gente tá seguinte o go Ele trabalha com algo que a gente chama de structs tá todos tudo que você escreve no go a gente trabalha de forma tipada tá o que que isso significa no final das contas com tipos o go se você cria uma variável e ela é uma string ela vai ser uma string pro resto da vida ela
tem tipagem forte Porém você consegue criar uma estrutura de dados onde você pode colocar diversos tipos dentro dela então isso aqui é como se fosse uma espécie de uma classe tá bom imagina como se isso fosse uma espécie de uma classe e isso aqui que ele tá colocando é uma tag como se fosse uma notation para toda vez que se num Jon na hora dele exportar para um Jon esse D é maiúsculo vai aparecer minúsculo se aqui C name é maiúsculo é minúsculo e você consegue brincar com os nomes com os identificadores aqui no Jon
mas basicamente isso aqui é uma estrutura de dados e se você perceber aqui olha o que ele criou aqui para mim ele criou aqui para mim um Slice o que que é um Slice um Slice é um arrei dinâmico o go possui ar a raz no go tem tamanho fixo o Slice no go ele usa a raz por trás mas ele não tem tamanho ele não tem tamanho fixo você pode ir adicionando os dados que você quiser e aqui se você perceber ó ele criou um o nome o description o price e a categoria aqui
pra gente da listagem de produtos ou seja ele criou uma variável e se você perceber o go inferiu né já de cara que isso aqui é um produto tá então é basicamente isso que ele acabou de fazer aqui pra gente e agora olha só que interessante isso que eu quero mostrar para vocês pessoal essa função zinha aqui que ele criou é chamada de get products essa função ela tem um response e um request quem tá acostumado com request response e um servidor web galera hein quem aí tá acostumado com servidor web que tem request response
todos isso fal verdade se todos tem request response aúnica difera aqui do go é response request Ou seja oiter é o que você esc no result Ou seja é response e o r que é o de request o que eu fando que o tipo deo é um content Type application Jon e aqui eu tô falando que é para ele pegar tá uma biblioteca do Jon encodar o resultado para sair no nosso response tá por isso que ele tá colocando w aqui do nosso response e para ele encodar isso dos nossos produtos ou seja transforme esses
produtos na resposta no formato Jon tá eu não quero que vocês fiquem tentando decorar a sintax do Gol tá é uma sintaxe meio diferentona se vocês perceberem tá bom ah go tem ponteiro sim mas ele é um mais simples do que você costuma ver tem um vídeo que eu gravei recentemente inclusive aqui no canal explicando ponteiros no gol depois assistam não se assustem com isso você não precisa nem ficar preocupado Tá e agora aqui ó se você olhar lembra o nosso servidor web o que eu fiz eu criei um endp chamado products né apontando a
função get products aqui para mim então o que que acontece aqui nesse caso toda vez que eu acessar get products em tese eu tenho que pegar essa lista de produtos como Jon será que isso é verdade vamos lá eu vou ah matar o meu Web Server vou subir o Web Server de novo tá para ficar um pouco melhor eu eu vou criar um arquivo chamado teste. http e no teste http eu vou colocar um get ah http 2. L barra localhost 2.880 é é assim que funciona o que que eu tô esquecendo galera ou será
que essa versão do meu BS code não tá com o o Simple http instalado bom Dane eu vou no Browser Se eu precisar ah deixa eu colocar aqui local rosto 2.880 não quero perder tempo com isso vou colocar aqui barra products né E tá aqui galera o nosso servidor web trazendo os dados aqui pra gente cara tô cismado com essa parada velho que que eu tô fazendo de errado cara el não tá achando a parada cara é porque eu tô com módulo insider Ah aqui PR gente bom galera Dan tá eu não tô com os
meus eu tô com outro vest code aqui instalado do MVP da parada da Microsoft então é tudo Beta acho não tô nem com os plugins todos instalados aqui para mim tá mas tirando esse detalhe do nosso http se vocês perceberem quem achou isso difícil galera falem aí para mim por favor quem aí achou isso difícil com que eu acabei de fazer defini uma espécie de uma classe fiz a listagem das variáveis criei uma função e executei não precisei trabalhar com nenhum arquivo externo Tá mas isso aí acaba sendo galera de uma forma geral uma API
uma coisa bem simples mesmo do que a gente tá acostumado fazer tá a sintaxe é estranha para quem não tá acostumado agora isso é bem simples mas o que fica mais simples em muitas situações é coisas desse tipo tá eu sempre dou esse exemplo funk contador onde eu tenho a o i que é um inteiro aqui para mim Ah e eu quero FMT P println eu vou colocar contador aqui para mim O que que significa aqui ó vou derrubar meu servidor web e eu vou fazer o seguinte ó ah não é isso né contador I
eu vou passar da eu vou fazer um loop for eu vou colocar um valor eu vou colocar aqui count para ficar melhor for count eu vou colocar aqui 10 beleza e aqui eu vou colocar contador Não não vou colocar gente eu tô viajando I do pontos igual z0 i é menor que count né pelo amor de Deus e mais mais tem alguém precisando aula de lógica aqui de programação eu vou colocar para ele contar até 10 aqui para mim vou dar um go Run go contou até 10 aqui para mim mas ele não somou né
Beleza mas ele mandou aqui essa parada aqui para 10 então qu colocar aqui I agora o grande ponto é que eu vou fazer eu V colocar um time P slip aqui para mim eu vou colocar time P para ele dormir um segundo então o que que vai acontecer eu vou rodar e ele vai começar a contar aqui para mim beleza tá contando super de boas aqui galera Quanto tempo demorou para rodar isso aqui em tese 10 segundos vocês concordam comig em tese 10 segundos 1 segundo para interação mais ou menos isso fazendo papel de papel
de como se diz papel de padeiro agora e se eu colocar mais um contador aqui de mais 10 que que vai acontecer quanto tempo vai demorar para eu rodar esse meu programa vamos lá quanto tempo quanto tempo em tese 20 segundos porque eu vou rodar o contador novamente aí duas vezes duas vezes de 10 então vou esperar 20 segundos agora não seria muito mais legal né de eu por exemplo fazer o seguinte eu vou colocar um Gol aqui na frente e olha só o que vai acontecer eu não sei que o que vocês tão sacando
o que tá acontecendo mas a grande sacada aqui é que quando escrevi gol na frente esse cara Ele criou uma go routine e acabou sendo uma espécie tipo uma trad e isso Começou a rodar em paralelo com o programa que estava acontecendo aqui e agora o ponto começa a ficar mais interessante por que que eu tô dizendo isso porque nesse momento agora eu já consigo fazer várias coisas ao mesmo tempo tá e eu consigo de fato rodar isso em paralelo principalmente porque eu tô multicore ainda então eu consigo fazer essas paradas rodarem ao mesmo tempo
legal ah somente para quem chegou agora go rotina não é uma nova trad ela é uma trad interna do Gol é uma Green trad é uma trad Newland é uma trad gerenciada pelo runtime do Gol ou seja ela custou 2 KB de memória pra gente ter diferente de uma trad sistema operacional que vai custar 2 megas pra gente tá então esse aí é um ponto assim que é importantíssimo para vocês entenderem essa parada agora um outro ponto importante para você conseguir se ligar quando a gente tá falando em multitrading ou qualquer coisa desse tipo a
gente pode chegar em Pontos um pouquinho diferentes tá lembra que eu falei aqui no no scal draw a sobre canais né que eu posso fazer uma trad falar com a outra e evitar esses problemas de Race conditions eu consigo fazer isso com go de uma forma muito fácil tá como assim muito fácil olha só que interessante que eu consigo fazer aqui eu posso por exemplo criar um canal tá então vou colocar aqui ó vou chamar esse canal de canal dois pontos igual make Channel e vai ser uma mate de Channel de string ou seja aqui
é o canal de comunicação Lembrando que a o Main aqui ele é uma trad um tá ou seja ele é uma go rotina que ele tá sendo executado aqui também aí o que que vai acontecer eu também eu vou criar uma função anônima aqui dentro e essa função anônima vai ser uma go rotina também tá então esse aqui é o grande ponto e qual que é o meu objetivo o meu objetivo é eu executar uma operação na tred número um e essa operação ser sincronizada na operação da tred do Como assim olha só que interessante
aqui nessa minha trad do tá n quando eu tenho gol na frente vamos dizer que eu vou chamar de trad gol mas vocês sabem eu tô querendo dizer que é uma Gol rotina tá go R tá que que eu fazendo aqui eu pegar esse canal e eu mandar um olá mundo para esse canal aqui e o que que vai acontecer aqui embaixo então quando eu chegar aqui embaixo aada vai ser um pouquinho diferente eu vou pegar o que foi colocado nessa TR 2 na minha tred um Como assim eu vou pegar uma uma variável que
vai pegar o valor que foi jogado nesse canal aqui dentro e depois eu vou imprimir esse valor aqui para mim alguém entendeu a lógica do que eu tô querendo fazer aqui pessoal Quando eu fizer isso Esse meu canal agora está vazio quando eu faço esse cara aqui o canal fica cheio basicamente é isso esse canal é a é a ponta da comunicação entre essa go rotina que é uma tred e essa go rotina que é uma outra trad a maior dificuldade quando a gente tá falando em concorrência nos dias de hoje é exatamente essa conseguir
sincronizar as informações então quando eu rodar isso ó vamos rodar go Run main.go você vai ver que eu recebi o há mundo mas esse há mundo aconteceu de uma forma diferente a aplicação Ficou rodando e travada aqui aguardando algum dado chegar nesse canal quando essa go rotina executou e colocou o dado nesse canal automaticamente esse canal esvaziou e a gente pegou essa informação fe aí para vocês galera deixa saber se fez algum sentido o que eu tô falando aqui para vocês tá então se você perceber eu não estou mais brigando com o mesmo lugar da
memória né Eu não estou mais brigando com essa informação eu passo a informação de um lado pro outro tá ou seja esse cara escreveu olá mundo esse cara eu botei um olá mundo aqui dentro daí esse cara quis olá mundo é basicamente isso que acaba acontecendo Então você consegue fazer um fluxo dessa aplicação e você deve estar pensando para que que eu vou fazer o fluxo de uma aplicação desse tipo tá ah a gente consegue fazer coisas de forma geral bem avançadas esse exemplo do load balancer Eu gosto bastante alguém manja como é que funciona
um load balancer um engex da vida né basicamente ele tem um pai um processo principal e ele tem o workers workers são os caras que processam as requisições que vão chegando né E quando eles terminam essas requisições né vão chegando outras ali para ele agora já pensou se eu tivesse que fazer diversos processamentos em paralelo então com go a gente consegue fazer isso de uma forma bem simples olha só que interessante vamos imaginar que eu vou criar aqui uma função tá chamada worker essa função eu vou ter o worker ID só para eu poder identificar
ele eu vou ter um canal certo de inteiros que eu vou mandar para ele aqui o que que isso significa agora significa que eu vou pegar tá um valor x do pontos igual a range de data o que que é data galera é um dado que eu vou receber nesse canal tá ou seja o o dat é o é um canal onde eu vou ficar lendo isso aqui é um Loop Infinito chegou dado no data esse loop vai iterar não chegou data fica travado chegou data ele itera é basicamente isso que vai acontecer E aí
eu vou fazer alguma coisa assim ó FMT print print print F FMT printf eu vou colocar aqui ó worker número tal executou apareceu esse valor aqui pra gente o worker id e o x né ele tá substituindo o dígito pelo worker id e esse outro dígito pelo X que é um inteiro aqui pra gente e agora eu vou colocar esse cara para dormir por algum tempo também então vou colocar time pon slip time PSE então o que que acontece aqui pessoal eu criei uma função que ela processa algo isso aqui poderia tá você fazendo um
algoritmo complexo fazendo um monte de coisa esse slip é somente para simular simular um trabalho pesado tá basicamente isso que acaba acontecendo aqui pra gente agora olha só que interessante o que eu vou fazer eu aqui dentro eu vou criar um canal agora que ele vai ser uma canal de uma de um inteiro legal eí eu vou fazer algo um pouco diferente agora eu vou fazer o seguinte eu vou criar um worker e vou falar que o worker tá o ID dele é um e eu vou falar que o canal que ele vai utilizar vai
ser esse nosso canal de data aqui ó e eu vou passar esse canal de data bacana mas esse worker ele tem que rodar de forma assíncrona pra gente Tem que criar uma trad para ele ficar rodando independente dessa minha trad M Então vamos dizer que esse worker aqui ele tem que rodar numa trade de dois para isso acontecer eu vou colocar um gol na frente e agora olha só o que eu vou fazer eu vou colocar um for i dois pontos ig a z0 ou eu posso fazer I Range né e i dois pontos igual
a range de 10 eu acho que é assim né a partir do Gol um ponto alguma coisa e eu vou jogar o valor de I pra minha data o que que isso significa pessoal que cada vez que esse for rodar ele vai pegar o valor de i e vai jogar pro data esse data é um canal certo então tô jogando o valor de I para esse canal quem tá lendo esse canal esse worker worker vai pegar esse valor de I vai processar vai esperar um segundo para ele terminar é basicamente isso que vai acontecer Vocês
pegaram a ideia pessoal do que isso tá fazendo pegaram a ideia pegaram a ideia do que que tá acontecendo Então eu tenho um worker que vai trabalhar em background e esse cara fica jogando dados para esse canal onde o worker tá pegando esses dados agora eu vou rodar essa parada vai dar um errinho no final mas não tem problema então ó worker zero worker 1 aqui ó ele Processando o meu worker rodando aqui para mim beleza agora o grande ponto aqui é e se eu tivesse vários workers eu poderia fazer assim ó eu tenho um
worker 2 que vê o canal de data Então olha só que interessante agora agora eu tenho mais caras trabalhando para mim mais rapidamente Então eu tenho mais dados podendo ser processados Imagina eu tenho um monte de relatório para processar no meu sistema um monte de PDF que eu tenho que gerar que eu vou receber de uma fila de um cafca ou V ler de um arquivo TXT e eu tenho que processar todos esses caras ao invés de eu fazer um por um o que que eu vou fazer eu posso criar workers que vão dividir essa
para resolver esse problema se eu quiser ir um pouco mais longe eu posso fazer algo do tipo eu posso colocar quantidade de workers eu posso colocar 10 certo e aqui eu faço um for e dois pontos igual a zero e é menor que a quantidade de workers e agora eu Gero os meus workers simultaneamente tá então eu tô falando que eu tenho 10 workers para processar sem registros agora aqui para mim então agora o que que vai acontecer eu tenho 100 caras tenho 10 caras fazendo o processamento dessas informações aqui para mim tá go rotina
é mais eficiente que Promise não dá nem para comparar tá Promise ele cara ele joga essa parada de lado para rodar síncrono para não travar o loop do node cara aqui a gente tá falando de um nível muito diferente a gente tá criando uma uma trad interna dentro do runtime com scheduler que tem todo um gerenciamento e a questão não é nem essa é a sincronização dos dados porque esses dados eles não ficam brigando e tendo concorrência entre eles tá e as coisas elas podem começar ir mais loucas ainda né Por exemplo eu posso colocar
aqui e vou pedir pro meu copai que eu não lembro de cara a Será que o CoPilot me ajuda Vou colocar aqui deixe o o slip de um segundo mas com um valor randômico junto será que ele vai funcionar é o Range int que ele vai usar e etc daí ele trouxe aqui para mim o Range int etc vou colocar sempre tem que colocar aqui para ele aqui né Sempre tem que colocar aqui ó modo agente galera Essa parada é muito louca Vou colocar aqui para ele deixe o slip com tempo randômico vamos ver se
ele vai conseguir fazer para mim aonde que ele mostrou a alteração aqui eu vou dar um aceitar aqui para ele vamos ver se ele vai conseguir rodar então ele colocou time duration e ele colocou cinco inteiro time P second ele deixou dinâmico essa parada aqui para mim agora o que eu vou fazer vai ser o seguinte esse Range aqui eu vou colocar um valor bem grande quanto que eu vou colocar sete dígitos 1 2 3 4 5 6 7 aqui para mim e aqui eu vou falar que eu quero ter 10.000 Gol rotinas rodando simultâneo
se a minha máquina não travar que eu acho que não vão trasar travar a gente vai resolver essa parada logo então vamos rodar aqui e olha só galera Ó o número das nossas Gol rotinas rodando rotina 8801 rotina não sei o qu e ele vai ter que processar ali a na realidade eu acho que coloquei eu coloquei quanto eu coloquei 1 milhão ou 10 milhões 100 10.000 100.000 1 milhão cara eu coloquei número demais aqui mas ele tá processando eu vou fazer o seguinte eu vou diminuir um dígito aqui e vou aumentar um dígito aqui
nas minhas go rotinas vamos ver o que que vai acontecer Olha isso aqui galera sacou o que eu tô dizendo tudo isso tá rodando e sendo processado paralelo usando os núcleos do meu computador com essas rotinas de uma forma extremamente sincronizada sem ter condição de corrida concorrência na memória de quem vai querer ler e processar os dados simultaneamente Olha a quantidade de dados que eu consegui processar nesse momento aqui para vocês então quando a gente começa a entrar nesse lado Tá o que que começa a a brotar na nossa mente que além da linguagem go
ela ser uma linguagem extremamente rápida e eficiente Só pelo fato dela ser compilada tem um runtime muito bem feito um garbage collector bem decente e tudo mais a gente consegue fazer coisas desse tipo de uma forma que é quase que inexplicável a facilidade a gente criou um load balancer aqui entendeu então isso aí acaba gerando uma outra perspectiva de como você vai desenvolver software daqui PR frente porque algo que antes era complexo de se fazer né brigando com isso o tempo todo eu consegui fazer isso aqui ó em meia dúzia de linhas e o meu
computador nem chorou por quê eu consigo ter dependendo do seu poder computacional centenas de milhares de GO rotinas rodando simultâneos porque cada go rotina dessa são apenas 2K isso que eu fiz seria impossível de a gente fazer com a minha máquina normal com treds convencionais porque eu ia rodar um out of Memory porque eu não ia ter a memória suficiente no meu computador para criar tantas trads dentro do mesmo processo entendeu isso aí é um ponto assim impressionante agora eu vou contar um segredo Ah muito interessante para vocês tá a gente tava brincando até agora
com o nosso Web Server né lembra que a gente criou aqui o nosso Web Server a gente colocou a a http Listen and serve a gente colocou na porta aqui 8080 New e a gente deu um rle ah Random funk né o que era o get products que era esse cara aqui como que era barra produ e é rendom rend rend funk isso aqui no go é um Web Server certo mas o grande ponto aqui é que sabe qual que é a maior curiosidade desse servidor http in go é que cada request que a gente
faz no servidor adivinha o que que o servidor do Gol faz gera uma nova Gol rotina Então imagina a quantidade de requisições http que um servidor em Gol consegue receber porque ele recebe uma pancada de solicitação cada solicitação é uma go rotina E aí nesse momento ele consegue rodar de forma paralela muito forte o servidor web obviamente que tem outras coisas para considerar né ah não é só criar go rotina né a go rotina vai ter que processar a requisição é esse processamento da requisição obviamente às vezes vai chamar banco de dados vai fazer um
monte de operação e tá tudo ok o grande ponto aqui é você conseguir entender que tudo por trás do gol no final das contas representa uma Gol rotina que vai conseguir fazer você trabalhar de forma paralela o tempo todo entendeu então isso aí é uma das coisas assim que acabam mudando o jogo para quem vai trabalhar com a linguagem para fazer absolutamente qualquer coisa né às vezes eu fico vendo a galera Ah vou trabalhar com stream no JavaScript para processar não sei o quê para fazer não sei o qu para não ter que ler tudo
da memória galera velho isso aí não é nem um pensamento isso é algo Óbvio para quem já trabalha com gol porque você já é orientado a trabalhar dessa forma toda hora que eu tô programando em Gol eu na hora eu já tô pensando cara o que que eu consigo fazer de forma concorrente tá isso aí é uma parada muito louca ah eu vou pedir pro CoPilot fazer uma coisa aqui honestamente eu não sei se ele vai conseguir fazer tá a mas existe já aplicações que fazem coisas desse tipo tá mas olha só que interessante Já
pensou eu ter uma aplicação que eu quero digitar um CP e na hora que eu digitar o CP o que que vai acontecer ele vai buscar lá num site num api do site do correio mas já pensou na hora que eu digito um C eu Gero várias go rotinas para fazer requisições em várias apis e api que me retornar antes adivinha o que que acontece eu pego o resultado e cancelo a chamada dos outros ou seja eu chamo vários caras ao mesmo tempo quem me retornar primeiro respondeu e eu consigo dar a melhor experiência pro
cara ainda entendeu Eu acho que o Pilot vai sofrer para fazer isso aqui vamos fazer um teste na frente de todo mundo não custa nada né mas eu vou colocar para ele fazer ó vou colocar assim ó faça um programa simples para buscar CPS onde eu passo o CP e o sistema para a consulta em duas apis diferentes para pegar os dados do endereço Barra Rua a cidade e etc a api e responder mais rapidamente você retorna O valor e Cancela a chamada da api mais lenta não sei se o meu prompt foi bom suficiente
Tá mas vamos ver se ele consegue fazer alguma coisa parecida com isso aqui mas de qualquer forma galera você consegue perceber como que as coisas e o nível de possibilidades acabam mudando aí nesse caso saca e o grande ponto é que na maioria das vezes aí nesses casos você não precisa ficar brigando né com uma parte do sistema que faz isso a outra parte do sistema que faz aquilo a outra parte da do outro sistema faz aquilo e assim as coisas vão trabalhando o ponto é aonde que eu consigo trabalhar de forma concorrente e que
faz sentido a gente tá muito acostumado a trabalhar de forma serial faz isso depois faz isso depois faz aquilo depois faz aquilo depois faz aquilo e tudo mais agora as coisas acabaram mando bastante em tese ele gerou aqui o código aqui para mim ah vamos ver ele vai fazer um teste vamos criar um arquivo para testar iniciando o servidor continue para rodar o servidor vamos ver se ele agora vai fazer uma chamada galera ess parada de a a coisa avançou para caramba hein fala a verdade como que as coisas estão nos dias de hoje Pessoal
vocês acham que vocês já podem ser substituídos por uma ma Iá falem aí para mim vou clicar aqui no meu teste. http aqui para ver se ele coloca aqui para mim Ah eu tenho que é o http rest que eu tenho que fazer como que é o nome rest client cara como que é o nome rest Cent Cara eu acho que é esse rest client que eu tenho que botar para rodar deixa eu ver se era o rest client mesmo tô sem as minhas extensões aqui ó send request mandei uma request peguei o resultado e
Maravilha aparentemente funcionou Sim Ah agora que funcionou indique a fonte da onde o resultado veio no json só pra gente saber que ele tá pegando do mesmo lugar vamos ver mas aparentemente funcionou o nosso programa aí né ah tem gente falando aqui ó ela não gera bugs como eu tem chance ah rezo todos os dias para não acho que dependente se a pessoa for capaz de especificar bem os requisitos da aplicação caso contrário não eu uso I no Fronte porque apanho mas no back ma uso eu fiz aplicação de transmissão de futebol online em 10
minutos com ia aí eu configurei um servidor emex e ban e já dava para transmitir qualquer coisa é galera o lance s tá cada vez mais fácil com o ia né a a grande questão aí é se tá fácil com o ia vai tá fácil para todo mundo né como é que vai ser a gente no mercado vocês já partiram já fizeram essa conta aí deixa eu dar um accept aqui antes você pode rodar no terminal Ok deixa eu parar rodar no terminal esse cara aqui como que eu aceto aceito tudo aceito tá tudo Don
aqui para mim Agora eu só vou pedir essa mudança e o código Face eu nem vou entrar em questão do do código se ele saiu bom ou não vamos até dar uma olhada nesse código vai que ele gerou Ele criou ele não apagou o meu restante do meu código ele tá usando via CP tá usando o Brasil api response Ele criou uma uma struck de unificação e botou um sorce para ver da onde que veio Manteve aquele meu endp de produtos do worker fez um um fet via CP pegando os dados e trabalhou com canal
olha só Aí ele faz a a a a request pega os dados Transform em Jon e manda pro Canal para ele preencher o a resposta usando via Sep e ele faz a mesma coisa com o Brasil H pro Brasil IPI mesma coisa e ele joga no via CEP A única diferença é que o Brasil api aí ele criou um endpoint http search CP e na hora que ele faz isso ele cria um contexto que ele dá 5 segundos para conseguir receber a resposta ele cria duas go rotinas Ou seja vão rodar em paralelo a busca
no CEP a go rotina que receber primeiro responde E caso tenha passado dos 5 segundos ele cancela e não traz nenhum resultado ou seja quem terminar a busca primeiro ele vai retornar ao resultado Ou seja eu fiz duas tentativas quem me retornar primeiro deu certo aqui para mim basicamente isso que ele fez vou rodar meu teste de novo tenho que subir meu servidor vou rodar e ele trouxe e disse que o via Sep foi mais rápido Vou colocar ó agora Ele trouxe do Brasil api agora via CP agora Brasil api agora via CP vou botar
o CEP de Pirapora do Bom Jesus que é da onde que eu sou 06500 é uma cidade que só tem um CEP pra cidade inteira ó veio P Brasil api veio P via CP ó cada hora ele consegue chamar e vir de um lugar diferente depende da disponibilidade da pi galera deu para vocês sacarem o poder das coisas que a gente acaba tendo agora daqui pra frente eu não tô falando da ia tá o que eu tô querendo dizer é que coisas que antigamente Dari um mega trabalho agora eu consigo fazer mais rápido pensa eu
posso fazer duas chamadas de CP quem retornou para mim primeiro ganhou e eu retornei pro cliente da forma mais rápida possível tá então isso aí são coisas que fazem muita diferença né saca a o an train não sei como é que você fala o seu nome Cara ele falou para fazer web scrapper cara com certeza Imagina você consegue Clear diversas páginas simultaneamente entendeu E já gravando num banco de dados Já come já começando outra tudo isso de forma multitrading vamos dizer usando as go rotinas para conseguir trabalhar o que eu quero trazer aqui para vocês
hoje galera em relação a essa parte do go especificamente eh não é ficar Ensinando sintax ensinando como fazer um loop como fazer um wif cara isso você aprende em qualquer lugar agora são esses conceitos que mudam o jogo nessa linguagem entendeu a gente agora a gente criou esse programa de CP em 10 segundos usando a um GPT da vida eu vou falar para você tá para um código que foi gerado a toque de caixa com prompt muito mal feito a qualidade do código foi bem razoável deixa eu remover essas montes de tranqueiras aqui ah get
products Deixa eu tirar vou tirar o meu contador vou ter tirar meu worker ah o que mais que ele fez resultados search CP o Main tira o produto cara assim de forma geral código Não ficou ruim cara a única coisa assim eu posso colocar até aqui pro código né falar assim Acho que os handlers http tem muita responsabilidade crie um serviço para cada ah provider de CP e utilize os utilize nos handlers no handler para deixar o código mais simples e elegante e fatore e faça um código simples e eficiente e legível tá em modo
ag gente e agora vamos ver se ele trabalha e acaba criando aqui pra gente galera deu para vocês se tocarem ó ele tá falando ó vou criar um vou criar um diretório tá eu falo pode criar um diretório eu deixo você criar um diretório aqui para mim não tem problema aí ó ele já criou um terminal para ele aqui para ele trabalhar né pessoal deu para vocês conseguirem se ligar o poder que a linguagem go ela já vai começar a abrir novos horizontes pra forma como você constrói o software Então isso que é o grande
ponto o Vitor já fez uma uma uma pergunta interessante tem algum Framework que você indique para api cara é incrível como nós desenvolvedores a gente adora Framework né Principalmente quem vem de outras linguagens que não são da linguagem go mas sim o gol ele tem frameworks mas normalmente o frameworks que você usa o go eles são bem diferentes do que você tá acostumado com o Spring com laravel os frameworks do Gol são muito mas são muito pequenos minimalistas principalmente pelo fato do Gol ser uma linguagem que grande parte do das coisas que você precisa estão
na biblioteca padrão você não precisa de criar diversos importar um monte de pacote externo para conseguir a trabalhar com a linguagem entendeu então sim tem frameworks tem bibliotecas tem muita coisa pronta que você utiliza Mas você vai perceber que no dia a dia a a comunidade em si ela tende a a trabalhar de uma forma um pouco mais purista aí tá então é É bem interessante Então para coisas mais básicas tipo ah eu não preciso baixar um Express para eu trabalhar ou qualquer coisas desse tipo tá ele falou que fez eu vou aceitar aqui essa
parada nem sei se vai funcionar aqui ele já encontrou erro aqui inclusive aqui ele já botou um erro aqui ó deixa eu ver ó search Ele criou um um end Point fez um se service fez um Brasil service aqui para mim e etc só esse erro aqui que ele fez cara ficou mais ou menos deixa eu ver ele criou outros arquivos aqui service Brasil Service api aonde ele faz realmente o serviço ele cria um Sep service onde tem basicamente uma interface que vai implementar e ele tem esse cara implementando essa mesma interface ou seja fez
de forma decente só essa implementação aqui que o select dele ficou um pouco grande Ah vou colocar aqui done mas tem erro e o select ficou muito de elegante Ah e verboso melhore o m pon go mas galera deu para vocês perceberem tá a pegada da linguagem Eu acho que o ponto principal da linguagem go não tá em ser apenas mais uma linguagem que a gente tá acostumado ela é uma linguagem que trabalhar com ela é bem simples Dá para vocês perceberem que a gente conseguiu fazer coisas realmente complexas na linguagem mas de uma forma
simples porque fazer esse worker por exemplo que a gente fez ou fazer essa parada do CEP que a gente fez funcionar dessa forma tenho certeza para qualquer outra linguagem de programação daria muito mais dificuldade porque não é trivial fazer isso sincronizar informações entre trads e coisas desse jeito entendeu então são esses pontos que são importantes a você levar em consideração na hora de você trabalhar com com qualquer linguagem ele tem esse c service aqui que deu um defined galera o Devin é bem melhor do que o o CoPilot aqui ele tem algum erro e ele
tá trabalhando aqui para mim ó undefined sabe qual que é o problema desse cara ele não ele não Testa o o software direito para ver se o software tá compilando o Devin é diferente e eu vou trazer um vídeo no YouTube e daí vocês vão tirar as conclusões se vocês vão realmente poder ser substituíveis por uma inteligência artificial tá galera Ah eu prometi para vocês que eu ia trazer Pontos importantes da linguagem Gol em 1 hora a gente começou oficialmente aí umas uns 10 minutos de diferença a gente passou um pouquinho mas agora a gente
tá meio que batendo um papo de forma geral e brincando um pouco com o iado o que que ele tá conseguindo trazer do aqui que ele não tá conseguindo trazer e tudo mais mas a mensagem que eu queria passar aqui para vocês era essa a forma que como que a linguagem go ela consegue trabalhar e como que ela consegue te ajudar fazendo coisas que realmente são complexas de uma forma simples eu não sei o nível de complexidade que você achou que a gente usou para fazer por exemplo aquele load balancer né com aqueles workers Mas
acredite se você achou aquilo complexo em outras linguagens isso é muito mais complexo ainda tá então essa que é a ideia principal perguntaram Quando que a próxima turma da pósgraduação nossa segunda-feira a gente acho que vai abrir pré-vendas eu acho que a próxima turma é no início de Abril não tenho certeza tá galera eu acho que é no início de Abril a gente tem um MBA em arquitetura fso a gente tem uma pós--graduação de devia Tech Lead para líderes técnicos e a gente tem uma pós-graduação focado na linguagem go tá eh todas essas pós-graduações reconhecidas
pelo MEC através da faculdade full pych de tecnologia galera então ah e obviamente né a gente tá no meio da imersão no meio da imersão né no Esquenta da imersão Mas o que eu quero de coração mesmo é pedir para que vocês na semana que vem com compareçam a gente vai ter uma abertura fantástica da imersão com Mercado Livre segunda de manhã Vocês já vão receber as mensagens Ah com o link do Home Broker que a gente tá desenvolvendo o luí Carlos e eu a gente tá criando uma ferramenta que você pode comprar e vender
ações obviamente é simulações né mas a gente vai usar nestjs nextjs a gente vai utilizar o Web sockets a gente vai usar P CFC e a gente vai utilizar go tudo isso num único o projeto utilizando docker microsserviços funcionando totalmente desacoplados para rodar uma aplicação completa do começo ao fim e você vai poder acompanhar o desenvolvimento disso de ponta a ponta com a gente tá então vai ser uma experiência realmente super bacana deixa eu ver se ele conseguiu rodar Ah tá rodando aqui vamos ver se ele vai conseguir rodar o meu CP depois dele teratur
o meu código rodou aqui para mim mas ele não trouxe a fonte da onde que veio mas vamos bateu o olho aqui C service ele fez um search Sep buscou na api fez a requisição http tratou o status trouxe a informação o search aqui ele criou uma interface fez uma interface pro Vip aqui também e no m Ele criou aqui um um search Sep faz um timeout busca esses roda esses serviços com go rotinas e depois coloca galera eu não gostei desse código não achei que ele ficou muito Complex inho eu faria ele mais simples
Tá mas rodou né é um é um software que tá funcionando que eu não tive que partir do zero aqui no exemplo aí com vocês Tá mas pessoal era isso que eu queria trazer isso de Gol aqui para vocês espero que vocês tenham curtido se você não tá inscrito na imersão ainda quem aqui tá assistindo essa Live não tá na imersão galera Opa espa um pouquinho não é esse site aqui é o site do curso full pych né Pera um pouquinho Ah quem tá não tá na imersão ainda com a gente galera galera vocês tem
que entrar na imersão o stack full cycle é online é gratuito O nosso evento E durante 7 dias a gente vai trazer conteúdo que você vai aprender em uma semana o que você não aprendeu em um ano tá então essa aqui é a pegada aí para para vocês saberem deixa eu colocar imersão o stack e full cycle no Google aqui Ah aqui acho que aqui essa página É isso aí eu já mando o link aqui para vocês galera já mando o link aqui para vocês já peço pro pro pessoal botar aí no chat aí para
vocês pessoal resumo da Ópera tá queria agradecer todo mundo que tá participando dessa Live até agora gol não é a coisa mais popular do mundo então tô feliz que depois de um tempo a gente ainda tem quase 200 pessoas aqui com a gente tá Ah Espero de coração mesmo que todos vocês ah possam curtir acessar a nossa imersão ah segunda-feira começa e eu não tenho dúvidas aí que você vai poder aprender para caramba tá Ah com tudo que a gente vai passar aí para vocês tá então fique ligado tá o tempo todo porque tem coisa
muito top que você vai aprender com as tecnologias aí mais modernas ah do mercado fechou Maravilha galera deixa eu ver aqui meu computador aqui tinha subido aqui para mim Maravilha pessoal era isso que eu queria passar muito boa noite para vocês Curtam o resto da noite amanhã é sexta-feira trabalhem bastante honrem Aonde vocês trabalham aprendam bastante estudem o link da imersão tá embaixo aí no YouTube para vocês poderem se inscrever tá e tudo de bom aí para vocês galera fiquem com Deus e a gente se fala além dos mbas da pos tem planos para graduação
no futuro temos planos para graduação no futuro mas não vai ser no futuro tipo semana que vem mas a gente vai ah lançar a graduação sim no futuro provavelmente no próximo ano Maravilha pessoal abraço para vocês e amanhã tem mais Live do Esquenta aí tá então aproveitem para ficarem porque tem coisa para caramba que vocês vão aprender na semana que vem vamos nessa galera até mais para vocês i
Related Videos
Copyright © 2025. Made with ♥ in London by YTScribe.com