Flutter TDD Clean Architecture (Arquitetura Limpa): #2 O Domain

Поделиться
HTML-код
  • Опубликовано: 24 окт 2024

Комментарии • 109

  • @ivanjunior3755
    @ivanjunior3755 2 года назад

    Leticia top demais sua explicação de Clean Architecture, olha que já vi muitos vídeos e sempre parece que falta algo para entrar na cabeça, mais com sua explicação, muitas coisas ficaram claras, continue fazendo seus vídeos e ajudando a comunidade, sucesso sempre e parabéns !!!!!

  • @larilimes
    @larilimes Год назад

    Muito obrigada, Letícia. Ta me ajudando demais a entender sobre o assunto, Já tinha visto outros vídeos, mas nenhum foi tão legal quanto a sua abordagem . Parabéns, tu explica muuuito bem!

    • @lebaleiro
      @lebaleiro  4 месяца назад

      obrigada pelo feedback!!

  • @brunoleonardoramosribeiro8451
    @brunoleonardoramosribeiro8451 3 года назад +3

    Belo conteúdo, Letícia. Mas não estou conseguindo rodar o Mocktail. Parece que mudou e a chamada não é essa: when(repository)
    .calls(#getSpaceMediaFromDate)
    .thenAnswer((_) async => Right(tSpaceMedia));
    Eu uso o android Studio e flutter 2.0.6

    • @lebaleiro
      @lebaleiro  3 года назад

      Desculpa a demora!! Conseguiu resolver? No meio da série o mocktail mudou mesmo, no começo desse vídeo eu explico as diferenças: ruclips.net/video/ejFsMhgnQiA/видео.html

  • @euivanw
    @euivanw 3 года назад +2

    Oh meu Deus, que lindeza!! Obrigado por compartilhar com a gente seu conhecimento. Ficou lindo demais!

  • @rafante2
    @rafante2 2 года назад +1

    virei fã! Parabéns +1 inscrito. Sou velho de guerra no flutter, mas ainda não tinha parado pra aprender clean architecture, mas entrou um projeto com clean architecture na minha empresa e eu me vi obrigado a estudar (e eu gosto de estudar, principalmente aplicando em flutter que eu amo). E a sua metodologia é top! Vc é muitoooo didática. Não enrola, vai direto ao ponto, mostra a coisa aplicada com bons padrões, sinceramente só duas palavras pra vc: PARA Béns hehe

    • @lebaleiro
      @lebaleiro  4 месяца назад +1

      obrigada pelo feedback!! 😃

  • @arthurlima923
    @arthurlima923 3 года назад +1

    Muito obrigado! Consegui uma oportunidade com Flutter e tinha dificuldade de implementar TDD, pois só existiam cursos desatualizados (e sem null safety).

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Fico muito feliz em estar ajudando!

  • @adrianor.desousa6491
    @adrianor.desousa6491 Год назад

    Mandou muito bem... Esses conceitos são a nata...

  • @glauciosales6414
    @glauciosales6414 3 года назад +1

    só gostaria de parabeniza-la pelo projeto, espero que de muito certo para ti, ta sendo um trabalho incrível!

  • @_ir4ever_
    @_ir4ever_ Год назад

    Mesmo desatualizada essa é a melhor playlist de clean architecture

    • @lebaleiro
      @lebaleiro  4 месяца назад +1

      obrigada!! 😃 pretendo fazer uma atualizada

    • @_ir4ever_
      @_ir4ever_ 4 месяца назад

      @@lebaleiro opaaaaa, aguardando por isso

  • @eliabekun
    @eliabekun 2 года назад

    Fantástico! Foi a melhor aula que assisti até agora...já estava desistindo...

    • @lebaleiro
      @lebaleiro  4 месяца назад

      obrigada pelo feedback!!

  • @BernardoVerasDev
    @BernardoVerasDev 3 года назад +4

    Top! Que esse assunto venha ganhando forças! 👏🏼

  • @jesianefreire8192
    @jesianefreire8192 3 года назад +1

    Muito bom esse vídeo, meu sonho já pegar o projeto com os testes de unidade já implementados, clean architecture é vida!! Parabéns pelo conteúdo de primeiro!!👏👏👏

    • @lebaleiro
      @lebaleiro  3 года назад

      É lindo trabalhar em projetos com clean arch e testes! É outra vida mesmo! E obrigada pelo apoio 😊

  • @aislanarislou
    @aislanarislou 3 года назад +5

    Adorei demais esta aula Leticia!! Didática, código limpo, pronúncia linda do inglês hehe, e bastante calma pra ensinar!!! Ameiiii!!
    Poderia fazer um curso só disso, Clean Architecture do início ao fim com vários projetos diferentes.
    Eu compraria fácil teu curso!!!
    Agora uma pergunta: onde posso achar literatura pra isso aí (de preferência com Flutter ou Dart) e o porquê coisas como datasource estão dentro da pasta feature ?

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Muito obrigada 😊 Vou pensar com carinho nessa ideia!!

    • @aislanarislou
      @aislanarislou 3 года назад +1

      @@lebaleiro vai ser um marco porque acho que não tem curso nenhum com Flutter abordando Clean Architecture de forma tão completa do início ao fim.

  • @FranWeidt
    @FranWeidt 3 года назад +1

    Arrasou Letícia! Ficou excelente!

  • @lazaroalexandre4188
    @lazaroalexandre4188 Год назад

    Nossa, vey! Você explica tão bem.

  • @EuclidesCatunda
    @EuclidesCatunda 3 года назад +5

    Letícia, você explica muito bem, estou ansioso pra assistir os próximos vídeos! Eu to tentando fixar essa arquitetura na minha cabeça, mas sempre que eu parto pra implementar eu travo em alguma coisa, me perco... Como a maioria dos vídeos são muitos longos, fica difícil "se achar", eu acabo revendo tudo de novo e não saio disso! :( Desabafei! KKKK
    Solta esses vídeos menina, você é maravilhosa! E muito obrigado!!!

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Muito obrigada pelo apoio!! Espero ajudar 😊

    • @brenoverissimo3846
      @brenoverissimo3846 2 года назад

      e aí, euclides. Eu tô nessa mesma fase que tu tava aqui. Passou? hahaha

    • @EuclidesCatunda
      @EuclidesCatunda 2 года назад +1

      @@brenoverissimo3846 Sim Bruno! Vou dar umas dicas, escreva o que você precisa fazer em cada camada.
      Entenda o que a injeção de dependência faz e como funciona (tem relação com a abstração/interface)
      Outra coisa, nos testes, fica atento ao que está sendo testando e observe que o resto dos faz o mock. Isso me confundia também. Precisando, pode me procurar no LinkedIn. Boa sorte aí.

  • @Carminatti001
    @Carminatti001 3 года назад +1

    Muito didático, parabéns!

  • @leonferrer
    @leonferrer 2 года назад

    Que legal obrigado por compartilhar o seu conhecimento!

    • @lebaleiro
      @lebaleiro  4 месяца назад

      obrigada pelo comentário!!

  • @wregisaraujo
    @wregisaraujo 2 года назад +1

    Olá Leticia, reitero meus parabéns a vc pelos vídeos! Gostaria de saber como vc implementaria a Usecase quando os Input constarem em mais de um parâmetro. Agradeço a ajuda!

    • @lebaleiro
      @lebaleiro  2 года назад +1

      Olá Wagner, obrigada! Você pode criar uma classe para o Input com quantos parâmetros forem necessários

  • @thKaliDev
    @thKaliDev 2 года назад

    brigadão pelo conteúdo! betinho aqui

  • @GXGamerReport
    @GXGamerReport 3 года назад +3

    Olá, o video é muito bom, a didática então, melhor ainda.
    Estou tentando escrever meus testes porém parece que o mockito não entende mais o método .calls em when, você poderia me ajudar numa substituição?

    • @diegodesouzacastro
      @diegodesouzacastro 3 года назад

      Boa tarde. Estou com o mesmo problema

    • @GXGamerReport
      @GXGamerReport 3 года назад

      @@diegodesouzacastro consegui arrumar o problema amigo, quando eu chegar em casa te mando o código que usei

    • @diegodesouzacastro
      @diegodesouzacastro 3 года назад

      @@GXGamerReport Blz. Se puder eu agradeço bastante.

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Eu percebi mesmo que mudou! No próximo vídeo (do datasource) já vou trazer a alteração!

    • @igor15975315
      @igor15975315 3 года назад

      @@GXGamerReport solta na roda ai ;-

  • @gustavospaki7988
    @gustavospaki7988 2 года назад

    Muito boa a série, parabéns
    Voltei nesse vídeo pra tentar tirar uma dúvida na estrutura geral
    Se eu tenho uma entidade que seria usada por mais features, como eu faria?
    Por exemplo se eu tenho minha entidade usuário que de algum jeito é usado para pegar a imagem da nasa de outra feature

    • @gustavospaki7988
      @gustavospaki7988 2 года назад +1

      Me toquei do que eu tava errando no pensamento

  • @wregisaraujo
    @wregisaraujo 3 года назад +1

    Oie Leticia... Parabéns pelos seus videos.. ficaria melhor se vc disponibilizasse esse código pra nós estudarmos..

    • @lebaleiro
      @lebaleiro  3 года назад +1

      está aqui: github.com/LeBaleiro/nasa_clean_arch_null_safety
      vou colocar na descrição de todos os vídeos também

  • @horadaaventurahd
    @horadaaventurahd 3 года назад +1

    Bom dia! Ótimo video!

  • @cristianperesdelima7402
    @cristianperesdelima7402 3 года назад +1

    Parabéns pelo conteúdo, consegue explicar de uma forma simples e tranquila de entender, é disso que precisamos. Uma dúvida, porque eu preciso passar um repository por parâmetro para meu usecase na camada domain ?

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Obrigada!! Para conseguir fazer inversão de dependências, você pode fazer em qualquer momento outra implementação para o repositório abstrato, por exemplo, e só passar pelo parâmetro sem mexer na implementação que foi feita antes, no último vídeo da série eu mostro como que faz isso ☺️

    • @cristianperesdelima7402
      @cristianperesdelima7402 3 года назад

      @@lebaleiro obrigado 👏🏼👏🏼❤️❤️

  • @petroniobonavides3530
    @petroniobonavides3530 3 года назад +2

    Eu uso a metodologia Screaming Architecture criada pleo UncleBob. Uso no Spring e No flutterDart

    • @lebaleiro
      @lebaleiro  3 года назад

      Que legal! Você tem algum conteúdo pra me recomendar sobre?

  • @igor10ms
    @igor10ms 2 года назад

    Ótimo vídeo! Uma dúvida:
    Em 20:18 criamos o UseCase mas e quando eu tenho mais de um input? Como faria?
    Exemplo: Tenho um CriarUsuarioUseCase() e para criar o usuário eu preciso de 3 parametros strings (nome, email e senha)... Como faria nesse caso? Oq é mais correto? Criar 1 modelo de request? mas se sim, esse modelo seria uma entidade? Tipo um CreateUserRequestEntity

    • @lebaleiro
      @lebaleiro  4 месяца назад

      desculpa a demora em responder! sim, você pode criar uma entidade para essa request, CreateUserRequestEntity é uma ótima opção, ou SignUpInfoEntity

  • @marioramos9384
    @marioramos9384 2 года назад

    Muito bom esse video. Eu tenho algumas dúvidas. Como fazer quando tenho mais de um feature no meu projecto e um feature precisa de alguma coisa desemvolvida em outro? Por essemplo, o token do feature authentication e nessesario para os otros features que chaman uma api. Obrigado!!

    • @lebaleiro
      @lebaleiro  2 года назад +1

      Obrigada! Normalmente coisas compartilhadas entre módulos eu coloco em um módulo chamado "core" ou eu deixo um módulo acessível ao outro, a nova versão do modular ajuda muito nisso. Meu próximo vídeo será sobre isso, eu estou fazendo um app de pokemon para exemplificar quando há mais de um módulo e a interação entre eles.

  • @oseiasmrib
    @oseiasmrib Год назад

    Aula top! Poderia dar um exemplo do que representa a pasta features?

    • @aironsilva6452
      @aironsilva6452 Год назад +1

      a pasta features no plural é onde cada parte do teu app deverá ser composto, por exemplo você terá a subpasta feature no singular, onde você desenvolveu uma funcionalidade do teu app, e agora você vai desenvolver uma nova feature para teu app, então você terá 2 features separadas dentro do teu app.

    • @lebaleiro
      @lebaleiro  4 месяца назад

      @aironsilva6452 obrigada por esclarecer a dúvida do @oseiasmrib , é isso mesmo que você falou

  • @bdmaxvalera
    @bdmaxvalera 3 года назад +2

    Parabéns Letícia, muito bom 👏🏻👏🏻no final vai disponibilizar o código no GH Pra tirarmos dúvidas de implementação?

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Obrigada!! Vou sim 😉

  • @LucasSantos-ke5mn
    @LucasSantos-ke5mn 3 года назад +2

    Excelente vídeo! Só uma curiosidade, qual é a extensão q vc usa pra ter essa fonte ? 😃

    • @railtonlrodrigues3656
      @railtonlrodrigues3656 3 года назад +1

      Muito bacana mesmo, o tema inteiro! Queria saber qual é o tema de ícones tbm...

    • @lebaleiro
      @lebaleiro  3 года назад +3

      Obrigada! Eu uso a fonte Fira Code e habilito o fontLigatures, aqui tem as instruções pra instalar: github.com/tonsky/FiraCode/wiki/VS-Code-Instructions 😉 Quanto aos ícones eu uso o VSCode Great Icons

    • @LucasSantos-ke5mn
      @LucasSantos-ke5mn 3 года назад

      @@lebaleiro muito obrigado 🙏

  • @programan6391
    @programan6391 3 года назад

    Grato pela explicação

    • @lebaleiro
      @lebaleiro  3 года назад

      Eu que agradeço pela participação nos comentários!

  •  3 года назад +1

    to queimando neurônio para refatorar meu sistema para loteadoras adotando arquitetura limpa... to faznedo módulo a módulo, implementação em PHP 7.4...

    • @lebaleiro
      @lebaleiro  3 года назад

      E aí, deu certo? Me conta!

    •  3 года назад

      @@lebaleiro o sistema é bem grande, tem quase 120 módulos, ainda estou mais ou menos em 10% da refatoração...

  • @gabrielribeiro8619
    @gabrielribeiro8619 2 года назад

    Muito bom o conteúdo, vou assistir toda a playlist.
    Só um detalhe que eu prefiro quando uso o verify no mocktail:
    verify(( ) => repository.myGetMethod(params)).called(1);
    Não sei se tem a ver com a versão do mocktail, pode ser que sim.
    Parabéns pelo conteúdo

    • @lebaleiro
      @lebaleiro  4 месяца назад +1

      obrigada pelo feedback! durante a gravação foi lançada uma versão nova do mocktail, nos vídeos seguintes eu comentei sobre isso e fiz a atualização. pretendo fazer uma playlist nova atualizando tudo do zero.

  • @FDiasBsb
    @FDiasBsb 2 года назад

    Top d+, gostei muito, conteúdo de qualidade!!!! É muito melhor aprender com essa voz do que de um indiano falando o Inglês dele hehehe

    • @lebaleiro
      @lebaleiro  4 месяца назад

      hahahahaha obrigada pelo comentário!

  • @Vinicius26327
    @Vinicius26327 10 месяцев назад

    Estou tendo problemas com essa função when() do minuto 43:18 não existe esse método .calls()
    Alguém pode me ajudar pf ? valeuuu!!

    • @lebaleiro
      @lebaleiro  4 месяца назад

      desculpa a demora em responder! Conseguiu resolver? No meio da série o mocktail mudou, no começo desse vídeo eu explico as diferenças: ruclips.net/video/ejFsMhgnQiA/видео.html

  • @PubDev
    @PubDev 3 года назад +2

    Muito bom o vídeo! esta de parabéns :D

  • @petroniobonavides3530
    @petroniobonavides3530 3 года назад

    Por favor, use o getx ou mobx, para gerenciar estado. E fica bastante na DI

    • @lebaleiro
      @lebaleiro  3 года назад

      Eu quero trazer uma novidade que é o Triple, ele casa muito com o clean architecture. Mas mais pra frente posso trazer variações, até mesmo em questão de injeção de dependências posso mostrar o GetIt 😉 Obrigada pelas sugestões!

    • @petroniobonavides3530
      @petroniobonavides3530 3 года назад

      @@lebaleiro pq não o getx?

    • @lebaleiro
      @lebaleiro  3 года назад +3

      @@petroniobonavides3530 acho que já tem bastante conteúdo sobre Getx na internet, quero trazer umas novidades

  • @GustavoSilva-us8xp
    @GustavoSilva-us8xp 3 года назад

    Belo vídeo, mais um inscrito! Uma dúvida, você disponibiliza esse código fonte em algum momento?

    • @lebaleiro
      @lebaleiro  3 года назад

      Obrigada! Seja muito bem-vindo ao canal!! Aqui está: github.com/LeBaleiro/nasa_clean_arch_null_safety

  • @danilovalim9400
    @danilovalim9400 3 года назад

    Adorei, muito bem feito, explicação de forma que qualquer pessoa, independente de seu nível de conhecimento, consiga entender. Pode até fazer um curso pago que eu compro com certeza. Parabéns pela iniciativa, ansioso pelos próximos vídeos. Já tem previsão de quando sai? 😊

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Muitíssimo obrigada! Saiu hoje o terceiro! ruclips.net/video/5NEqLt4Ln6k/видео.html 😊

  • @petroniobonavides3530
    @petroniobonavides3530 3 года назад +1

    Vc sempre usa o firebase as backend, ou vc TB programa seus backends?

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Eu to mais acostumada com o Firebase e Hasura mesmo ou então eu consumo APIs que a equipe do backend faz. Não tenho muito conhecimento de backend ainda, mas quero me aprofundar no Shelf com Dart logo 😊

    • @aislanarislou
      @aislanarislou 3 года назад

      @@lebaleiro ahhh e se for pro Back, clean architecture neles hahaha!

  • @brunoneuman6153
    @brunoneuman6153 3 года назад

    Parabéns pelos vídeos, qualidade excelente! Tenho uma dúvida quando temos um método "Save" por exemplo. Nele não esperamos retorno, então podemos escrever um teste desta forma?
    void main() {
    // Global Definitions
    //-----Main Objects
    late SaveDocumentUseCase usecase;
    late IDocumentRepository repository;
    //-----Arguments
    late DocumentEntity tArgument;
    //-----Either Return
    late Right tRightReturn;
    late Left tLeftReturn;
    // SetUp Test
    setUp(() {
    //-----Objects Initialization
    repository = DocumentRepositoryMock();
    usecase = SaveDocumentUseCase(repository);
    tArgument = tDocument;
    tRightReturn = Right(Void()); // tRightReturn);
    //-----Act
    final result = await usecase.exec(tArgument);
    //-----Assert
    expect(result, tRightReturn);
    verify(() => repository.save(tArgument)).called(1);
    },
    );
    }

    • @lebaleiro
      @lebaleiro  3 года назад +1

      Obrigada pelo apoio!! Eu costumo criar uma entidade para responder com sucesso (SuccessEntity), tem casos que as pessoas retornam um booleano pra simbolizar o sucesso, ao invés de usar void.

  • @FilipePlucenio
    @FilipePlucenio 3 года назад +1

    Muito bom!

  • @MichaelDev
    @MichaelDev 3 года назад +1

    aee sim!!!

  • @ejrgeekio
    @ejrgeekio 3 года назад +1

    Muito bom

  • @petroniobonavides3530
    @petroniobonavides3530 3 года назад +1

    Ganho o inscrito

  • @madhurshanan7548
    @madhurshanan7548 3 года назад +1

    please make videos in English

    • @lebaleiro
      @lebaleiro  3 года назад +1

      I'll make soon 😊