Skip to content

Instantly share code, notes, and snippets.

@tomascco
Created December 16, 2020 15:26
Show Gist options
  • Save tomascco/a23f8e0114700a101d262683d3b6cc81 to your computer and use it in GitHub Desktop.
Save tomascco/a23f8e0114700a101d262683d3b6cc81 to your computer and use it in GitHub Desktop.
Slides da talk
Software: qual sua utilidade?
Resolver problemas,
aplicando regras de negócio?
🤔
# todo sistema substitui um humano, que realiza processos de negócios como os que acontecem o tempo todo na GTi (jornada da gerência, de vendas, abraços quentinhos, etc).
Se nossos sistemas substituem
humanos realizando processos,
que processos são esses?
🧐
▸ Processar o pagamento de uma compra
▸ Calcular a taxa de juros
▸ Calcular as férias de um empregado
▸ Calcular o número de diárias
▸ Fazer o checkout de um pedido
▸ Notificar o usuário de certas ações
▸ ...
Como fazer isso na prática?
👩‍💻🧑‍💻
▸ Fazer o checkout de um pedido
# percebe-se que as regras de negócio vão além dos dados, (rails g scaffold Post). São transformações dos dados (processos, funções). O Rails não oferece mecanismos pra implementar esses processos?
Se existem várias maneiras
de resolver o mesmo problema,
existe uma melhor que a outra?
Arquitetura e design de software
📝
“Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.”
— Martin Fowler
Como escrever regras de negócio em rails?
Existem várias soluções para organizar
essa "camada" da aplicação:
▸ dry-transaction
▸ Trailblazer::Operation
▸ Interactor
▸ Service Objects
▸ u-case
📝
“Talk is cheap. Show me the code.”
— Linus Torvalds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment