Perfil
Propostas
[Arquitetura] S.O.L.I.D - Como criar uma base de código compreensível, coesa, simples, robusta e livre de bugs
Nessa talk, vamos falar sobre como aplicar os 5 princípios SOLID em python, e usá-los tanto orientado a objetos quanto orinetado a funções.
Como criar um código padronizado, simples, robusto de forma pythonica. Tirar vantagem de toda a simplicidade do python para trazer robustes ao código.
Algumas dicas sobre código defensivo e limpo.
Dismistificação de algums mitos da programção em geral.
Domain Driven Design (DDD) aplicado em Python para ambientes ágeis
Para o desenvolvimento ágil de software não basta apenas um processo de gestão eficiente, é também necessário uma nova forma de pensar a estrutura do código e em como é possível melhorar a comunicação entre o time de negócios e o time de tecnologia.
O DDD é um conceito que busca reduzir a complexidade de implementação de um produto através de padrões de codigo consolidado e visa ir além do código. Busca trazer a interação daqueles que dominam as regras de negócio e fazer com que desenvolvedores tenham a mesma lingua em relação ao que está sendo criado ou mantido.
Aprender e implementar o DDD porém não é uma tarefa fácil, é necessário compreender uma série de conceitos, padrões de projetos (design patterns) e principamente saber trabalhar com um Object Relational Mapper (ORM). Obter esses conhecimentos e aplicá-los em python está no escopo dessa oficina, e ela é voltada para todos os níveis de conhecimento.
Objetivos:
- Criar um webservice que aceite um cadastro complexo de usuário, produtos, carrinho de compras e pedido usando as técnicas básicas de DDD, usando Flask e SQLAlchemy
Conceitos a serem estudados:
- S.O.L.I.D - grupo de princípios de programação necessários para se produzir um código coerente e desacoplado
- Conceitos DDD - Entidades, Aggregates, Value Objects, Repositories, Service Layer, camadas domain, infrastructure, presentation e por fim Linguagem Ubíqua (ubiquitous language)
- ORM - Conceito e biblioteca SQLAlchemy
- Introdução a microservices - Flask
Microserviços em Django com CQRS e Kafka - Alta performance em relatórios e listagens complexas
Já se viu em uma situação em que seu dominio é muito complexo e isso lhe impede de separar melhor o domini devido a problemas de filtragem e paginação? Ou se conseguiu teve problemas para gerar aquele relatório que precisa de todas as informações?
A pattern CQRS visa separar a escrita da leitura, vamos falar um pouco sobre como implementá-la com Python, Django e Apache Kafka