Para de resolver problema imaginario! (Scaling Software)

Поділитися
Вставка
  • Опубліковано 23 гру 2024

КОМЕНТАРІ • 177

  • @danjovis
    @danjovis 5 місяців тому +85

    1:05 "Isso é escalável cara?" (são apenas 10 itens na lista) é desse jeito mesmo kkkkkkkkkkkkkkkkkkkk.

    • @matheuscode4163
      @matheuscode4163 5 місяців тому

      KKKKKKKKKKKKKKKKKKKKKKKKKKKKK

    • @JoaoSilva-in8ht
      @JoaoSilva-in8ht 5 місяців тому

      Fico puto kkkkkkkkkkkkkkkkkkkkkkkkkkkk

    • @fooxmotoroad
      @fooxmotoroad 5 місяців тому

      aham, só 10 itens e 12.000 pedidos só pela manhã! kkkkkk ( minha realidade.... quem dera se tivessem dado valor nisso antes)

    • @davidm.1263
      @davidm.1263 5 місяців тому

      10 itens na lista agora, mas e se esses 10 virarem 100000?

  • @elvispalace
    @elvispalace 5 місяців тому +40

    migrando java pro go com 10 users mensais

    • @leonamcruz9694
      @leonamcruz9694 5 місяців тому

      Kkkkkk ai é foda

    • @lxttledemonking
      @lxttledemonking 5 місяців тому +1

      se tiver 1 dev cansado do bloat na equipe já vale a pena kkkkkkkkkkk

    • @shablauzin2052
      @shablauzin2052 4 місяці тому

      KKKKKKKKKKKKK pqp, vai precisar de uma mensageria pra isso aí

  • @ytalodev
    @ytalodev 5 місяців тому +1

    Muito bom seu conteudo Lucas, estou nessa fase de desacomplamento, adicionando interfaces, para no futuro facilitar troca de banco de dados, de ferramenta de cache, de meios de pagamento... Tudo isso é muito top. Muito bom ver, como você que trabalha em uma grande empresa faz. 👏👏👏

  • @FelipeLimaSilva
    @FelipeLimaSilva 5 місяців тому +2

    Discutimos as mesmas coisas durante uma década , nessa area o que mais existe é conflito de egos, o importante e simplificar ao máximo para construir algo realmente de grande valor. Linguagem é só um detalhe o importante e o modelo e design.

    • @nathanpma
      @nathanpma 4 місяці тому +1

      Falou tudo, brigas de egos bestas que no final, não leva a nada.

  • @edimachzin
    @edimachzin 5 місяців тому +10

    Cara sobre i18n, eu recentemente tive que fazer isso em um projeto relativamente grande que não tinha nada implementado. Foi um desafio muito legal e consegui concluir em duas semanas, sozinho. Basicamente fazendo isso que você falou, implementando um framework do zero e substituindo todas as strings.
    Eu sinceramente acho que acabou compensando mais ter feito isso em uma tarefa só, "no final", ou seja, custou menos estas duas semanas do que se os devs tivessem que ter lidado com isso desde o início, feature por feature. Mas é o que vamos ter que fazer a partir de agora, é chatinho, mas acostuma.
    Então nesse caso eu diria que é melhor fazer tudo em uma vez só, quando for preciso. Ou no máximo vai dar na mesma fazer desde o início. Enfim, meu caso é só um exemplo, não sei se aplica a toda situação.
    Se alguém tiver curiosidade, basicamente fiz isso em um projeto usando react-i18next junto com i18n padrão do Ruby on Rails. Usei Crowdin para pré-traduzir os YML e JSON em EN, PT e ES. Ficou muito bom com esta stack, diga-se de passagem haha.

    • @cassiosouza10
      @cassiosouza10 5 місяців тому

      Sim, esse comentário dele da internalização e das filas foi infeliz, também já tive que internacionalizar um app e demorei poucas semanas e foi bem tranquilo. Quanto as filas, trabalho em uma empresa que tem um app que tem 150 mil usuários pagante e não temos fila de processamento também. Ótimo canal em geral, mas esse vídeo veio com péssimos exemplos.

    • @psychotruta
      @psychotruta 5 місяців тому

      i18n é show, usei ele com react e usei as strings naquele formato t('string'). O resto (tradução e inserção nos arquivos de tradução) foi tudo feito com um bot em python que foi atrás de todas as strings do i18n do projeto, traduziu automaticamente com uma api externa e inseriu nos arquivos.

  • @imvictorsoares
    @imvictorsoares 5 місяців тому +116

    Eu não sou programador, tô bem no comecinho. E assisto todos os seus vídeos mesmo sem entender porra nenhuma KKKKk

    • @evandromsf.9426
      @evandromsf.9426 5 місяців тому +23

      Continue Mano!
      Eu comecei igual você. Hoje em dia já entendo metade e até completo os raciocínios.
      Foi muito bom passar por isso!

    • @alandlondesousa1098
      @alandlondesousa1098 5 місяців тому +5

      Eu também tô do mesmo jeito mano kkkk

    • @matheuscamargo2457
      @matheuscamargo2457 5 місяців тому +3

      Eu também kkkkkk

    • @Eiro_FEC
      @Eiro_FEC 5 місяців тому +11

      Acho que vcs estão apaixonados no mensageiro, não na mensagem 😂

    • @awaxdem2013
      @awaxdem2013 5 місяців тому

      Tu tá trabalhando como programador?

  • @Robertskter
    @Robertskter 5 місяців тому +12

    Cache, indexes, dB alta disponibilidade, não aguentou 4k rpm. No fim das contas as queries estavam executando no servidor redundante que tem alta latência e metade dos recursos esperados, tudo pq a equipe que mantém o serviço de banco relacional inverteu a poha das configs.
    Até achar esse BO fui questionado de todos os lados sobre o design de código que sempre esteve OK

    • @paulopma
      @paulopma 5 місяців тому +4

      4k rpm. Tá falando de motor de carro?

    • @brun0ventura
      @brun0ventura 5 місяців тому +2

      @@paulopma requests per minute

  • @artu_almeida
    @artu_almeida 4 місяці тому +6

    Quando alguém te perguntar: "Mas isso é escalável?", responda com outra pergunta: "Precisa ser?"

  • @DanielPitico
    @DanielPitico 5 місяців тому

    14:52 rapaz o que eu mais vejo aqui no projeto é a lógica toda na controller, fazendo consulta direta no banco ou salvando as alterações, service só pra chamar outra API, repository não existe, valores como "passwordKey" pra poder fazer tal requisição sendo comparada com string hardcode. Quando eu ousei mover o código da controller pra service porque precisava de 2 controllers acessando ele quase levei uma lapada na daily kkkkk

  • @sieghhart573
    @sieghhart573 4 місяці тому +2

    Olá Lucas e pessoal, eu sou iniciante e fiquei em duvida no minuto 14:50. Eu desenvolvi um sistema CRUD por exemplo em Spring, essa API do CRUD não deve estar no mesmo projeto que o banco está modelado? Devem ser projetos diferentes se comunicando?

    • @LucasMontano
      @LucasMontano  4 місяці тому +1

      pode estar no mesmo projeto, tu pode ter um “monorepo”

    • @sieghhart573
      @sieghhart573 4 місяці тому

      @@LucasMontano Muito obrigado

  • @vilmarfilho5694
    @vilmarfilho5694 2 місяці тому +1

    50% Conteúdo
    50% Inter... Internalia... Internacionalização
    Perfeitamente Balanceado

  • @OMarketingCube
    @OMarketingCube 5 місяців тому +39

    Sabe aquela pessoa que depois que aprende a usar Photoshop quer colocar todos os efeitos em tudo?
    A versão Dev disso são problemas de escala imaginários!

  • @KlethonioFerreira
    @KlethonioFerreira 5 місяців тому +1

    Pra mim hoje tudo tem que ser escalável, principalmente se você já tem experiência naquilo. Já planejei escalabilidade que parecia desnecessário e agilizou novas implementações para menos de 20% do tempo 2 anos depois, otherwise tudo teria que ser refeito, portanto mais que o dobro do tempo da primeira implementação. Hoje em dia boilerplate é mínimo. (Agora refactor é outra questão)

  • @ivensauro
    @ivensauro 5 місяців тому

    Aprendi mais nesse video que em 6 anos de trabalho, coisas que fui aprendendo e pegando aos poucos, como i18n logo de começo, log, abstrair servicos de terceiros/cloud

  • @mateusbernardi2352
    @mateusbernardi2352 5 місяців тому +3

    No meio da pandemia trabalhei em alguns projetos pra uma loja loja de roupa bem conhecida, daquelas que você encontra em qualquer shopping, essa preocupação era constante, mesmo tendo uma base de meia dúzia de usuários. Microserviço pra todo lado, serviço de mensageria, várias instâncias de CosmoDB, porque na visão de algum "arquiteto" fazer join ou separar em várias queries deixava o sistema lento. Algumas semanas atrás tentei acessar, todos já foram removidos, só serviu pra jogar dinheiro fora.

  • @mutv70
    @mutv70 5 місяців тому

    O que eu costumo fazer é desenvolver aquela solução, já pensando numa possível escala, mas espero os usuários utilizar antes pra entender a necessidade.
    Quando é algo que já imagino que vai ter bastante acesso aí n tem muita mistério, é teste de carga e otimização.
    Mas geralmente é uma paginação ali, um cachezinho aqui.

  • @ronansoares3287
    @ronansoares3287 5 місяців тому

    Conteúdo valioso! Vlws pelas dicas👏🏻

  • @shablauzin2052
    @shablauzin2052 4 місяці тому +2

    Cara, é muito real oq ele fala nos vídeos KKKKKKKK Sou estagiário e a maioria que vejo acontece. "Isso é escalável?????" KKKKKKKKKKKKK

  • @felippealencar
    @felippealencar 4 місяці тому

    To exatamente ajudando na "internacionalização" de um projeto, passando as strings pra chamada de localization

  • @veecks
    @veecks 5 місяців тому +3

    No ponto. 75% das vezes que programo algo eu esqueço que eu quero grana e não a obra-prima da engenharia de software

  • @rstecnology
    @rstecnology 5 місяців тому

    Caraca que vídeo massa, amanhã mesmo vou gerar cards para os devs do time para poder avaliar se nossas aplicações são escaláveis !

  • @Lucas-rz9kk
    @Lucas-rz9kk 4 місяці тому +1

    “Inter. na… inter…inter… internacioliza. nação. inter… interna… internacionalização“ 😂😂😂

  • @rjaskonis
    @rjaskonis 5 місяців тому +2

    Tem os níveis: jr, pleno, senior e o cara do comercial/marketing com habilidades em TI. O último se preocupa em resolver o problema do cliente, o restante fica sentindo tesão em escovar bits e new stacks que resolvem algo que as pessoas não se importam realmente a menos que afete a vida delas, e se afetar, não vão ligar como você fez pra resolver hahah

  • @dami-i
    @dami-i 5 місяців тому +4

    Lá na firma a gente usa o termo "expansível" pra se referir a inclusão de features e "escalável" para se referir ao aumento no número de usuários.

  • @rrsouzaf
    @rrsouzaf 5 місяців тому

    cara eu amei esse vídeo!!!! 👍👍👍

  • @neverf8421
    @neverf8421 5 місяців тому +10

    Meu tech lead implicou comigo porque eu fiz um if ao inverso do que ele pensou kkkkkkkkkk
    Ele é gente boa, no final consegui convencer ele que dava na mesma.

    • @Mestre_tainha
      @Mestre_tainha 5 місяців тому

      Que isso, sou tech lead e não ligo pra essas perfumarias.

    • @LuisFernandoGaido
      @LuisFernandoGaido 5 місяців тому +1

      Existem brigas boas e brigas inúteis. Essa certamente é inútil.

  • @SmokeGearStore
    @SmokeGearStore 5 місяців тому +4

    Tem que cuidar só pra não deixar pra "depois" e se deparar com a necessidade de refatorar um elefante gigantesco porque não se preocupou e fez "evolutivo".

    • @tvdasala2413
      @tvdasala2413 5 місяців тому +1

      Empresa que não tem esse dinheiro sempre deixará para depois ou para ultimar hora. É sempre assim, não tem jeito.

  • @FelipeBarros1008
    @FelipeBarros1008 5 місяців тому +8

    A primeira parte do vídeo eu chamo de adolescência do programador, quando os hormónios estão a flor da pele e o programador quer sair pimbando tudo… mas acaba fazendo mais do que precisa e passando vergonha…

  • @ruptura7305
    @ruptura7305 5 місяців тому

    Eu não sou programador e a minha área de atuação é T.I mas tudo que eu aprendo aqui me ajuda de forma absurda. 😂

  • @victorkinoshita9575
    @victorkinoshita9575 4 місяці тому

    Em tecnologia, existe um mercado de produtos, consultorias e conhecimento. Como hoje tudo é mercadoria, estamos imersos num espaço onde tem um monte de feirante gritando para te vender alguma coisa. Quanto maior a empresa, maior será a banca e maior será o recurso gasto para chamar sua atenção. E digo isso não de forma pejorativa. Conforme o tempo vai passando (e quebrando muito a cara) vc vai pegando a malandragem e entendendo se estão tentando te vender um vaca leiteira quando vc apenas procura um peixe.
    Sobre os microserviços... +- 10 anos atrás um mercado disso começou a surgir (muito impulsionado pelas bigtechs) e empresas viram uma oportunidade de lucrar em cima disso. Muita gente adotou - grande parte quebrou a cara, inclusive eu - e eles encheram o bolso de dinheiro. Algumas coisas legais surgiram, como o docker e orquestradores de serviços, mas muito chorume escorreu.

  • @edimachzin
    @edimachzin 5 місяців тому +2

    Eu tenho a impressão que microsserviços tem se tornado cada mais fácil de implementar e que pode até virar um padrão da indústria. Mas eu teria muito cuidado mesmo sobre a adoção em certos projetos. Mas até acho viável adotar desde o início, mesmo em projetos pequenos. Certamente requer um bom nível de maturidade dos envolvidos. Mas isso vale para tudo, tem gente que até hoje não sabe nem usar direito um monolito baseado em MVC básico.

    • @leassisbr
      @leassisbr 4 місяці тому

      nem ferrando que é mais facil de um monolitico. Nem ferrando.
      só ter que ficar sincronizando dados entre varias aplicacoes, ser eventualmente consistente, nao ter ponto unico de falhav ja te faz ser MUITO mais complexo.
      Agora que for pra implementar cagado, com um monte de aplicacoes apontando para o mesmo banco de dados
      Eu nao penso duas vezes em fazer em monolitico se eu o projeto é pequeno.

    • @edimachzin
      @edimachzin 4 місяці тому

      Colega eu não disse que é mais fácil. Aliás, eu não afirmei absolutamente nada na direção do que está falando, até concordo contigo. Abraço

    • @leassisbr
      @leassisbr 4 місяці тому

      @@edimachzin ué... Seu comentário começa dizendo que está se tornando mais fácil implementar.
      Talvez mais fácil no sentido de comparar com 10 anos atrás, e não comparado com monolítico como deu a entender. Aí sim, faz sentido

  • @paulorestaino3208
    @paulorestaino3208 5 місяців тому

    Bom dia lucas e para a comunidade, comecei a assistir recentemente o seu canal e tem sido bem proveitoso e benefíco para ampliar o meu gama de pensamento em relação ao mercado de tech. teriam alguma indicação de algum criador de conteúdo voltado para IA/ML? gostaria que o mesmo fosse similar ao Lucas para assistir os vídeos

  • @danielwicki248
    @danielwicki248 5 місяців тому +6

    E se eu receber 10 mil acessos por segundos, e se eu vender para china e japão, e se o mundo entrar em colapso e o pagamento agora é somente via graveto de cedro, e se....
    enquanto isso o filho do zinho fez o crud básico e vendeu pro zé da padaria e você está com seu projeto perfeito só dando prejuízo por nunca sair do papel.
    saber dosar o que o cliente precisa e pode pagar é muito mais importante do que produzir uma ferrari e o cliente só consegue pagar um fusca, ambos saem no prejuízo!

  • @caiomelo756
    @caiomelo756 5 місяців тому +4

    Eu fico me perguntando como que alguém vai aprender esses conceitos mais "avançados" sem aplicar eles em algum lugar, é obvio que ao se pensar num produto real o arquiteto vai ter que considerar uma gama gigantesca de informações pra deixar o produto factível, e que caso ele pense em problemas que ele ainda não tem vai acabar causando o over engineering. O que me preocupa é como alguém se torna capaz de resolver um problema de escala sem ter encarado um problema do tipo antes? As vezes criar um side project inchado pra tentar resolver os problemas nele é uma boa saída.

  • @ricardonacif5426
    @ricardonacif5426 5 місяців тому

    Internacionalização eh sempre early optimization. Quantos % dos negócios de vcs internacionalizaram?

  • @ChristianMoryah
    @ChristianMoryah 5 місяців тому

    "depende", a palavra mais potencialmente pretenciosa dos engenheiros de SW

  • @jhony_tech
    @jhony_tech 5 місяців тому

    essa semana tive uma reunião com um time Dev terceiro, 1 mês da última reunião, na última reunião tinha passado o que era pra ser feito, chegou no dia da reunião não só não tinham feito nada do que falei como chegaram com um diagrama do banco remodelado, apenas um detalhe, o projeto deles era um front específico 😂

  • @brendonberzins
    @brendonberzins 5 місяців тому +21

    O maior problema é quando o dev tenta explicar para o cliente que a aplicação dele seria melhor se fosse escalável 😂
    E o cliente no final das contas só tá ligando para "Tá funcionando? Então tanto faz"

    • @saitamablz1512
      @saitamablz1512 5 місяців тому +2

      deixei e usar muitos aplicativos por causa de travamento e bugs

    • @felipecarvalho5647
      @felipecarvalho5647 5 місяців тому +1

      ​@@saitamablz1512mas travamentos e bugs é diferente de ser ser escalável, pode ser que não seja seja escalável mas ser rápido e sem bugs

    • @hebertando
      @hebertando 5 місяців тому

      ​@@saitamablz1512diz um exemplo

  • @deyllonramos4855
    @deyllonramos4855 5 місяців тому +3

    Sobre a parte de fila de processamento oque seria isso exatamente? Então se meu get ou post ir direto na minha base e fazer a consulta ou inser ta errado?

    • @renejunior661
      @renejunior661 5 місяців тому +2

      O ideal pro cenário que eu imagino que você está pensando é ter um load balancer intermediando essas requests. então teu post ia bater primeiro no load balancer e então no serviço que se comunicaria com o database, dessa forma cessando o problema q o lucas mencionou.

    • @deyllonramos4855
      @deyllonramos4855 5 місяців тому

      @@renejunior661 a po entendi, valeu

    • @edsonmartinelli
      @edsonmartinelli 5 місяців тому +3

      Não está errado, você pode continuar inserindo e consultando diretamente da rota sem problemas, mas ,como foi dito, isso não é escalável. O uso de uma fila de processamento vem pra suprir algumas necessidades, como diminuição do tempo de resposta para o usuário. Um banco não pode abrir infinitas conexões simultâneas, isso ocorre pq é muito custoso manter a consistência dos dados ( evitando condições de corrida, verificando constraints, etc), logo apenas um pequeno número de conexões são feitas ao banco por vez, onde, em muitos casos, se utiliza pools de conexão já que abrir conexão com o banco também é algo custoso.
      Então o que acontece caso todas as conexões estejam ocupadas no momento da requisição? O usuário terá que esperar até alguma conexão dessa pool de conexões estar livre para que a modificações ocorresse e, enfim, retornasse uma resposta. Esse processo pode ser bastante demorado dependendo da quantidade de requisições feitas simultaneamente. É nesse caso que as filas entram, elas guardam as informações que causarão modificações no banco e , por, terem limite de conexão, devolvem rapidamente uma resposta ao usuário. Posteriormente, quando estiver com conexões livres, o banco pode utilizar essa informações para realmente alterar seu estado.
      Acho que vc já deve imaginar que isso não se aplica a todo caso, já que existem situações onde é necessário uma resposta imediata por parte do banco (criação de uma conta, por exemplo). Apesar disso, em modificações não urgentes, como mudanças de preferências de perfil, essa estratégia deve funcionar muito bem.

    • @ale_caetano
      @ale_caetano 5 місяців тому

      ​@@edsonmartinelli Olá! Pode explicar um pouquinho melhor essa ideia de abstrair e reproduzir de forma virtual as modificações na Queue? A ideia é manter um state virtual pra ação? Se sim, como esse estado seria gerido e salvo no meio-tempo entre esse processamento e a persistencia final na database?

    • @deyllonramos4855
      @deyllonramos4855 5 місяців тому

      @@edsonmartinelli então o ideal seria usar um kafka ou RabbitMQ pra essas operações de alteração no banco?

  • @LucasMartins-sl7lj
    @LucasMartins-sl7lj 4 місяці тому

    INTERNACIONALIZAÇÃO, ufa

  • @arthurfetzner26
    @arthurfetzner26 5 місяців тому +17

    Para resolver problemas de escala, basta programar em Scala. 😆

  • @joseluizdurigon8893
    @joseluizdurigon8893 5 місяців тому

    É igual design pattern. Difícil mesmo é saber como, onde e quando aplicar

  • @fabiosimedo
    @fabiosimedo 5 місяців тому +10

    Muito engraçado o jeito que você fala "reAAAAct" hahahah muito bom!!!

  • @ArndtGustavo
    @ArndtGustavo 4 місяці тому

    11:06 é só pra "mim" trabalhar

  • @rcarubbi
    @rcarubbi 5 місяців тому +2

    O exemplo da classe boleto do nubank, concordo que nao precisa da factory só pra um banco mas não custa nada fazer um NubankBoleto e uma interface pro dia que mudar de banco.

    • @RaphaelSousa-or1dl
      @RaphaelSousa-or1dl 4 місяці тому

      Cara concordo, mas até que ponto conseguimos criar um boa abstração que será realmente util se não tivermos mt conhecimento do dominio?
      Por exemplo hoje em dia existem boletos que retornam pix junto não só o codigo de barras, será q abstração q criamos anos atrás ainda é útil? Ou vamos ter que refatorar de qualquer modo?
      Venho pensando nisso em extender o máximo o momento da criação da abstração.

  • @jeffxd9380
    @jeffxd9380 5 місяців тому +1

    @LucasMontano pq vc disse que não é mais senior??

    • @jeffxd9380
      @jeffxd9380 5 місяців тому +1

      @@RossoFala o Lucas falou que ele mesmo não é mais sênior. Eu não entendi isso, sacou?

  • @deltaking5116
    @deltaking5116 4 місяці тому

    tu da curso de programaçao ?

  • @AvelinoBego
    @AvelinoBego 5 місяців тому

    Scala escala?

  • @filipester
    @filipester 5 місяців тому

    Nem sou dev mas esse canal tá bem massa

  • @EarthMaluca
    @EarthMaluca 5 місяців тому

    Uma duvida de leigo (bota leigo nisso)
    Um micros serviço pode ser compartilhado entre diferentes aplicações, tipo um sistema de gerenciamento de fezes, eu poderia usar na minha própria aplicação, como distribuir esse micro serviço para outra empresa cobrando uma taxa.
    Já o monólito eu somente poderia usar esse serviço na minha própria aplicação pelo fato de ele ta acoplado nela ou pelo menos seria muito complicado de reutilizar ela em outras aplicações.
    Esse meu raciocínio ta errado?

  • @zFlarrowGamerz
    @zFlarrowGamerz 5 місяців тому

    o que seria internacionalização?

  • @Urukpensador
    @Urukpensador 5 місяців тому

    Isso tem uma escada?

  • @guilherme-guedes
    @guilherme-guedes 5 місяців тому

    Como poderia dizer o mano Deyvin, em algum momento "escalabilidade" foi "pirâmide". Lembro de uma época em que pra qualquer MVP e afins essa perguntava era levantada.

  • @seveng0th
    @seveng0th 5 місяців тому

    Muitas coisas se resolvem tendo noção de big o e assíncronia.

  • @kawninjaful
    @kawninjaful 4 місяці тому

    Divida tecnica e quando vc financia um carro e depois de uma semana e demitido. Essa e a unica divida tecnica que importa.

  • @gleitonfranco1260
    @gleitonfranco1260 4 місяці тому

    Exatamente, tanta coisa mais importante para colocar na aplicação 🤦‍♂

  • @LuisFerrarezi
    @LuisFerrarezi 5 місяців тому +1

    Cara o que mais tem é Dev querendo papagaiar que tem que que usar kubernetes, com configuração para subir até 10 pods no pico pq pode acontecer de ter 100K usuários no mesmo segundo e bla bla bla bla bla, e o aplicativo nem ao menos está lançado. NÃO TEM ABSOLUTAMENTE NINGUÉM USANDO, então primeiro lança a parada e coloca o monitoramento e vai vendo como anda no dia a dia, a partir do momento que ver que tá começando a dar perdas aí sim tem um problema pra resolver.

  • @vitorsilva-or1dj
    @vitorsilva-or1dj 5 місяців тому

    parecia que o sr estava chapadao nesse video com tantos cortes

  • @youtubeuser98
    @youtubeuser98 5 місяців тому +1

    Nunca ouvi falar de código "escalavel" geralmente śo infra mesmo, acho que performatico é um termo um pouco melhor não?

    • @deyvid322
      @deyvid322 5 місяців тому

      Não necessariamente, porque é como o Lucas Montano mostrou no vídeo, a escalabilidade também depende de outros fatores que não estão relacionados à performance (por exemplo, desacoplamento de dependências e serviços de terceiros, facilidade de internacionalização e de edição do código no futuro).
      A escalabilidade tá bem relacionada a poder crescer não só a base de usuários de um software com facilidade, mas também a poder adicionar novas funcionalidades ou mudar elementos da estrutura sem grandes problemas.

    • @youtubeuser98
      @youtubeuser98 5 місяців тому

      @deyvid322 É mais questão de terminologia mesmo, nunca me referi ou peguei a alguém se referindo a código como escalavel, código limpo, de qualidade, seguro, é o que escuto, escalavél é a solução como um todo, acho que um código legivel é a unica coisa que importa na hora de se adicionar mais código.

  • @RobertoCarlos-hx8wp
    @RobertoCarlos-hx8wp 5 місяців тому

    O Lucas comentou que nunca se conecta o banco de dados diretamente na API, mas durante os anos todos que eu trampei como dev vejo exatamente esse padrão, uma camada de repository conectada diretamente ao db kkkkk Será que eu entendi o "diretamente" errado? De que outra maneira o mercado faz essa conexão?

    • @wesleyinacio4330
      @wesleyinacio4330 4 місяці тому

      Ex: app Android conectado direto no firebase sem uma camada que você possa ter controle(repository)

  • @hurakann
    @hurakann 5 місяців тому

    Push -f pra main e se rodar o teste passou. Ingualzin os caras da crowdstrike kk

  • @rafaellimavieira4596
    @rafaellimavieira4596 5 місяців тому

    passei pela onda do microservices e não fui contaminado rsrs

  • @arthurgabriel-jh2nc
    @arthurgabriel-jh2nc 5 місяців тому

    Monolíto é tão bom de falar, que até o jeito certo 'monólito' parece errado.

  • @MarceloAugustoInfanger
    @MarceloAugustoInfanger 5 місяців тому +6

    eu sofro da sindrome do Overengineering

    • @briansoftware849
      @briansoftware849 5 місяців тому +1

      somos 2

    • @gabrielrissi6583
      @gabrielrissi6583 5 місяців тому

      Acho que é comum de isso acontecer, programadores acabam se empolgando quando aprendem coisas novas, então, acaba sendo meio que 8 ou 80 na hora de desenvolver. Pessoalmente tento aplicar o que aprendo, mas, sem exagerar demais na complexidade, até porque, excesso de recursividade vai fazer com que eu mesmo tenha dificuldade em ler meu código daqui algum tempo, por isso, acho que nessas horas o K.I.S.S. (Keep It Simple, Stupid) é uma boa prática à ser seguida pra mensurar a complexidade.

    • @MarceloAugustoInfanger
      @MarceloAugustoInfanger 5 місяців тому

      @@gabrielrissi6583 a minha solução é fazer documentação , antes de querer fazer codigo , escreve a ideia no papel , depois de um tempo revisa , ai vc vai poder perceber se a ideia é boa ou não

    • @Urukpensador
      @Urukpensador 5 місяців тому

      Somos 3

  • @gdalfovo
    @gdalfovo 5 місяців тому

    Me deu taquicardia ao assistir esse vídeo

  • @lzcoder
    @lzcoder 5 місяців тому

    Aprendi uma palavra nova: internacionalização 😅

  • @code_masters3621
    @code_masters3621 5 місяців тому

    irmão você esta a cara do jimmy neutron.

  • @christianlopesdesouza6871
    @christianlopesdesouza6871 4 місяці тому

    estou justamente nesse momento da vida kkkkk

  • @miguellopes9177
    @miguellopes9177 5 місяців тому +1

    Ctx oto = event.getCtx();
    switch(teste){
    case "a":
    oto.blabla
    case "b":
    oto.blabla
    case "c":
    //não precisa de oto
    }
    Man, isso é escalavel é performático? não é melhor fazer
    switch(teste){
    case "a":
    Ctx oto = event.getCtx();
    case "b":
    Ctx oto = event.getCtx();
    case "c"
    }
    Porque ai voce não precisa criar a variavel oto e pegar o contexto toda vez no switch, porque algumas vezes não precisa tipo no caso c
    man, nao é melhor colocar um final ai no parametro do método porque ele não muda de valor e não é mior a gente usar os null mesmo Optional aqui pode da atraso e não é melhor nós implementamos isso só usando static porque fica instanciando objetos pode demorar o método é chamado 20 vezes por segundo.

  • @Urukpensador
    @Urukpensador 5 місяців тому

    Uai, lucas montando virou staff?

  • @ramiromelo
    @ramiromelo 5 місяців тому

    Amante de Monolito aqui!!

  • @paulocristo1
    @paulocristo1 5 місяців тому

    Top vídeo

  • @MarcosVMSoares
    @MarcosVMSoares 4 місяці тому

    Não o problema eh resolver problema de software com soluções de infra. Quer escalar use uma linguagem q tem um bom suporte pra isso como elixir ^^

  • @AllanBrazute
    @AllanBrazute 5 місяців тому

    Eu tenho um monolito com DB direto na API atendendo de dezenas a centenas de requisições por segundo. Tá errado? Tá. Vou refatorar? Só se for pra implementar IA. Kkkk

    • @Hhhhtosjfhe
      @Hhhhtosjfhe 4 місяці тому

      Depende hahahahah. Na realidade se algumas requisições como alterar um dado da conta não precise ser feita de imediato, da pra jogar pra uma fila de processamento. Depende se tu precisa da resposta imediata.
      A fila de processamento funciona tipo: “to fazendo umas coisas aqui , assim que eu terminar eu resolvo”

  • @AndersonSantanaAtCode
    @AndersonSantanaAtCode 4 місяці тому

    Mano, o vídeo está dando leg quando vc digita "internacionalização". 😆

  • @PedroCarvalho-qf4bw
    @PedroCarvalho-qf4bw 5 місяців тому

    Fico perdidinho nesses videos, queria entender mais do pensamento que está por trás de system design

  • @tiagomello
    @tiagomello 5 місяців тому

    No caso seria “Pare”

  • @andreymonteirohl
    @andreymonteirohl 5 місяців тому +2

    Na minha opinião a arquitetura da solução em si deveria ser algo desde o dia 0. Eu já vi muita conversa: De começo vamos criar um monolito depois conforme necessidade a gente ajusta arquitetura... Ou até mesmo a implementação de uma pdrão de projeto: Vamos implementar esse aqui depois a gente muda caso precise... Ai o cara nunca refatora porque envolve testes regressivos e fere o O do SOLID
    Doce ilusão

  • @FrankLaercio
    @FrankLaercio 5 місяців тому +1

    Clean Architecture e Hexagonal em um projeto CRUD também é um over engineered.

    • @rmonico1
      @rmonico1 5 місяців тому

      Clean architecture e hexagonal são over engineering

    • @gabrielrissi6583
      @gabrielrissi6583 5 місяців тому

      Se o projeto não precisar ser mantido por um longo período de tempo (por exemplo, um MVP) ou um projeto que vai ficar rodando e nunca mais será mexido, ai realmente a Arquitetura Limpa pode ser um exagero. Todavia, mesmo em projetos simples, alguns conceitos da Arquitetura Limpa aliados ao SOLID podem sim gerar um código muito mais fácil de ser mantido ao longo do tempo e de escalar, então, acho que "depende" do objetivo do que está se desenvolvendo. Agora, também não adianta o cara aplicar Arquitetura Limpa em um código extremamente "sujo", por isso, mais do que se preocupar com qual arquitetura seguir, o ideal é primeiro se preocupar em aplicar boas práticas pra tornar o código mais simples e legível.

  • @Diego_oliverira_dev
    @Diego_oliverira_dev 5 місяців тому +1

    porque vc nao faz assim? kkkkkk isso e mt true

  • @WandersonSangreal
    @WandersonSangreal 5 місяців тому

    Ótimo vídeo! #chorume!

  • @ojCezarFerreira
    @ojCezarFerreira 5 місяців тому

    The name? Is Lucas Montano!

  • @hallancosta1302
    @hallancosta1302 3 місяці тому

    Tem pleno que acredita que algo "escalável" é você rodar 20 mil request por segundo em um servidor com 1gb de memoria ram kkkkkkkk

  • @diegoborbadev
    @diegoborbadev 5 місяців тому

    Internalização

  • @fooxmotoroad
    @fooxmotoroad 5 місяців тому

    Tudo depende como o cara fez a aplicação.. kkkkkk tenho certeza que na empresa que trabalho, a 15 anos atras, as pessoas fizeram a pergunta "-isso é escalavel?" e a resposta foi nao.... Resolveram fazer uma tipagem por ID de produto... produtos abaixo do id 1000000, sao produtos normais, acima, produtos de assistencia.... E adivinha!!!! kkkkkk logo logo vai estourar o 100000 e nao sabem o que fazer agora pelo tamannnho da empresa.

  • @victoralmeida1583
    @victoralmeida1583 5 місяців тому

    Interna sim, interna

  • @AmazoniaLegal
    @AmazoniaLegal 5 місяців тому

    Mandou a pio....

  • @FazedorDeCortes
    @FazedorDeCortes 5 місяців тому +1

    Meu código escala, é um projeto scala 😂

  • @marciogo3156
    @marciogo3156 5 місяців тому

    Over o ver

  • @gotas-e-tijolos
    @gotas-e-tijolos 5 місяців тому

    Perfeito para o meu momento de vida 😂😂😂😅😅

  • @Soooooonic
    @Soooooonic 5 місяців тому

    Internacionalização.

  • @denisquintasluiz506
    @denisquintasluiz506 5 місяців тому

    😂😂😂😂😂

  • @marcone1338
    @marcone1338 5 місяців тому

    Internacionalização

  • @zetabot8996
    @zetabot8996 5 місяців тому +1

    top

  • @tutuacs2827
    @tutuacs2827 5 місяців тому

    cade a chloe🐶🐶🐶🐕

  • @guilherme1260
    @guilherme1260 5 місяців тому

    Inter inter inter internacional 🇵🇱 i18n

  • @emersonassis5083
    @emersonassis5083 5 місяців тому

    Nunca mais vou esquecer a palavra "internacionalização" na minha vida.

  • @giuzambot
    @giuzambot 5 місяців тому

    Quando eu fui aprender a fazer edição de vídeo, eu colocava um transição diferente fodona em cada corte kkkk
    Empolgação existe, é um monstro que pode consumir nossa alma, cuidado.
    Hoje sempre faço a pergunta: é realmente necessário ou tem algo de menor complexidade que faz a mesma coisa e vou poder jogar meus games no final de semana?

  • @fooxmotoroad
    @fooxmotoroad 5 місяців тому

    Mas tem um ponto muito importante que é custo! monolito escala, escala, mas é barato escalar? definitivamente não! pense numa maquina que roda um serviço todo e o que pesa é o faturamento. Já tive esta experiencia... uma maquina que custava $1000 / mes, passamos a pagar $40/ mes por separar em microservicos... Não necessáriamente precisa ser microservico, mas um serviço separado por escopo, é essencial pensar já desde o começo, vc nunca tera o custo de $1000 já de paulada. E pense o tempo que os donos se deram conta que tavam tendo prejuizo por conta da escolha que fizeram... Foram milhares de dolares jogados no lixo, pq ignoraram essa pergunta.

    • @LucasMontano
      @LucasMontano  5 місяців тому

      concordo e entendo o ponto, mas muitas vezes ao migrar para micro serviços acabamos otimizando partes do sistema que estavam sendo negligenciadas… por isso fico sempre meio cético, eh difícil e trabalhoso de fato medir e comparar.

  • @EarthMaluca
    @EarthMaluca 5 місяців тому

    o que é um monólito? ele escala?
    ChatGPT:
    Um monólito é um tipo de arquitetura de software onde toda a aplicação é construída como um único, indivisível bloco. Em contraste com arquiteturas mais modernas como microserviços, onde uma aplicação é dividida em várias partes independentes, um monólito é uma única aplicação que pode ser subdividida internamente em diferentes módulos ou componentes, mas que é implantada e executada como uma unidade única.
    Características de um Monólito
    Código Único e Coeso:
    Todo o código-fonte está em um único repositório e é construído e implantado como uma unidade.
    Escalabilidade:
    Escalabilidade Vertical: Em um monólito, a escalabilidade geralmente é feita adicionando mais recursos ao servidor (mais CPU, memória, etc.), o que é conhecido como escalabilidade vertical. Isso pode ser limitado pela capacidade do hardware disponível.
    Escalabilidade Horizontal: Embora seja possível escalar horizontalmente (adicionando mais instâncias da aplicação), isso pode ser mais complexo, pois todas as instâncias precisam compartilhar o mesmo código e, frequentemente, o mesmo banco de dados.
    Desenvolvimento e Implantação:
    Desenvolvimento Unificado: Todos os desenvolvedores trabalham no mesmo código-fonte e fazem modificações que afetam toda a aplicação.
    Implantação Simples: A aplicação é implantada como um único artefato, o que pode simplificar o processo de implantação e gerenciamento.
    Acoplamento:
    Acoplamento Interno: Os diferentes módulos ou componentes dentro do monólito são fortemente acoplados, o que pode tornar a modificação de um módulo impactante para outros módulos.
    Manutenção e Evolução:
    Manutenção Complexa: À medida que a aplicação cresce, a manutenção pode se tornar complexa e mais difícil devido à interdependência dos módulos.
    Evolução e Atualizações: Mudanças em uma parte da aplicação podem exigir que a aplicação inteira seja recompilada e implantada, o que pode aumentar o risco de problemas.
    Escalabilidade de um Monólito
    Escalabilidade Vertical:
    Prós: Mais simples de implementar inicialmente e pode ser suficiente para muitos casos de uso.
    Contras: Limitado pela capacidade do hardware e custos crescentes com a necessidade de servidores mais potentes.
    Escalabilidade Horizontal:
    Prós: Possível adicionar mais servidores para distribuir a carga.
    Contras: Pode ser complexo devido à necessidade de sincronização entre instâncias e gerenciamento de estado.
    Comparação com Microserviços
    Microserviços: Em uma arquitetura de microserviços, a aplicação é dividida em serviços pequenos e independentes que podem ser desenvolvidos, implantados e escalados de forma independente. Isso oferece maior flexibilidade e pode facilitar a escalabilidade horizontal, mas também introduz complexidade adicional no gerenciamento e comunicação entre serviços.
    Resumo
    Monólito: Uma aplicação única e coesa que pode ser escalada verticalmente e horizontalmente, mas pode enfrentar desafios de escalabilidade à medida que cresce.
    Escalabilidade Vertical: Adicionando mais recursos ao servidor.
    Escalabilidade Horizontal: Adicionando mais instâncias, mas pode ser mais complexo devido ao acoplamento e gerenciamento.
    Se você está construindo uma nova aplicação ou considerando a evolução de uma existente, é importante considerar as necessidades específicas de escalabilidade e manutenção ao escolher a arquitetura mais apropriada. Se precisar de mais detalhes ou tiver outras perguntas, estou à disposição!