Тёмный

Meu 2o TESTE PRÁTICO em Golang para Vaga SÊNIOR de Programação 

Filho da nuvem
Подписаться 42 тыс.
Просмотров 10 тыс.
50% 1

Chegou a hora de mais um teste prático/tech challenge que eu fiz para uma empresa REAL. Esse é teste mais difícil da playlist ate agora, ja que ele era para uma vaga de programador/programadora sênior.
Evolua com desafios técnicos inspirados em testes reais de empresas de tecnologia:
💪 devgym.com.br/
🔗Links úteis
De volta na playlist de testes práticos: bit.ly/36JwGpz
Vários vídeos de Go: bit.ly/2BiaZRQ
Concurrency Is Not Parallelism: • Video
🕰Capítulos
00:00 Intro
01:08 Problema
02:47 Organizando o pensamento
04:22 Parser do log
12:02 Salvar o log na base de dados
18:27 Concorrência e goroutines
33:01 API
🏆Melhores vídeos pra você que:
* Quer começar a programar: bit.ly/2GlIeUi
* Quer escrever os primeiros códigos: bit.ly/2P8Medz
* Quer se preparar para entrevistas de emprego: bit.ly/2Z6YmAB
* Quer se preparar vendo soluções de tech challenges: bit.ly/3aHovL8
* Quer trabalhar em Portugal: bit.ly/2DcNQye
* Quer saber mais sobre Testes: bit.ly/2IBCmXo
▶️ Redes sociais
Instagram: / filhodanuvem
Twitter: / filhodanuvem
GitHub: github.com/filhodanuvem
📺Do que se trata esse canal?
Quero Ser Programador é um canal no youtube com intenção de ajudar todos aqueles que queiram conhecer mais da área de programação, sejam iniciantes tentando dar os primeiros passos quanto aqueles que querem buscar novos tipos de oportunidades.

Наука

Опубликовано:

 

25 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 141   
@Filhodanuvem
@Filhodanuvem Год назад
Para mais projetos práticos inspirados em testes de emprego, acesse www.devgym.com.br/
@eduardospek
@eduardospek 2 года назад
Gosto assim, programadores empolgados com suas habilidades. Parabéns!
@edilsonfb
@edilsonfb 3 года назад
Excelente video! Organizado, objetivo e com muito alto astral. Parabéns, Claudson =)
@Filhodanuvem
@Filhodanuvem 3 года назад
Opa, valeu Edilson, que bom que curtiu!
@isabellasouza8015
@isabellasouza8015 4 года назад
Tô amando seus vídeos!! Obrigada :) Tô aprendendo muito.
@Filhodanuvem
@Filhodanuvem 4 года назад
Que legal Bella que tu tá curtindo. Qualquer dúvida e sugestão é só mandar por aqui 😉.
@NiltonOS
@NiltonOS 2 года назад
Que massa !!!, obrigado pelas dicas de regex
@Lokakoskt
@Lokakoskt 2 года назад
Muito bom!!! Parabéns por ter construído essa linha de raciocínio
@Filhodanuvem
@Filhodanuvem 2 года назад
Valeu Lucas!
@cauabrito445
@cauabrito445 4 года назад
Top show , tu é incrível mano!!
@Filhodanuvem
@Filhodanuvem 4 года назад
Valeuuu. Tem muito o que melhorar mas vamos devagar!
@SilasSWF
@SilasSWF Год назад
Cara, que conteúdo exemplo. Vc trouxe muitos conceitos importantes nesse vídeos. Parabéns!!!
@Filhodanuvem
@Filhodanuvem Год назад
Valeu Silas, que bom que curtiu, foi divertido condensar os conceitos no vídeo também.
@wesmota
@wesmota 2 года назад
Excelente vídeo. Está de parabéns!!
@Filhodanuvem
@Filhodanuvem 2 года назад
Obrigado Wesley, que bom que curtiu!
@silass9993
@silass9993 3 года назад
Cara, gostei bastante da forma que implementou o código. Parabéns!
@Filhodanuvem
@Filhodanuvem 3 года назад
Valeu Silas, legal que você curtiu!
@jeffersongoncalvesbotelho9757
@jeffersongoncalvesbotelho9757 4 года назад
Muito massa!!! Parabéns!
@Filhodanuvem
@Filhodanuvem 4 года назад
Valeu Jefferson!
@enzotriches606
@enzotriches606 4 года назад
Que rajada de conhecimento cara kkkk parabéns pelo conteúdo Claudson, ta muito bom!
@Filhodanuvem
@Filhodanuvem 4 года назад
hahahaha valeu Enzo.
@brunonairlanda
@brunonairlanda 4 года назад
Mais um vídeo sensacional. Parabéns Man.
@Filhodanuvem
@Filhodanuvem 4 года назад
valeu Bruno
@farnetani1273
@farnetani1273 3 года назад
Top d+++, vlw Filho da Nuvem pelo video, ficou nota 10!!! Bola uma aí desse método usando a lib que vc falou que tem que dar o await. Parabéns pelo trabalho!
@Filhodanuvem
@Filhodanuvem 3 года назад
Valeuuu, que bom que curtiu o vídeo :)
@RodrigoMedeirosBrazil
@RodrigoMedeirosBrazil 4 года назад
Que conteúdo legal! é sempre bom ver outras pessoas resolvendo problemas pra podermos ampliar a nossa percepção. Tá de parabéns!
@Filhodanuvem
@Filhodanuvem 4 года назад
Valeu Rodrigo. Se curtiu esse vídeo talvez curta os outros na mesma linha, mas com tecnologias diferentes: ru-vid.com/group/PLzehOqhpwpxh2iUcEkWaIijVRhbeiakrL
@RodrigoMedeirosBrazil
@RodrigoMedeirosBrazil 4 года назад
@@Filhodanuvem Vou fazer uma maratona já já! é que eu trabalho com back end, mas quando trabalhava com C, não tinha conteúdos como o seu.
@vnmshawn
@vnmshawn 3 года назад
Ótimo vídeo e uma boa ideia para para praticar GO!!
@Filhodanuvem
@Filhodanuvem 3 года назад
Valeu João!
@danielwolney3691
@danielwolney3691 2 года назад
Muito bom! Várias técnicas avançadas pra operação de read/write! Parabéns bixo
@Filhodanuvem
@Filhodanuvem 2 года назад
Valeu Daniel
@jorge.barcelos
@jorge.barcelos Год назад
Monstro demais 👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻
@Filhodanuvem
@Filhodanuvem Год назад
Opa, valeuuu mano, que bom que curtiu!
@xepad
@xepad 4 года назад
Muito bom mestre!!
@Filhodanuvem
@Filhodanuvem 4 года назад
Valeu Luciano
@victorbarros1130
@victorbarros1130 4 года назад
Muito irado mano! Parabéns
@Filhodanuvem
@Filhodanuvem 4 года назад
Boa Victor. Que bom que curtiu.
@datascientist7395
@datascientist7395 2 года назад
Mano, voce é bom. Só digo isso. Ganhou mais um Inscrito.
@Filhodanuvem
@Filhodanuvem 2 года назад
Opa! Valeu e bem vindo :)
@jonathangonzaga95
@jonathangonzaga95 4 года назад
Na moral, tô curtindo muito seu canal mano. Didática top. Postura humilde pra ensinar quem sabe menos, sem arrogância e prepotência. Parabéns cara, de verdade, vc é foda.
@Filhodanuvem
@Filhodanuvem 4 года назад
Que legal que está curtindo Jonathan. Vamo que vamo.
@datascientist7395
@datascientist7395 2 года назад
Cara, melhor canal que eu conheci essa semana. Uma pérola. Cara gente boa demais e sabe ensinar.
@isabellasouza8015
@isabellasouza8015 4 года назад
Essa é a segunda vez que assisto esse vídeo. Tô tão feliz que agora estou conseguindo entender cada detalhe que voce está desenvolvendo... *-* Depois de algumas semanas estudando todo dia... Seu canal tem me ajudado. Obrigada.
@Filhodanuvem
@Filhodanuvem 4 года назад
Fico Mega Feliz Bella que tenha ajudado. Esses vídeos são muita informação em pouco tempo, não dá tempo de eu explicar tudo infelizmente. Então sempre que tiver alguma dúvida que eu puder responder pode perguntar ok?
@isabellasouza8015
@isabellasouza8015 4 года назад
@@Filhodanuvem Sim, acaba que tem termos que precisa de um video mais longo pra explicar tudo ne. Estou quebrando a cabeça agora tentando aprender teste de integração.
@webertlopescancado7140
@webertlopescancado7140 3 года назад
Cara eu sou seu fã, eu gosto muito de Go apesar de trabalhar com c# faço alguns trabalhos pessoais em GO seus videos são otimos me inspiram muito.
@Filhodanuvem
@Filhodanuvem 3 года назад
Fico feliz que os vídeos te inspiram, quem sabe um dia tu não migra de vez pra go 😉
@pauloheres
@pauloheres 3 года назад
bacana demais esse vídeo!
@Filhodanuvem
@Filhodanuvem 3 года назад
Opa, daora que você curtiu!
@wagnaomoreira3961
@wagnaomoreira3961 4 года назад
Obrigado irmão.
@Filhodanuvem
@Filhodanuvem 4 года назад
Tamo juntoo
@RafaelDurelli
@RafaelDurelli 2 года назад
Muito bom seu vídeo. Eu fiz um exemplo muito similar. Na parte do parser eu utilizei o antlr 4. Gerei o parser em go e foi sucesso :). Sugiro da próxima vez dar uma olhada em gramática livre de contexto... :) é nóis. Baita vídeo bom :)
@Filhodanuvem
@Filhodanuvem 2 года назад
Que bom que curtiu Rafael! Acho que vi gramáticas no curso de auto e linguagens formais rsrs boa lembrança, abraços.
@ChannelNikim
@ChannelNikim 3 года назад
Muito top
@leandroramos1990
@leandroramos1990 3 года назад
Cara primeiro parabéns, gostei muito da forma como desenvolveu o problema. Tem algum conteúdo para quem esta começando com Golang ?
@Filhodanuvem
@Filhodanuvem 3 года назад
Valeu Leandro! Você já passou pelo go tour? Costuma ser o primeiro lugar pra se ter algum conhecimento em Go.
@luispires9702
@luispires9702 4 года назад
Bha!, dei uma pausa no vídeo e já dei meu like porque faz parte né e aproveitei pra comentar. Outra ideia bacana para o canal é colocar problemas igual esse que você apresentou isso é muito trí afinal num canal de programação problemas fazem parte do dia a dia, parabéns pelo vídeo e esta muito legal.
@Filhodanuvem
@Filhodanuvem 4 года назад
Valeu pelo Like Luis! Me explica sua ideia. Seria fazer um vídeo com problemas e deixar vocês resolverem?
@luispires9702
@luispires9702 4 года назад
@@Filhodanuvem tipo a forma que você resolveu o problema foi muito interessante e pensei que se desse para replicar para mais problemas seria muito legal, a forma que você explicou é joinha.
@Filhodanuvem
@Filhodanuvem 4 года назад
Saquei Luis. Obrigado pelo feedback. Eu tô pensando em trazer mais vídeos desses sim, o problema é que pra fazer 1 vídeo desse eu preciso de ter uma solução pronta e aí dependendo do problema eu gastaria horasss pra codar pra daí escrever o roteiro, gravar, editar. Enfim. Preciso encontrar problemas que não sejam tão grandes 🙃.
@luispires9702
@luispires9702 4 года назад
@@Filhodanuvem verdade, não levei em conta esses "parâmetros", o mundo não é um caramelo kkkk.
@rafaelcarvalho2918
@rafaelcarvalho2918 2 года назад
Parabéns. Seria legal disponibilizar uma parte desse arquivo de log para podermos tentar fazer.
@Filhodanuvem
@Filhodanuvem 2 года назад
Valeu pela sugestão, vou fazer isso da próxima.
@oliverx3600
@oliverx3600 3 года назад
faz um vídeo codando isso 😍
@Filhodanuvem
@Filhodanuvem 3 года назад
Hummm, acho que levaria horas pra codar isso num video ein rsrs mas valeu pelo sugestão, talvez eu possa tentar numa versão reduzida pro futuro 🤔
@paulogustavo3841
@paulogustavo3841 Год назад
O engraçado é tu ter passado o comando "time" e depois sair contando manualmente. É tipo: "eu mesmo vou contar, não confio nisso" hahahahha. Vídeo sensacional
@Filhodanuvem
@Filhodanuvem Год назад
Hahahaahahahahahahahahahahaha acho que eu não confio em software que lida com tempo mesmo rs.
@caioarruda3532
@caioarruda3532 3 года назад
Antes desse vídeo não tinha menor interesse em aprender regex, agora tô vendo como é importante aushaush, o problema do parse eu pensei logo em utilizar um split e nossa senhora, iria ficar bem custoso
@Filhodanuvem
@Filhodanuvem 3 года назад
Regex é lindo haha.
@riemi2009
@riemi2009 2 года назад
Boa tarde meu amigo, tem como disponibilizar o arquivo usado como base para o teste ?
@luismulinari
@luismulinari 4 года назад
Sensacional Claudson! Claudson, só fiquei com uma dúvida. Caso o processo de leitura de linhas do arquivo seja mais rápido que o processo de inserção no banco de dados vamos ter um cenário onde o número de goroutines vai aumentado indefinidamente durante a execução do código. Neste caso, podemos acabar com um número muito grande de goroutines rodando em paralelo (memory leak) e o banco de dados overloaded. O que acha de usar algo como worker pools para limitar o número de workers/goroutines e mitigar este problema? Teria alguma outra sugestão para este caso? Parabéns pelo trabalho sensacional!
@Filhodanuvem
@Filhodanuvem 4 года назад
Muito bom ponto Luis e você tem toda a razão. O número de go routines ali está muito acoplado ao número de chunks então pode crescer indefinidamente e apesar das routines de go serem muito leves, as linhas do log podem sim ficar todas na memória antes mesmo de começar a escrever no banco. Eu acabei focando mais nas goroutines que nas channels, mas uma das formas que vejo pra limitar o número de goroutines é usando buffered channels, basicamente você define uma channel com um número limite, (mas esse número não pode ser o mesmo numero de chunks como eu fiz). Quando a sua channel fica cheia porque já tem muitos items nela, o go bloqueia a execução pra não permitir mais entradas e só volta a correr quando itens começarem a sair da channel, ou seja, quando goroutines começarem a trabalhar e remover o item dela. Esse link aqui tem vários exemplos e explicação das vantagens de buffered channels. link.medium.com/sE2jzXpk26
@otaviowill
@otaviowill 4 года назад
Um dia eu chego nesse nível! Por hora tô sofrendo com coisas básicas. 😂 Parabéns Filho da nuvem, vc é D+
@Filhodanuvem
@Filhodanuvem 4 года назад
A gente cresce junto Otávio 😉. Valeu!
@ValdemirDesigner
@ValdemirDesigner 2 года назад
@@Filhodanuvem por isso admiro vc mano !
@viniciuspereira95
@viniciuspereira95 4 года назад
Como de costume, conteúdo top !!! Ja te falaram que você é parecido com o Djonga ? kkk lembrando que parecido não é igual
@Filhodanuvem
@Filhodanuvem 4 года назад
Valeu Detroit. E já apareceram umas pessoas aqui falando especificamente do djonga haha tô começando a acreditar que pareço.
@meruem6882
@meruem6882 4 года назад
Não consegui entender nada mas mesmo assim achei lindo kkkkkkkkkk! Parabéns pelo trabalho e pelo canal meu amigo!
@Filhodanuvem
@Filhodanuvem 4 года назад
Obrigado por ser honesto(a) meruem. De repente esses vídeos aqui são mais tranquilos pra entender. Desenvolvendo uma calculadora ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-YjfyaaEnjrg.html Teste pratico mais fácil usando go ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-I70UQ2p5OrE.html
@ulissesmelo6508
@ulissesmelo6508 Год назад
Muito boa a sacada de usar regexp!
@Filhodanuvem
@Filhodanuvem Год назад
Valeuu Ulisses.
@ediponascimento9021
@ediponascimento9021 4 года назад
Fala Filho da Nuvem, tudo certo? Não conheço muito de Go, não seria possível converter o long em um json, e depois usar para identificar as linhas que seriam salvas no db?
@Filhodanuvem
@Filhodanuvem 4 года назад
Bom ponto Édipo. Posso estar errado mas o problema é como poderíamos converter o log para um json? ele tava num formato de 1 linha com espaços como no vídeo e eu teria que converter para {ip: X, date: y}. O único modo que vejo pra fazer essa conversão também seria com expressão regular (tem como usar outra técnica de parsing mas é mais complexa). Então como eu não vejo uma fuga da regexp, nem valia a pena converter pra json pra depois fazer o json to struct.
@pablosam1419
@pablosam1419 4 года назад
Em me tire uma duvida seu canal é muito bom eu vou me formar em ADS e vou trabalhar na area um tempo para adquirir xp você acha que depois uma pós em engenharia de software vai destacar no curriculo pois saberei do Hardware e do software? Eu vi em um site que um programador recem formado começa ganhando 3000 mil e com 5 anos de xp o salario é 7000 reais isso é verdade?
@Filhodanuvem
@Filhodanuvem 4 года назад
Fala Pablo. Então... 1. Não entendo porque você falou hardware. ADS se não me engano é análise e desenvolvimento de sistemas e Engenharia de software também foca em software então não tem foco em hardware nesse seu plano. 2. Não existe nenhuma lei que exija empresas a pagar 3k para um iniciante. Eu não sei como o mercado vai estar quando você começar a trabalhar. Existem juniors ganhando 1k e existem juniors ganhando 3k sim, depende do nível de conhecimento e experiência da pessoa. Esses números que você falou são super comuns na nossa área, agora quando que você vai ganhar depende desses fatores, experiência, conhecimento, cidade, etc. Da uma uma olhada nesse video e nos comentários, muita gente, inclusive iniciantes falando seus salários. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-XduwTIHeG7c.html
@GabrielSantos-it4ol
@GabrielSantos-it4ol 4 года назад
Cara tu e fera, quanto tempo demorou para você chegar nesse nível ?
@Filhodanuvem
@Filhodanuvem 4 года назад
Vish mano, do meu primeiro hello world até aqui já tem mais de 10 anos fácil. Entrei na faculdade em 2008 (e já tinha feitos códigos antes) entao da 12+ anos. Mas vamos estudando que não tem tempo ruim, quando a gente menos espera a gente já sabe mais do que acha.
@fachinetti
@fachinetti 3 года назад
Parabens pelo canal! Mto daora! Descobri agora e to acompanhando! Gostaria de fazer uma pergunta: eu estou estudando ainda (html>css>js>agora to no react) e acabei de conseguir a cidadania portuguesa. Imagino que sendo assim, conseguir meu primeiro emprego como programadora jr aqui no Brasil ou em Portugal vai ser a mesma dificuldade né? Ou vc acha q um mercado está super mais aquecido q o outro? Pergunta 2: vi em alguns videos que um senior ganha em media 2 mil euros limpos, mais que isso seria fora da curva. Eu poderia esperar 1000 euros pra esse primeiro emprego? Ou menos? Eu vi seu video sobre salários mas achei mto otimista rs Mto obrigada pela atenção em ler tudo isso desculpa tantas perguntas. Um abraço!
@Filhodanuvem
@Filhodanuvem 3 года назад
Olá Bruna. Valeu pelo suporte. Pergunta 1: bom você tem uma vantagem, que é poder ser contratada e vir no outro dia mesmo. Em termos de mercado aquecido, o do Brasil tende a ser muito mais até pelo tamanho do país, mas também depende de qual região você tá. Eu gosto da ideia de ter primeiras experiências no Brasil, a não ser que sua ideia seja se muda pra cá com ou sem o trabalho. Pergunta 2: que bom que você achou otimista, é melhor você ter um pé atrás com as informações da Internet e ser surpreendia positivamente do que chegar aqui e ver que tudo é diferente (até porque na condição atual do mundo, nada vai se permanecer igual por muito tempo). Eu acho que algo perto de 1000 euros pra um iniciante é a faixa das capitais daqui. Mas de novo, sempre se prepare para o pior, e tudo que acontecer de bom será lucro.
@fachinetti
@fachinetti 3 года назад
@@Filhodanuvem muitíssimo obrigada! :D
@Nicxlive
@Nicxlive 2 года назад
Acabei de chegar no canal. Algumas críticas. 1- parabéns pelo nome passei mal de rir hahahah muito criativo . 2- muito bom o formato do vídeo, me ajudou muito, parabéns cara.
@Filhodanuvem
@Filhodanuvem 2 года назад
Obrigado pelos comentário Nicholas e seja bem vindo :)
@lucasmonteiro4119
@lucasmonteiro4119 3 года назад
Irmão sera que teria como disponibilizar o aquivo de logs? gostaria de estudar REGEX e não sei por onde começar, vlw!
@Filhodanuvem
@Filhodanuvem 3 года назад
Opa, tá na mão, tive que editar um pouco para remover dados da empresa mas dá pra estudar. gist.github.com/filhodanuvem/80a799672f455b8f97c43acba7f0076c Além disso, deixo aqui o melhor conteudo de expressoes regulares, que foi por onde aprendi aurelio.net/regex/
@lucasmonteiro4119
@lucasmonteiro4119 3 года назад
@@Filhodanuvem vc é fera!
@christianpossidonio
@christianpossidonio 2 года назад
Eu tbm estou aprendendo GO e já fazia tempo que uma linguagem não me empolgava.
@Filhodanuvem
@Filhodanuvem 2 года назад
Go é amor. Principalmente depois dos primeiros dias onde tudo parece estranho rs
@eduardolagoeiro1810
@eduardolagoeiro1810 3 года назад
Uma dúvida, na linha 87 do dumper.go ele chamaria o dumper.Dump com chunk vazio se o scanner tivesse scaneando um número de linhas múltiplo do maxChunkSize, correto?
@Filhodanuvem
@Filhodanuvem 3 года назад
Fala mano, desculpa a demora. Acho que não aconteceria isso porque o for é controlado por um scanner.Scan(). Ou seja, se ele perceber que chegou no fim do arquivo, ele nao teria mais uma volta do for para ter um chunk vazio. gist.github.com/filhodanuvem/02aa699654c1cc776cb735a591830ab5#file-dumper-go-L6
@eduardolagoeiro1810
@eduardolagoeiro1810 3 года назад
@@Filhodanuvem entendi, bom conteúdo, abs!
@elizeufreitasmiranda2258
@elizeufreitasmiranda2258 Год назад
onde posso baixar esse codigo fonte estou começando com go e queria ver um projeto assim
@Filhodanuvem
@Filhodanuvem 10 месяцев назад
Vou procurar se ainda tenho esse código, a título de informação estou postando outros desafios em go numa plataforma, depois da uma olha se te interessar www.devgym.com.br/
@arozendojr
@arozendojr 2 года назад
Dúvida, quanto tempo você achou que iria terminar e quanto tempo você realmente usou ?
@Filhodanuvem
@Filhodanuvem 2 года назад
Fala Antônio, não lembro exatamente quanto tempo levei, pelos commits deram 4 dias mas acho que fiquei pelo menos um dia codando sem commit. Eu sempre peço uma semana porque só consigo focar mesmo no fds.
@Marcos-yi2jq
@Marcos-yi2jq 3 года назад
Aí na Europa tem demanda para linguagem go ? Em 2022 vou tirar minha cidadania italiana, quero tentar trabalhar na área de TI ai!
@Filhodanuvem
@Filhodanuvem 3 года назад
Tem bastante vaga sim, principalmente em uk, o maior desafio que vejo das vagas de go é que a maioria são pra quem já é mais senior, mas é um questão de procurar bastante e se jogar nas vagas.
@Marcos-yi2jq
@Marcos-yi2jq 3 года назад
@@Filhodanuvem obrigado por responder
@webertlopescancado7140
@webertlopescancado7140 3 года назад
O miserável é um genio
@WanderDouglasTI
@WanderDouglasTI 3 года назад
onde vc comprou os pelucias do php e golang? rsr
@Filhodanuvem
@Filhodanuvem 3 года назад
Fala mano. O gopher foi nessa loja aqui gopher.golangmarket.com/ Os de php não comprei, foram ganhos em evento, trocas com amigos. Mas se tu buscar por elephpant na net é capaz de encontrar lojas que vendem alguma versão.
@WanderDouglasTI
@WanderDouglasTI 3 года назад
@@Filhodanuvem vlw amigo
@luishpcosta
@luishpcosta 4 года назад
Muito Legal a sua solução para o desafio, trabalho como desenvolvedor Java, mas estou estudando Go. Ainda não me aprofundei em concorrência em Go, mas me lembra um pouco a forma que o Elixir lida com a concorrência. Em meus estudos em Go cheguei a implementar load balancer simples utilizando Channel. Baseado nesse Github muito bacana por sinal github.com/danistefanovic/build-your-own-x/blob/master/README.md
@Filhodanuvem
@Filhodanuvem 4 года назад
Nossa que foda Luis! Voce tem esse código no github? Seria legal mostrar isso num video! Parabéns.
@luishpcosta
@luishpcosta 4 года назад
​@@Filhodanuvem Obrigado, Ainda não o coloquei no github, Mas Fica a indicação do código github de Load Balancer e o link que usei como referência: github.com/kasvith/simplelb/ e kasvith.me/posts/lets-create-a-simple-lb-go/, seria muito interessante ver em um video!
@luishpcosta
@luishpcosta 4 года назад
Opa acabei de subir o código github.com/luishpcosta/loadbalancer. É basicamente uma copia do original haha apenas modularizado do meu jeito. A intenção era apenas compreender cada parte do load balancing construido por Kasvith.
@Filhodanuvem
@Filhodanuvem 4 года назад
Boa Luis, vou dar uma olhada aqui. Valeu por compartilhar.
@caioarruda3532
@caioarruda3532 3 года назад
aprendeu go por onde?
@Filhodanuvem
@Filhodanuvem 3 года назад
Acho que não tem uma resposta certa pra isso. Comecei com o go tour, depois segui conteúdos na net (canal just for func, todos os canais de conferências, podcast), fui a conferência, fiz um curso chamado ultimate go e escrevi código algumas vezes.
@allefgaruda
@allefgaruda Год назад
Caaara se eu vejo uma expressão regular desse tamanho eu já falo que precisa refatorar essa parte do sistema
@Filhodanuvem
@Filhodanuvem Год назад
Aquela parte do sistema que ninguém quer mexer neh? o problema que a alternativa a regex geralmente é criar um parser, que também não é lá algo muito simples de manter.
@diego4896
@diego4896 3 года назад
Tá bom n precisa humilha não.
@Filhodanuvem
@Filhodanuvem 3 года назад
😂😂
@navossoc
@navossoc 4 года назад
Vou ser sincero, eu não vi o vídeo inteiro ainda porque estou meio ocupado agora, mas como eu me interessei, por hora, eu acabei vendo só alguns pedaços... A expressão regular que você montou não está correta, você precisa dar escape nos pontos... `[0-9]+.[0-9]+.[0-9]+.[0-9]+` precisa ser `[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+` As entradas do log eu não vi, então não sei te dizer se está correto ou não, mas provavelmente daria pra montar uma expressão precisa. Até porque existe IPv4, IPv6, IPv4 mapeado em IPv6, loucura total ;) Regex talvez não seja a melhor opção para dar parse nesse log. Acredito que um simples split por espaço entre os tokens resolva, mas pra isso precisa saber qual o formato de quem produz o log pra evitar problemas.
@Filhodanuvem
@Filhodanuvem 4 года назад
Fala Rafael! Boas observações. Sobre o escape, você tá certo, deveria ter colocado. Mas como ponto quer dizer qualquer elemento incluindo o literal ponto ele casa com ipv4 hahaah. Acho que split por espaço não funciona porque existem tokens que contem espaços dentro, depois tu continua 😉.
@navossoc
@navossoc 4 года назад
​@@Filhodanuvem Cara, voltei pra ver o vídeo... Sim, de fato por um simples espaço não daria certo, mas um mix entre espaço e aspas contando as ocorrências, talvez resolveria. Alguns outros detalhes que eu vi no seu código e vou sugerir como melhorias: 1. No parser.Parse você compila a expressão regular a cada chamada, você pode compilar ela apenas na inicialização e reutilizar posteriormente. 2. Pelo que vi, você usou muito append nas slices o que também não é legal, já que muita coisa ali você poderia prever quantos itens você precisaria processar e já reservar a quantidade de itens evitando realocações desnecessarias. 3. Na parte que você monta a string para inserir no SQL, você também montou da maneira mais simples que seria simplesmente concatenando strings, porém existem métodos muito mais eficientes para concatenar string em golang (stringbuilder por ex). São pequenos detalhes que eu notei, mas que com pequenas modificações devem trazer um bom ganho de desempenho. Por acaso esse código está disponível em algum lugar? Gostei do vídeo, muito interessante para quem está iniciando.
@Filhodanuvem
@Filhodanuvem 4 года назад
Primeiramente valeu mesmo mano, faz tempo que eu não recebo um Code review tão bom. Já aprendi mais coisas pra próxima vez 😎. Eu não coloco esse projeto público na net porque tenho um pouco de receio da empresa reclamar (não é difícil algumas chegarem aqui hehe), então eu conseguiria tirar o vídeo do ar e não tem código aberto.
@queropizza7361
@queropizza7361 3 года назад
Olá, tudo bem ? Muito legal e parabens pelo video. Só um ponto que chamou a atenção é no parser dos logs, se você reparar bem os logs tem o formato dos Combined Log Format do Apache que é assim: "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" E poderia ter resolvido talvez com a seguinte regex: ^(?P\S+) \S+ (?P\S+) \[(?P[^\]]+)\] \"(?P[A-Z]+) (?P[^ \"]+)? (?PHTTP/.*)\" (?P[0-9]{3}) (?P[0-9]+|-) \"(?P.*?)\" \"(?P.*?)\"
@Filhodanuvem
@Filhodanuvem 3 года назад
Boa mano, obrigado pela adição, ficou bem mais simples.
@CaravanaCloud
@CaravanaCloud 4 года назад
Você passou na vaga? Cuidado, para não ser trote. Ou seja, tem gente que fala que vai contratar, põe um problema que a empresa não ta conseguindo resolver, somente para alguém resolver, depois ela manda uma mensagem dizendo que você não passou.
@cauabrito445
@cauabrito445 4 года назад
Ai é ruim!!
@Filhodanuvem
@Filhodanuvem 4 года назад
Mano, pior que eu fiquei pensando sobre isso nesse caso. Porque era uma empresa muito pequena e vai ver queriam um jeito de acessar os logs hahaha. Mas honestamente se eles querem fazer isso usando banco de dados, eles tão num caminho bem errado.
@CaravanaCloud
@CaravanaCloud 4 года назад
@@Filhodanuvem O importante é que você tem capacidade o suficiente para resolver. Você fez bem expondo esse problema, se fosse eu , eu ainda colocaria o link da empresa + endereço AHHSHADHASH . Ultimamente eu estou ligando aquele botão , sabe qual é né?
@Filhodanuvem
@Filhodanuvem 4 года назад
Hahahahahahahahaha sei como é, essa semana eu já liguei algumas vezes . É mó desgastante fazer esse tipo de teste. Então pelo menos vira vídeo pro canal 🤣
@otaviowill
@otaviowill 4 года назад
@@Filhodanuvem Ao menos você não perde nada em fazer os testes. Você ganha, o canal ganha e nós mais ainda. hehehehe Agora... Faz um vídeo criando um Bot para o Telegram usando Go, com teclados inline. Cara... Tô aqui nessa vibe, o meu tá quase pronto. Porém apanhando pros inlines, pois não quero usar package de terceiros.
Далее
Your bathroom needs this
00:58
Просмотров 9 млн
Что не так с воздухом в Корее?
00:45
Golang e suas características DIFERENTONAS
20:05
Просмотров 11 тыс.
Quanto faturei (e gastei) no meu primeiro SAAS em 2023
13:00
Backend não é só CRUD (e eu posso provar)
11:54
Просмотров 9 тыс.
Meu TESTE PRÁTICO em Golang para Vaga de Programação
25:37
ОШИБКИ НА ANDROID 2
5:13
Просмотров 33 тыс.
Телефон-електрошокер
0:43
Просмотров 1,3 млн