035 - Quadros-Negros: Concorrência e Comunicação Desacoplada - The Pragmatic Programmer cover art

035 - Quadros-Negros: Concorrência e Comunicação Desacoplada - The Pragmatic Programmer

035 - Quadros-Negros: Concorrência e Comunicação Desacoplada - The Pragmatic Programmer

Listen for free

View show details

About this listen

🎧Episódio: A Magia dos Quadros-Negros ✨ (Concorrência e Comunicação Desacoplada)Olá, amantes do código e desvendadores de mistérios da programação! 🚀 Sejam bem-vindos a mais um episódio de Entrelinhas do Código!Neste episódio, vamos mergulhar no fascinante Tópico 36 do livro "The Pragmatic Programmer": os Quadros-Negros (Blackboards) [podcast: 37, 38; 1, 7]. Prepare-se para descobrir um conceito que, embora não seja novo, é incrivelmente relevante para a programação moderna [podcast: 37, 42].O Quadro-Negro é essencialmente uma combinação inteligente de um armazenamento de objetos e um broker de publicação/assinatura [podcast: 38; 2, 12, 27]. Pense nele como o mural de recados superinteligente do seu sistema, um local central onde diferentes partes do seu software podem depositar e consumir informações, sem precisar conhecer a existência uma da outra [podcast: 38; 2, 27]. É a mágica da comunicação indireta! 🤫Para entender melhor, o livro usa uma analogia brilhante: imagine uma equipe de detetives tentando resolver um assassinato 🕵️‍♀️ [podcast: 39; 3, 13, 28]. A inspetora chefe inicia o "Quadro-Negro" com a grande pergunta: "H. Dumpty: Acidente ou Assassinato?" [podcast: 39; 3, 13, 28]. Cada detetive, agindo como um agente independente, posta suas descobertas – seja um pedaço de casca de ovo 🥚, um depoimento de testemunha ou uma evidência forense 🔍 [podcast: 40; 4, 13, 28]. O mais importante é que ninguém precisa saber quem está postando o quê; eles confiam que a informação está lá, ativando suas próprias "regras" e contribuindo para a solução do mistério [podcast: 40; 4, 13, 29].Os benefícios são poderosos 💪:• Desacoplamento Espetacular: Componentes não precisam saber da existência uns dos outros, interagindo apenas com o mural. Isso significa menos dor de cabeça na hora de mudar e maior resiliência à mudança [podcast: 39; 6, 20, 29].• Concorrência Simplificada: Adeus, problemas de acesso a memória compartilhada! Quadros-Negros permitem que diferentes partes do código trabalhem "ao mesmo tempo" sem pisar nos calos umas das outras, porque a comunicação é via mensagens, não via estado direto compartilhado [podcast: 43; 7, 12, 30, 31].• Quebra do Acoplamento Temporal: A ordem dos eventos não precisa ser superrígida. Se uma informação chega atrasada, o sistema ainda pode processá-la quando ela aparecer, pois a ação é disparada pela disponibilidade da informação, não pela sua ordem de chegada [podcast: 43; 7, 19, 30]. Isso é ótimo para o "mundo real" imprevisível 🌍.Historicamente, os Quadros-Negros surgiram em aplicações de inteligência artificial como reconhecimento de fala [podcast: 41; 8, 14, 32]. Sistemas como Linda, JavaSpaces e T Spaces foram pioneiros [podcast: 41; 8, 15, 32]. Embora não "decolaram" de imediato, talvez porque o mundo ainda não estivesse pronto para tanta coordenação assíncrona [podcast: 42; 8, 15, 32].Mas o tempo é um senhor sábio! 🕰️ Hoje, eles estão por toda parte, camuflados. Quando você usa microserviços que se comunicam através de sistemas de mensageria como Kafka ou NATS, você está, de certa forma, usando um Quadro-Negro gigante! 🌐 Esses sistemas modernos oferecem persistência e a capacidade de buscar mensagens por padrões, tornando-os ideais para a "dança" de atores (Tópico 35) [podcast: 42; 8, 16, 33].Claro, nem tudo são flores 🌸. Esses sistemas podem ser "mais difíceis de raciocinar" porque as interações são tão indiretas que você não vê o fluxo claro de chamadas de função [podcast: 44; 9, 17, 34]. Além disso, com mais "partes móveis", a "implantação e gerenciamento" podem ser "mais problemáticos"

No reviews yet
In the spirit of reconciliation, Audible acknowledges the Traditional Custodians of country throughout Australia and their connections to land, sea and community. We pay our respect to their elders past and present and extend that respect to all Aboriginal and Torres Strait Islander peoples today.