Excelente conteúdo professor! Como sugestão, gostaria de deixar uma outra alternativa ao uso de Records e Protocols para modelagem de entidades em Clojure que é muito utilizada pela comunidade (e também na empresa onde trabalho), que é feita através do uso de bibliotecas como Schema, clojure.spec ou Malli. Nessa abordagem, declaramos apenas o "shape" dos dados que representam as entidades dos nossos sistemas, ou seja, seus atributos e os valores aceitos por estes atributos, tratado-os assim apenas como simples "dados", e os "comportamentos" são declarados como funções que operam nestes dados. Seguindo este modelo mais orientado a dados e funcional, o ideal é que toda validação/parsing/coercion desses dados ocorra nas "bordas" do sistema, removendo a necessidade de "type guards" ou coisa semelhante nas camadas mais internas da aplicação que tendem a conter apenas funções puras. Como benefício, a aplicação se torna mais simples, afinal não misturamos dados com comportamentos como acontece em OOP e não precisamos criar ou implementar Protocols para novos Records que nossa aplicação venha a suportar.
@otaviolemos2 жыл бұрын
Opa, falei de schemas no meu vídeo mais recente! Dá uma olhada! Valeu!
@tarciorocha3332 жыл бұрын
Sempre com conteúdos de qualidade, Professor! Parabéns pelo conteúdo incrível.
@otaviolemos2 жыл бұрын
Muito obrigado!
@matematicacomputacaoeafins59862 жыл бұрын
Acompanhando aqui seu conteúdo e achando muito bom, parabéns! Minhas observações (de quem está aprendendo também, mas no caso F#) F#, embora estaticamente tipada, não obriga você a definir os tipos (a menos que o código permita alguma ambiguidade, aí você precisará tipar uma ou outra variável) Eu ia falar do livro do Scott sobre modelagem funcional, mas foi uma das primeiras coisas que você falou :D Por fim, parabéns pelo excelente conteúdo!
2 жыл бұрын
essa característica do f# é muito interessante, inferência de tipo absurdamente poderosa edit: pra quem quiser saber mais sobre, se chama types providers
@farlloncosta50982 жыл бұрын
Professor, talvez você já tenha algum conteúdo no seu canal falando sobre a minha pergunta, mas qual seria o motivo que uma empresa iria preferir adotar o desenvolvimento de um sistema ou serviço dela utilizando uma linguagem funcional e não uma linguagem orientada a objetos? Tenho procurado a algum tempo sobre esta questão e as respostas obtidas ainda não me fazem sentido. Talvez eu ainda tenha que madurecer minha mentalidade, mas se conseguir me explicar com suas palavras ficarei extremamente grato.
@otaviolemos2 жыл бұрын
Difícil falar rapidamente. Tem um vídeo que mostra benefícios concretos da PF. Uma das coisas que mais me convenceram da superioridade foi o ensaio do Paul Graham chamado “Revenge of the Nerds”. Esse aqui ó: www.paulgraham.com/icad.html
@aislanarislou Жыл бұрын
Em se tratando de pardigma funcional e tipagem dinâmica, acho que vc iria gostar bastante de trabalhar com Elixir.
@otaviolemos Жыл бұрын
Certamente!
@CharlesAugustosc2 жыл бұрын
Olá porfessor Otávio! Nos dê notícias do seu curso de TDD.
@arozendojr Жыл бұрын
Dúvida, em relação dos camadas, gateway, cada camada deveria ter seus DTO e @types , e seus DTO e @Types que são atributos das interfaces de comunicação das camadas ?
@geriotaviano11852 жыл бұрын
conteudo muito massa. Vc poderia fazer um video sobre conteudos de programacao funcional, pois acho bem dificil achar materiais bons para estudar o assunto
@otaviolemos2 жыл бұрын
Boa. Fica tranquilo que vai ter muita programação funcional por aqui!
@eded223192 жыл бұрын
Realmente o Rich Hickey tem uma inteligencia superior. Ele consegue tornar simple um assunto altamente complexo.
@otaviolemos2 жыл бұрын
É fera demais.
@matheusm28942 жыл бұрын
Professor Otavio Lemos, como seria a estrutura de uma aplicação, em Clean Architecture, de um Servidor Websocket? Teria um WebSocketController?
@lucasayabe2 жыл бұрын
Essencialmente seria a mesma coisa, mas na camada de adaptadores de interface você não teria um controller web clássico, você ia implementar uma classe que tem os específicos do web sockets ali nessa camada e usar os casos de uso por de baixo dos panos do mesmo jeito
@aristotelesbr2 жыл бұрын
Clojure é lindão, heim?
@otaviolemos2 жыл бұрын
Estou achando também!
@aristotelesbr2 жыл бұрын
@@otaviolemos Se rolar um curso, eu tô na fila. abraço! 😅