O que seus testes automatizados dizem? E as entregas frequentes? Como as retrospectivas podem conduzir pra melhoria contínua? Neste episódio falamos sobre feedback, um dos valores da Programação Extrema. Participantes: Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze https://dev.to/marciofrayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: http://www.extremeprogramming.org/values.html https://explainagile.com/agile/xp-extreme-programming/values/feedback/ https://wiki.c2.com/?ExtremeValues https://www.desenvolvimentoagil.com.br/xp/valores/feedbœack Livros https://www.goodreads.com/book/show/67833.Extreme_Programming_Explained https://www.goodreads.com/book/show/67839.Planning_Extreme_Programming https://www.goodreads.com/book/show/9737235-extreme-programming
Como verificar o impacto de uma mudança? Teste em produção? Conhece o teste A/B? Sabe quais são os objetivos de um teste A/B? Participantes: Keyle Barbosa de Menezes keyleb@gmail.com https://www.linkedin.com/in/keylebarbosa/ Pedro Ivo Oliveira da Cruz pedriv@gmail.com eu só trabalho aqui Marco Porcho maporcho@gmail.com https://medium.com/@porcho https://www.linkedin.com/in/marco-porcho Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze https://dev.to/marciofrayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Webinar: A/B Testing 101 by Booking.com Product Manager, Saurav Roy - https://www.youtube.com/watch?v=di2e1QpKYUY Estudo de caso de testes A/B aplicados no app Secret Escapes - https://www.optimizely.com/customers/secret-escapes/ How to Run A/B Tests Successfully by Vice Media Product Manager - https://www.youtube.com/watch?v=NsiDwGntnpA&t Curso de Teste ab da Udacity: https://www.udacity.com/course/ab-testing--ud257 Testes ab x Testes Multivariados: https://www.nngroup.com/videos/a-b-testing-vs-multivariate/
Quanto de coragem é preciso no desenvolvimento de software? Como seu time encara os problemas e medos do dia a dia? Neste episódio falamos de Coragem, um dos valores da Programação Extrema. Participantes: Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: https://www.desenvolvimentoagil.com.br/xp/valores/coragem https://en.wikipedia.org/wiki/Extreme_programming http://www.extremeprogramming.org/rules/collective.html Livros sobre Extreme Programming: Extreme Programming Explained: https://www.goodreads.com/book/show/67833.Extreme_Programming_Explained Planning Extreme Programming: https://www.goodreads.com/book/show/67839.Planning_Extreme_Programming Extreme Programming: https://www.goodreads.com/book/show/9737235-extreme-programming
Conhece Up/Down Casting? Conceitos de Produtor e Consumidor em Generics? Como acontece a hierarquia de tipos com tipos genéricos? Play no p de Podcast. Participantes: Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Generics no Java: https://docs.oracle.com/javase/8/docs/api/java/util/List.html https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html https://docs.oracle.com/javase/tutorial/java/generics/upperBounded.html https://docs.oracle.com/javase/tutorial/java/generics/lowerBounded.html https://docs.oracle.com/javase/tutorial/java/generics/unboundedWildcards.html https://medium.com/omnius/wildcards-in-java-generics-part-1-3-dd2ce5b0e59a https://medium.com/omnius/covariance-in-java-return-types-part-2-3-a5bf1d9c63fa https://medium.com/omnius/wildcards-in-java-generics-part-3-3-8f7f5ebea1a5 Generics no Kotlin: https://medium.com/android-dev-br/generics-e-variance-em-kotlin-in-out-t-ca5ca07c9fc5 Generics no .NET: https://docs.microsoft.com/en-us/dotnet/standard/generics/covariance-and-contravariance https://docs.microsoft.com/pt-br/dotnet/standard/generics/covariance-and-contravariance
Conhece "type parameter"? Utiliza no reuso de código? Em quais cenários? Neste episódio falamos sobre o básico de "Generics". Play no p de Podcast! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Generics no Java: https://docs.oracle.com/javase/tutorial/java/generics/why.html https://www.baeldung.com/java-generics Generics no .NET: https://docs.microsoft.com/en-us/dotnet/standard/generics https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/ Generics no Type Script: https://www.typescriptlang.org/docs/handbook/2/generics.html Generics no Python: https://mypy.readthedocs.io/en/stable/generics.html Duck Typing: https://en.wikipedia.org/wiki/Duck_typing Livro Effective Java (possui um capítulo só sobre Generics): https://www.goodreads.com/book/show/34927404-effective-java Generics na linguagem Dart: https://dart.dev/guides/language/language-tour#generics Type Erasure (Java): https://docs.oracle.com/javase/tutorial/java/generics/genTypes.html
Como publicar alterações no BD? Como sincronizar a alteração do BD com a nova versão da aplicação? Já ouviu falar de "Migrations"? Play no p de Podcast! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Artigo da Amanda Sposito. Migrations in databases with large amount of data: http://blog.plataformatec.com.br/2019/02/migrations-in-databases-with-large-amount-of-data/ Criando íncides no PostgreSQL sem lock: https://www.postgresql.org/docs/9.1/sql-createindex.html Undo no flyway (não recomendado): https://flywaydb.org/documentation/command/undo Definição de Database refactoring: https://en.wikipedia.org/wiki/Database_refactoring Livro Refactoring Databases: https://www.goodreads.com/book/show/161302.Refactoring_Databases Blue-green deployment: https://martinfowler.com/bliki/BlueGreenDeployment.html Evolutionary Database Design, Pramod Sadalage: https://www.martinfowler.com/articles/evodb.html Boas práticas de Migration em Java na Heroku: https://devcenter.heroku.com/articles/running-database-migrations-for-java-apps Ferramentas de migrations: Java: https://flywaydb.org/ https://www.liquibase.org/ .NET: https://docs.microsoft.com/pt-br/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli Ruby on rails: https://edgeguides.rubyonrails.org/active_record_migrations.html
Sua aplicação fica lenta com o passar do tempo? Recebe exceções por falta de memória? Pode ser "Vazamento de Memória". Aperte o play e confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Analisador on-line de logs do GC (identifica possíveis vazamentos): https://gceasy.io/ Visual VM: https://visualvm.github.io/ Try with resources do Java: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html Git lab memory leads issues: https://duckduckgo.com/?t=ffab&q=gitlab+memory+leak&atb=v223-1&ia=web Memory Leak no Rust: https://doc.rust-lang.org/book/ch15-06-reference-cycles.html#reference-cycles-can-leak-memory Microsoft 70% dos bugs de segurança: https://www.zdnet.com/article/microsoft-70-percent-of-all-security-bugs-are-memory-safety-issues Podcast do Marcio sobre Livros: Outros artigos: https://martinfowler.com/articles/qa-in-production.html https://deepsource.io/blog/exponential-cost-of-fixing-bugs https://developers.redhat.com/blog/2014/08/14/find-fix-memory-leaks-java-application https://www.toptal.com/java/hunting-memory-leaks-in-java https://www.baeldung.com/java-heap-dump-capture https://www.dynatrace.com/news/blog/the-top-java-memory-problems-part-1/
Como seus objetos se relacionam? Conhece o "Tell Don't Ask"? E o "Train Wreck"? O que isso tem a ver com encapsulamento? Aperte o play e confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Um dos artigos originais onde o termo é criado (Andy Hunt and Dave Thoma), 2003: http://media.pragprog.com/articles/jan_03_enbug.pdf Definição de Tell don't ask, Martin Fowler: https://www.martinfowler.com/bliki/TellDontAsk.html Vídeo (em inglês) com alguns exemplos: https://www.youtube.com/watch?v=ZJ6bH6Df4K8 Texto do Giovanni Bassi: https://www.lambda3.com.br/2009/07/tell-dont-ask-ou-fique-longe-das-minhas-propriedades/ Exemplo TDA: Statement recebe um printer pra impressão do extrato, e não pega o extrato pra imprimir https://github.com/sandromancuso/Bank-kata/blob/master/src/main/java/org/craftedsw/domain/Statement.java Screencast Sandro Mancuso https://www.youtube.com/watch?v=XHnuMjah6ps https://www.youtube.com/watch?v=gs0rqDdz3ko https://www.youtube.com/watch?v=R9OAt9AOrzI http://www.mockobjects.com/2006/10/tell-dont-ask-and-mock-objects.html?m=1 Artigo sobre TDD que cita TDA https://martinfowler.com/articles/mocksArentStubs.html#DesignStyle Link sobre TrainWreck https://wiki.c2.com/?TrainWreck
Qual a documentação necessária pro sistema? O código fonte é o suficiente? Conhece 'código como documentação'? Vem trocar ideia com a gente. Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms https://linkedin.com/in/juliannoms Links: Artigo do Fowler: https://www.martinfowler.com/bliki/CodeAsDocumentation.html Artigos do Jack Reeves recomendados pelo Fowler: https://www.developerdotstar.com/mag/articles/reeves_design.html https://www.developerdotstar.com/mag/articles/reeves_13yearslater.html https://www.developerdotstar.com/mag/articles/reeves_originalletter.html Spring REST Docs: https://spring.io/projects/spring-restdocs Vídeo da Punk do DevOps falando sobre padrões nas mensagens de commit: https://www.youtube.com/watch?v=vXOVl6TxuOE&t=388s Outra convenção para mensagens de commit: https://www.conventionalcommits.org/pt-br/v1.0.0/ Mais uma convenção para mensagens de commit: https://karma-runner.github.io/6.1/dev/git-commit-msg.html Artigo contrário à nossa ideia, com baixa abstração: https://medium.com/it-dead-inside/self-documenting-code-is-mostly-nonsense-1de5f593810f
Já praticou Programação Pareada? Quais as vantagens desta prática? Existem desvantagens? Neste episódio conversamos sobre Programação em Par com duas convidadas, uma líder de equipe e um desenvolvedor. Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Roberta Monteiro https://linkedin.com/in/roberta-fernandes-monteiro Leonardo Leite https://www.ime.usp.br/~leofl/ https://www.linkedin.com/in/leonardo-alexandre-ferreira-leite-17194322/ https://twitter.com/leonardofl Links: Definição de Pair Programming https://en.wikipedia.org/wiki/Pair_programming Definição de Mob Programming https://en.wikipedia.org/wiki/Mob_programming Ferramenta Code with me: https://www.jetbrains.com/help/idea/code-with-me.html Palestra To pair or not to pair, thoughtworks https://youtu.be/u_eZ-ae2FY8 Palestra da Pia Nilsson: Knowing Me, Knowing You - Growing Teams to Continuously Deliver https://youtu.be/S92vVAEofes Palestra do Woody Zuill: Mob Programming: A Whole Team Approach https://youtu.be/SHOVVnRB4h0 Palestra I've Pair Programmed for 30,000 Hours: Ask Me Anything! https://www.youtube.com/watch?v=RCDfBioUgts FunFunFunction: Pair Programming a Facebook Messenger Bot https://www.youtube.com/watch?v=zFO1cRr5-qY Artigo The Shame of Pair Programming https://diaryofascrummaster.wordpress.com/2013/09/30/the-shame-of-pair-programming/
É difícil de evoluir um monólito legado? E convencer a cliente a esperar por uma migração tecnológica? Conhece o padrão de estrangulamento de software? Vem trocar essa ideia com a gente! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Artigo sobre o padrão https://martinfowler.com/bliki/StranglerFigApplication.html Artigo sobre alguns casos de estrangulamento de software https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/ Artigos sobre aplicação do padrão https://www.michielrook.nl/2016/11/strangler-pattern-practice/ https://medium.com/@manisht/strangle-that-monolith-the-strangler-pattern-40c9eeb94402 https://martinfowler.com/articles/break-monolith-into-microservices.html https://microservices.io/microservices/2020/02/21/devnexus.html Vídeo como usar o padrão para modernizar um monólito https://www.youtube.com/watch?v=ncUvq94J2Kg Artigo sobre Dark Launching https://martinfowler.com/bliki/DarkLaunching.html Apresentação sobre melhorar o monólito antes do microsserviços https://pt.slideshare.net/rponte/arquitetura-java-escalando-alm-do-hype
O que é uma transação? E se alterarmos vários recursos? Two-phase commit é mesmo vilão? Qual alternativa temos? Neste episódio conversamos sobre Transações Distribuídas. Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 https://linkedin.com/in/marcio-frayze Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Artigo My Beef with MSDTC and Two-Phase Commits https://blog.jonathanoliver.com/my-beef-with-msdtc-and-two-phase-commits/ Artigo How I Avoid Two-Phase Commit: https://blog.jonathanoliver.com/how-i-avoid-two-phase-commit/ Acaba falando de saga mas tem uma introdução sobre transações distribuídas (não 2PC) https://medium.com/senior/transa%C3%A7%C3%B5es-distribu%C3%ADdas-em-micro-servi%C3%A7os-70568b378d77 Artigo sobre transações entre microsserviços https://www.baeldung.com/transactions-across-microservices Artigo sobre two-phase commit https://dzone.com/articles/distributed-transactions-with-two-phase-commit-pro Artigo: Sua cafeteria não usa Two-phase commit. https://martinfowler.com/ieeeSoftware/coffeeShop.pdf Wikipedia Open/XA https://en.wikipedia.org/wiki/X/Open_XA Manifesto reativo https://www.reactivemanifesto.org/pt-B
ACID ou BASE, qual escolher? Conhece o teorema CAP? Neste episódio falamos sobre as propriedades destes dois modelos transacionais. Marcio https://twitter.com/marciofrayze Julianno https://twitter.com/juliannoms Links: Artigo "ACID vs. BASE: What are the differences?" https://phoenixnap.com/kb/acid-vs-base Teorema CAP: https://en.wikipedia.org/wiki/CAP_theorem https://dzone.com/articles/understanding-the-cap-theorem https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/ Modelo ACID Atômico – Cada transação é devidamente realizada ou o processo para e o banco de dados volta para o estado antes do início da transação (rollback), garantindo que todos os dados no banco de dados sejam válidos. Consistente – Uma transação processada nunca colocará em risco a integridade estrutural do banco de dados. A transação cria um novo estado válido tanto para a estrutura como para os dados ou reverte para o estado anterior. Isolado – As transações não podem comprometer a integridade de outras transações interagindo com elas enquanto ainda estão em andamento. Durável – Os dados relacionados à transação concluída persistirão mesmo nos casos de quedas de rede ou energia. Se uma transação falhar, ela não afetará os dados manipulados. Modelo BASE Basically Available – Em vez de impor consistência imediata, os bancos de dados BASE garantirão a disponibilidade de dados espalhando-os e replicando-os nos nós do cluster de banco de dados. Soft State – Devido à falta de consistência imediata, os valores dos dados podem ser diferentes dependendo do nó que atender a requisição. Eventually Consistent – O fato de não impor consistência imediata não significa que ela nunca a alcance. No entanto, até que isso ocorra, as leituras de dados ainda são possíveis (mesmo que não reflitam a realidade mais atual). Teorema CAP Eric Brewer provou que em um modelo distribuído de armazenamento você só consegue atender simultaneamente duas de três opções: Consistência (C): Cada leitura recebe a gravação mais recente ou um erro. Disponibilidade (A): Cada solicitação recebe uma resposta de sucesso, sem a garantia de que contém a gravação mais recente. Tolerância à partição (P): O sistema continua a operar apesar de um número arbitrário de mensagens sendo retiradas (ou atrasadas) pela rede entre nós. Na prática você precisará ter suporte a tolerância a partição, então a escolha se resume a: quando ocorre um particionamento na rede, o que você quer priorizar: consistência ou disponibilidade?
O que acontece quando uma integração falha? Circuit Breaker, Timeout, Fallback, Retry fazem parte do seu vocabulário? Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Palestra do Adrian Hornsby sobre padrões de resiliência: https://youtu.be/0KHSr8Fzi5c Artigo "3 key patterns of software resilience": https://buildiumlife.medium.com/3-key-patterns-of-software-resilience-ae01f191a29e Artigo "The Elephant in the Architecture" do Ian Cartwright, Director na ThoughtWorks: https://martinfowler.com/articles/value-architectural-attribute.html Artigo " Resilience design patterns: retry, fallback, timeout, circuit breaker": https://blog.codecentric.de/en/2019/06/resilience-design-patterns-retry-fallback-timeout-circuit-breaker/ Artigo "Let’s talk about Resilience": https://hackernoon.com/lets-talk-about-resilience-97051e14761f Artigo "Fault-Tolerant Clients: Escrevendo Clients e Services Tolerantes a Falhas": https://speakerdeck.com/rponte/fault-tolerant-clients-escrevendo-clients-e-services-tolerantes-a-falhas Circuit Breaker do Spring: https://spring.io/guides/gs/circuit-breaker/ Hipsters sobre black friday https://hipsters.tech/historias-de-black-friday-3-hipsters-228/ Aula Fabio Kon https://www.youtube.com/watch?v=MXA3aI7Er74
Quanto tempo devemos investir no design de um sistema novo? Esse tempo desgasta a relação com o cliente? As decisões são acertadas? Qual arquitetura usar? Microsserviços logo de início? Que tal uma ideia evolutiva? Nesse episódio falamos de Design Simples. Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Artigo sobre Yagni (You Aren't Gonna Need It), do Martin Fowler: https://martinfowler.com/bliki/Yagni.html Artigo sobre Monolith First, do Martin Fowler: https://martinfowler.com/bliki/MonolithFirst.html Livro Extreme Programming Explained: https://www.goodreads.com/book/show/67833.Extreme_Programming_Explained Livro de XP https://www.goodreads.com/book/show/9737235-extreme-programming Artigo Is Design Dead?, do Martin Fowler: https://www.martinfowler.com/articles/designDead.html
O que foi bom em 2020? O que poderia ter sido melhor? Já pensou nas ações e metas para 2021? O p de Podcast fez uma retrospectiva de 2020. Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Livro Fundamentals of Software Architecture: https://www.goodreads.com/book/show/44144493-fundamentals-of-software-architecture Framework Quarkus: https://quarkus.io/ Linguagem de programação Kotlin: https://kotlinlang.org/ Framework Flutter: https://flutter.dev/ Progressive web apps: https://web.dev/progressive-web-apps/ Aula sobre OO e Design Patters para alunos da USP: https://segunda.tech/posts/2020-06-25-oo-design-patterns-serpro/ Livro de introdução à linguagem Haskell: http://learnyouahaskell.com/ Livro sobre Comunicação não violenta: https://www.goodreads.com/book/show/26131898-comunica-o-n-o-violenta?from_search=true&from_srp=true&qid=92JChEyI3L&rank=1 Vídeo sobre Comunicação não violenta: https://www.youtube.com/watch?v=AbQTnHirOnw Curso de introdução à Filosofia: https://www.coursera.org/learn/philosophy
Cansada dos problemas da arquitetura monolítica? Tá difícil aplicar uma arquitetura em microsserviços? Existe um meio termo viável? Conheça a arquitetura baseada em serviços. Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Livro fundamentals of software architecture: https://www.thoughtworks.com/books/fundamentals-of-software-architecture Conversa com autores do livro Fundamentals of Software Architecture: https://www.youtube.com/watch?v=fvSZ7gocaxI Neal Ford falando sobre Building Evolutionary Architectures: https://www.youtube.com/watch?v=-Z_Va9iWo0I SBA como uma alternativa ao Microservices: https://www.infoq.com/news/2016/10/service-based-architecture/ Domain Driven Design https://www.goodreads.com/book/show/179133.Domain_Driven_Design
Já se deparou com um termo com dois significados? Os especialistas de domínio parecem falar grego? O nome das classes e métodos representam o negócio? Conhece a linguagem onipresente? Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: Livro DDD, Eric Evans: https://www.goodreads.com/book/show/179133.Domain_Driven_Design Livro Implementing Domain-Driven Design, Vaughn Vernon: https://www.goodreads.com/book/show/15756865-implementing-domain-driven-design Vídeos do Elemar Junior: https://www.youtube.com/watch?v=HnvmpyUAITs Outros Links: https://medium.com/@felipefreitasbatista/developing-the-ubiquitous-language-1382b720bb8c https://medium.com/ingeniouslysimple/constructing-your-ubiquitous-language-7a57e36e3e82 https://medium.com/@kamil/distilling-business-domains-from-a-ubiquitous-language-b9fc42fe8c28
Já precisou criar Threads? E programação concorrente? Paralelismo? Sabe a diferença? Synchronized: utilizar ou não? No episódio de hoje falamos sobre programação assíncrona. Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: RFC5789 (PATCH): https://tools.ietf.org/html/rfc5789 https://www.goodreads.com/book/show/34927404-effective-java https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise https://docs.oracle.com/javase/8/docs/api/?java/util/concurrent/atomic/package-summary.html http://luizricardo.org/2014/03/concorrencia-e-objetos-thread-safe/ https://www.baeldung.com/java-volatile https://www.baeldung.com/java-asynchronous-programming https://www.baeldung.com/java-completablefuture https://medium.com/javarevisited/java-concurrency-thread-safety-1aac8ae66d2c https://medium.com/@peterlee2068/concurrency-and-parallelism-in-java-f625bc9b0ca4 https://www.goodreads.com/book/show/34927404-effective-java https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/funcoes_assincronas https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/await
Qual a forma correta de utilizar o PATCH? Conhece o JSON-patch? É mesmo tão importante a tal idempotência? Como você versiona suas APIs? Confira! Participantes Marcio Frayze David marcio@segunda.tech https://twitter.com/marciofrayze https://segunda.tech https://masto.donte.com.br/web/accounts/138458 Julianno Martins Silva juliannoms@gmail.com https://twitter.com/juliannoms Links: https://medium.com/gin-and-tonic/understanding-idempotency-in-rest-apis-7a5568f41406 https://medium.com/hashmapinc/rest-good-practices-for-api-design-881439796dc9 https://medium.com/@mwaysolutions/10-best-practices-for-better-restful-api-cbe81b06f291 https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods/OPTIONS3 https://www.baeldung.com/spring-rest-custom-media-type https://tools.ietf.org/html/rfc6902 https://tools.ietf.org/html/rfc5789 https://williamdurand.fr/2014/02/14/please-do-not-patch-like-an-idiot/ Exemplo de como utilizar Patch no Spring: https://www.baeldung.com/spring-rest-json-patch Exemplo de como utilizar no ASP.NET Core: https://docs.microsoft.com/en-us/aspnet/core/web-api/jsonpatch?view=aspnetcore-5.0 RFC 6902 defines a JSON document structure: https://tools.ietf.org/html/rfc6902 Headers http: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers Cross-Origin Resource Sharing (CORS): https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS