p de Podcast
By Marcio Frayze David e Julianno Martins Silva
// p de Podcast
var p;
p de PodcastOct 02, 2020
Pattern Matching for instanceof
Pattern Matching no Java? Neste episódio falamos sobre Pattern Matching e como esse recurso foi introduzido no Java.
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:
https://openjdk.java.net/jeps/394
Feedback
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
Teste A/B (e porquê isso importa)
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/
Coragem
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
Generics mais avançado: Invariância, Covariância, Contravariância e Bivariância
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
Generics Básico
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
Migrations
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
Vazamento de memória
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/
Diga, não peça (Tell, don’t ask)
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
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
Código como Documentação
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
Programação em Par
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
Palestra da Pia Nilsson: Knowing Me, Knowing You - Growing Teams to Continuously Deliver
Palestra do Woody Zuill: Mob Programming: A Whole Team Approach
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/
Estrangulamento de Software
É 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
Transações Distribuídas
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
ACID, BASE e o Teorema CAP
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?
Software Resiliente
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:
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":
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":
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
Monólito Primeiro e Design Simples
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:
Retrospectiva 2020
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:
Linguagem de programação Kotlin:
Framework Flutter:
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:
Livro sobre Comunicação não violenta:
Vídeo sobre Comunicação não violenta:
https://www.youtube.com/watch?v=AbQTnHirOnw
Curso de introdução à Filosofia:
Arquitetura Baseada em Serviços (Service-based Architecture)
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
Linguagem onipresente
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
Programação Assíncrona
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
O resto do REST
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
REST: você (provavelmente) está fazendo isso errado
Qual a diferença de POST e PUT? Quais métodos HTTP são idempotentes? Você utiliza estes conceitos nas suas API Rest?
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://en.wikipedia.org/wiki/Representational_state_transfer
https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers
https://developer.mozilla.org/en-US/docs/Glossary/REST
https://blog.restcase.com/rest-api-error-codes-101/
https://medium.com/hashmapinc/rest-good-practices-for-api-design-881439796dc9
https://medium.com/@mwaysolutions/10-best-practices-for-better-restful-api-cbe81b06f291
https://martinfowler.com/articles/richardsonMaturityModel.html
https://tools.ietf.org/html/rfc7231#section-4.3
Tese de PhD onde tudo começou: https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
https://restcookbook.com/
https://www.restapitutorial.com/
https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods
https://developer.mozilla.org/pt-BR/docs/Glossario/Idempotente#:~:text=Outra%20implica%C3%A7 %C3%A3o%20do%20DELETE%20ser,quebrar%20a%20constante%20de%20idempot%C3%AAncia
Refatoração: o que é e como fazer
Qual o momento ideal pra uma refatoração? E a técnica, qual usar? Quais motivos para a pratica da refatoração? 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://www.thoughtworks.com/pt/xconf-br-2019
https://www.thoughtworks.com/pt/xconf-br
https://martinfowler.com/books/refactoring.html
https://www.infoq.com/podcasts/refactoring-evolutionary-architecture/
https://www.youtube.com/watch?v=_NnElPO5BU0
https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code
https://www.goodreads.com/book/show/179133.Domain_Driven_Design
https://www.goodreads.com/book/show/4268826-growing-object-oriented-software-guided-by-tests
https://anchor.fm/pdepodcast/episodes/Pare-de-usar-IFElse-ekgg2s
SRP x CRUD (Bônus)
Seu CRUD/DAO/Repositório respeita o SRP? Confira neste episódio bônus!
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://thorben-janssen.com/composite-repositories-spring-data-jpa/
SRP: O Princípio da Responsabilidade Única
Suas classes fazem coisas demais? Simples alterações demandam horas de trabalho? Você segue o Princípio da Responsabilidade Única? Neste episódio falamos sobre este princípio, o "S" do SOLID. Confira!
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
juliannoms@gmail.com
Links:
https://en.wikipedia.org/wiki/Single-responsibility_principle
https://en.wikipedia.org/wiki/Law_of_Demeter
https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle
https://martinfowler.com/bliki/TellDontAsk.html
https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html
https://twitter.com/mfeathers/status/359703449920733184
https://speakerdeck.com/tastapod/why-every-element-of-solid-is-wrong?slide=12
https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code
https://www.goodreads.com/book/show/18043011-clean-architecture
Injeção de dependência e inversão de controle
Você sabe o que é Injeção de Dependência? Suas classes dependem de abstrações? Neste episódio falamos sobre Injeção de Dependência, o "D" do SOLID. Confira!
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
juliannoms@gmail.com
Links:
vavr: https://www.vavr.io/
mpjme: https://m.youtube.com/watch?v=0X1Ns2NRfks
Inversion of Control Containers and the Dependency Injection pattern: https://martinfowler.com/articles/injection.html
DIP in the Wild: https://www.martinfowler.com/articles/dipInTheWild.html
Weld: https://weld.cdi-spec.org/
Spring: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans
Quarkus: https://quarkus.io/guides/cdi
Arquitetura Hexagonal: https://alistair.cockburn.us/hexagonal-architecture/
Por que usar programação funcional em linguagens OO?
pdepodcast.episodios().stream().map(TocadorPodcast::play); Não entendeu? Aperte o play!
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
juliannoms@gmail.com
Livros:
Learn You a Haskell for Great Good: http://learnyouahaskell.com/
Functional Thinking, Neal Ford: https://www.goodreads.com/book/show/18492332-functional-thinking
Programming with Types: https://www.manning.com/books/programming-with-types
Category Theory for Programmers, Bartosz Milewski: https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
Links interessantes:
Higher Order Functions: https://www.youtube.com/watch?v=BMUiFMZr7vk
Javadoc do Optional: https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
Javadoc da api funcional do Java: https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
Biblioteca funcional pro Java: https://www.vavr.io/
Curso de Category Theory: https://www.youtube.com/user/DrBartosz/playlists
UX: Por que todo mundo está falando disso?
Já parou pra pensar o que te faz querer tanto um produto? E como deixar o seu produto irresistível? A resposta é UX ou Experiência do Usuário. Confira no episódio de hoje!
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
juliannoms@gmail.com
Kátia Karen Bergamini de Queiroz
karen.queiroz@gmail.com
linkedin.com/in/katia-karen-bergamini-86b3941a2
Links interessantes:
https://uxdesign.blog.br/don-norman-e-o-termo-ux-6dffb3f8d218
https://medium.com/gympass/my-covid-19-story-user-research-in-complex-times-eb488e6685e7
https://brasil.uxdesign.cc/nubank-um-estudo-de-caso-de-ux-writing-7ffb0ce7c195
Livros:
Experiência de Usuário
https://www.goodreads.com/nl/book/show/40892602-n-o-me-fa-a-pensar
Interface de Usuário
https://www.goodreads.com/it/book/show/26595449-pensar-com-tipos
https://www.goodreads.com/book/show/17979683-a-cor-no-processo-criativo
Integração Contínua não é (apenas) automatizar a build
No episódio de hoje falamos sobre Integração Contínua e como ela é importante no desenvolvimento de software. Já automatizou o processo de build da sua aplicação? Faz testes automatizados? Conhece chaveamento de funcionalidades? Será mesmo que seu time pratica Integração Contínua? Confira!
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
juliannoms@gmail.com
Leonardo Leite
https://twitter.com/leonardofl
https://www.linkedin.com/in/leonardo-alexandre-ferreira-leite-17194322
https://radarparlamentar.polignu.org/
Links
https://trunkbaseddevelopment.com
https://www.thoughtworks.com/continuous-integration
https://medium.com/@marciofrayze/integra%C3%A7%C3%A3o-cont%C3%ADnua-e-feature-toggles-329055e96de9
https://martinfowler.com/bliki/CanaryRelease.html
https://radarparlamentar.polignu.org/
Canal Continuous Delivery do Dave Farley:
https://www.youtube.com/channel/UCCfqyGl3nq_V0bo64CjZh8g
Palestra do Marcio sobre IC
https://m.youtube.com/watch?v=LYtClxC3wcU
Effects as data, Richard Feldman:
https://www.youtube.com/watch?v=6EdXaWfoslc
Livros
https://www.goodreads.com/book/show/8686650-continuous-delivery
https://www.goodreads.com/book/show/4268826-growing-object-oriented-software-guided-by-tests
https://www.goodreads.com/book/show/1654215.The_Art_of_Agile_Development
https://www.goodreads.com/book/show/67833.Extreme_Programming_Explained
https://www.goodreads.com/book/show/35755822-building-evolutionary-architectures
https://www.martinfowler.com/books/refactoringDatabases.html
Pare de usar IF/Else
No episódio de hoje discutimos o impacto do uso excessivo de if/else, switch/case, for, while, na legibilidade e complexidade do código. Quais as técnicas você utiliza pra diminuir o uso destas estruturas? Conhece o Padrão Null Object? Guard Clause? Pattern Matching? Aperte o play!
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
juliannoms@gmail.com
Código Haskell para calculo da sequência de Fibonacci
fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Links:
https://m.youtube.com/watch?v=AnZ0uTOerUI
https://java-design-patterns.com/patterns/null-object/
https://martinfowler.com/articles/replaceThrowWithNotification.html
https://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html
https://fsharpforfunandprofit.com/posts/expressions-vs-statements/
https://segunda.tech/posts/2020-06-25-oo-design-patterns-serpro/
https://wiki.haskell.org/The_Fibonacci_sequence
https://medium.com/better-programming/refactoring-guard-clauses-2ceeaa1a9da
https://enterprisecraftsmanship.com/posts/fail-fast-principle/
https://medium.com/coding-blocks/tail-call-optimization-in-jvm-with-kotlin-ebdf90b34ec9
https://medium.com/97-things/enums-are-classes-too-bfdd2030cf1d
ORM amar ou odiar?
No episódio de hoje discutimos os frameworks de mapeamento objeto-relacional, os ORM.
Os ORM são frameworks para todas as aplicações? São eles os verdadeiros vilões da baixa performance? Quais facilidades eles trazem? Confira!
Imutabilidade e programação defensiva
Neste episódio discutimos sobre imutabilidade, programação defensiva e boas práticas de programação.
Não esqueça de enviar sua opinião pra gente! O que gostou? O que poderíamos melhorar? Envie sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Links interessantes
https://www.martinfowler.com/bliki/ValueObject.html
https://www.goodreads.com/book/show/34927404-effective-java
https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html
https://dzone.com/articles/how-to-create-an-immutable-class-in-java
DevOps
Neste episódio discutimos a Cultura DevOps, partindo do significado de termos como Integração Contínua e Entrega Contínua, passando pela automação necessária no desenvolvimento e na infraestrutura até como começar a praticar em contextos diferentes.
Contamos com a participação especial do Leonardo Leite, pesquisador/doutorando da USP.
Não esqueça de enviar sua opinião pra gente! O que gostou? O que poderíamos melhorar? Envie sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Leonardo Leite
https://twitter.com/leonardofl
https://www.linkedin.com/in/leonardo-alexandre-ferreira-leite-17194322
Links interessantes:
Artigos e palestras de Leonardo Leite:
http://ccsl.ime.usp.br/devops/2019-12-04/devops-survey-published.html
http://ccsl.ime.usp.br/devops/2020-03-17/times-de-plataforma.html
http://ccsl.ime.usp.br/devops/2020-04-16/aula-sistemas-complexos.html
http://ccsl.ime.usp.br/devops/2020-08-25/times-de-plataforma-tdc-2020.html
http://ccsl.ime.usp.br/devops/2020-08-26/devops-e-arquitetura.html
Livros:
https://www.goodreads.com/book/show/17255186-the-phoenix-project
https://www.goodreads.com/book/show/35747076-accelerate
https://www.goodreads.com/book/show/113934.The_Goal
https://www.goodreads.com/book/show/44135420-team-topologies
https://www.goodreads.com/book/show/1069827.Release_It_
Vídeo:
Dave Farley: DevOps x Integração Contínua:
https://www.youtube.com/watch?v=MnyvgFDh-kw
Código limpo
Neste episódio discutimos sobre quão importante é estudarmos sobre Código limpo. Contamos algumas histórias que já passamos durante nossas carreiras, problemas recorrentes que encontramos nos projetos e outras coisas que são essenciais para o desenvolvimento de sistemas com alta legibilidade e manutenibilidade.
Não esqueça de enviar sua opinião pra gente!
O que gostou? O que poderíamos melhorar? Envie sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva Links interessantes:
Links:
https://www.archunit.org
http://fundamentalsofsoftwarearchitecture.com/
https://www.goodreads.com/book/show/3735293-clean-code
https://www.goodreads.com/book/show/23215733-the-software-craftsman
https://rubberduckdebugging.com/
https://martinfowler.com/books/refactoring.html
https://www.martinfowler.com/bliki/TwoHardThings.html
https://hilton.org.uk/blog/why-naming-things-is-hard
https://blog.cleancoder.com/uncle-bob/2011/09/30/Screaming-Architecture.html
https://www.vavr.io/
Frameworks e o seu impacto na arquitetura de software
Neste episódio conversamos um poucos sobre Frameworks. Apresentamos as diferenças entre frameworks e bibliotecas, quando recomendamos usar uma biblioteca ou framework e como se proteger para evitar que o uso de frameworks e bibliotecas impactem a arquitetura do seu sistema.
Não esqueça de enviar sua opinião pra gente!
O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Links interessantes:
Arquitetura Hexagonal (Ports and Adapters)
https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749
https://www.kennethlange.com/ports-and-adapters/
Arquitetura limpa (Clean Architecture):
https://www.goodreads.com/book/show/18043011-clean-architecture
Exemplo de implementação do DDD que tem um acoplamento com Hibernate nas classes de domínio.
https://github.com/citerus/dddsample-core/
Outros links interessantes:
https://www.martinfowler.com/bliki/InversionOfControl.html
https://en.wikipedia.org/wiki/Inversion_of_control
https://en.wikipedia.org/wiki/There_are_known_knowns
https://en.wikipedia.org/wiki/Conway%27s_law
TDD: Desenvolvimento Guiado Por Testes
Neste episódio conversamos um poucos sobre Desenvolvimento Guiado Por Testes, incluindo dicas de como incluir esta prática no seu dia a dia.
Não esqueça de enviar sua opinião pra gente!
O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Links interessantes:
https://medium.com/@marciofrayze/como-consegui-come%C3%A7ar-a-praticar-tdd-df4aa74d6d9a
https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864
http://www.growing-object-oriented-software.com/
https://www.goodreads.com/book/show/387190.Test_Driven_Development
https://www.goodreads.com/book/show/3735293-clean-code
https://www.goodreads.com/book/show/18043011-clean-architecture
https://martinfowler.com/articles/mocksArentStubs.html
https://www.youtube.com/watch?v=_NnElPO5BU0
https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code
https://8thlight.com/blog/georgina-mcfadyen/2016/06/27/inside-out-tdd-vs-outside-in.html
p de Podcast
Este podcast nasceu para conversarmos sobre arquitetura de software e boas práticas de programação. Mas quem são as pessoas por trás deste projeto? Neste trailer respondemos esta pergunta e apresentamos um pouco mais sobre a proposta deste podcast.
Arquitetura de software no desenvolvimento mobile
Arquitetura de software é importante também para o desenvolvimento de Apps? Quais os problemas que podemos ter quando não nos preocupamos com isso? Quais são as particularidades da Arquitetura de Software no que diz respeito ao desenvolvimento de apps? Muita gente tem falado em "gerenciamento de estado". O que seria isso?
Essas e muitas outras perguntas são respondidas neste episódio! Desta vez contamos com a presença de dois convidados especialistas em desenvolvimento de aplicativos móveis.
Não esqueça de enviar sua opinião pra gente!
O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
marcio@segunda.tech
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Marco Antonio Porcho Souza
https://www.linkedin.com/in/marco-porcho
maporcho@gmail.com
Abner Silva de Oliveira
https://twitter.com/abneroliveira
https://github.com/abner
https://www.linkedin.com/in/abneroliveira
Links interessantes/referências:
Overview de gerenciamento de estados, do próprio time do Flutter:
https://flutter.dev/docs/development/data-and-backend/state-mgmt
Estudo de caso de migração do nativo para Flutter:
https://segunda.tech/posts/2020-07-12-flutter-em-producao
Guia oficial do Google de arquitetura para Android:
https://developer.android.com/jetpack/guide
MVC, MVP, VIPER, RIBLET, Clean Swift, etc:
https://medium.com/flawless-app-stories/the-only-viable-ios-architecture-c42f7b4c845d
SOLID e Clean Code no Flutterando:
https://www.youtube.com/watch?v=C8mpy3pwqQc&feature=youtu.be
Android Clean Architecture Boilerplate:
https://github.com/bufferapp/android-clean-architecture-boilerplate
Projeto de exemplo do Android disponibilizado pela equipe de desenvolvimento do Android sugerindo forma de organizar o projeto mobile em Android:
https://github.com/android/architecture-samples
Projeto organizando aplicação móvel em Android levando em conta princípios do Clean Code:
https://github.com/android10/Android-CleanArchitecture
Similar ao repositório acima, mas com o foco em Kotlin:
https://github.com/android10/Android-CleanArchitecture-Kotlin
Gerador de nomes de arquiteturas pra iOS (hahahaha):
https://iosarchitecture.top
Arquitetura Monolítica versus Microsserviços - parte 3
Neste episódio continuamos conversamos sobre o que é microsserviços e discutimos se é hora ou não de adotar esta técnica.
Não esqueça de enviar sua opinião pra gente!
O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Links:
Sobre o nubank:
https://blog.nubank.com.br/organizar-times-com-foco-no-cliente/
https://medium.com/building-nubank/microservices-at-nubank-an-overview-2ebcb336c64d
https://www.fintechfutures.com/2020/07/brazilian-challenger-nubank-acquires-firm-behind-clojure-and-datomic/
Sobre microsserviços:
https://martinfowler.com/articles/microservices.html
http://fundamentalsofsoftwarearchitecture.com/
https://www.youtube.com/watch?v=wgdBVIX9ifA
https://samnewman.io/talks/principles-of-microservices
https://www.goodreads.com/work/quotes/41956437-building-microservices-designing-fine-grained-systems
Arquitetura Monolítica versus Microsserviços - parte 2
Neste episódio conversamos sobre o que é microsserviços, suas principais características, vantagens e desvantagens.
Não esqueça de enviar sua opinião pra gente!
O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Julianno Martins Silva
Links:
https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate
https://rla4.com/
https://martinfowler.com/articles/microservices.html
https://www.youtube.com/watch?v=wgdBVIX9ifA
https://samnewman.io/talks/principles-of-microservices
https://www.goodreads.com/work/quotes/41956437-building-microservices-designing-fine-grained-systems
Arquitetura Monolítica versus Microsserviços - parte 1
Neste episódio conversamos sobre o que é a arquitetura monolítica, suas principais características, vantagens e desvantagens.
Não esqueça de enviar sua opinião pra gente! O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
https://segunda.tech
https://masto.donte.com.br/web/accounts/138458
https://twitter.com/marciofrayze
Daniel Miranda
Julianno Martins Silva
Links:
http://fundamentalsofsoftwarearchitecture.com/
https://basecamp.com/
https://rubyonrails.org/
O que é Arquitetura de Software?
Neste episódio conversamos sobre o que é arquitetura de software, como ela se relaciona com tecnologia e decisões de negócio. Não esqueça de enviar sua opinião pra gente! O que gostou? O que poderíamos melhorar? Enviei sua opinião para marcio@segunda.tech.
Participantes
Marcio Frayze David
- https://segunda.tech
- https://masto.donte.com.br/web/accounts/138458
- https://twitter.com/marciofrayze
Daniel Miranda
Julianno Martins Silva
Links: