Profile

jhonatan @jhonatanTeixeira


About Me

-

Proposals

[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