O documento introduz os conceitos-chave do Domain Driven Design (DDD), abordando: (1) os desafios da especificação de software e da modelagem de domínio; (2) a proposta do DDD de incorporar o domínio de negócio no modelo e projeto de software; (3) os principais elementos do DDD como entidades, value objects e agregados.
https://log.pt/pt/blog/2018/07/14/change-log-domain-driven-design-2/
Custos indiretos no desenvolvimento de software – Arquitetura e qualidade de código - Jul/2018
https://log.pt/pt/blog/2018/07/14/change-log-domain-driven-design-2/
Custos indiretos no desenvolvimento de software – Arquitetura e qualidade de código - Jul/2018
Um dos objetivos dos líderes é construir um time de alta performance. E uma das principais características de um time de alta performance é autonomia. Para desenvolver a autonomia dos times, precisamos deixas as regras do jogo explicitas e dar as ferramentas corretas as pessoas. Alinhando as restrições, estabelecendo algumas regras de convivência e empoderando as pessoas. Uma dinâmica que gera muito valor nessa construção da autonomia do time é a construção e manutenção de princípios do time. Acordos que viabilizam o desenvolvimento de autonomia e apoia na construção de times de alta performance.
Construindo produtos do zero: 5 deslizes comuns e como evitá-los - Mundo 4D ...Product Camp Brasil
Construindo produtos do zero: 5 deslizes comuns e como evitá-los - Mundo 4D - Fernanda Getschko - Product Camp 2017
Todas as palestras dessa edição foram gravadas e estão disponíveis no Youtube do evento. Acesse: http://bit.ly/youtubedoeventodeproduto
Prototipação funcional é um artefato que pode ser utilizado com requisito de forma muito eficaz. Prototipação funcional é melhor ainda que ele também pode ser utilizado para testar uma solução sem a necessidade do desenvolvimento de uma linha de código.
Gerando Resultados com Scrum: Scrum in a nutshellDextra
Evento: Gerando Resultado com Scrum
Conceitos básicos de Scrum e práticas ágeis para desenvolvimento de projetos de software, com visão pragmática sobre suas aplicações em equipes internas e terceização de sistemas. Porque, quando e como implantar? Que cuidados tomar? Que barreiras irão surgir e como mitigá-las? Qual é o objetivo e que metas são realistas?
Apresentação com os princípios e valores básicos do desenvolvimento de software com o Extreme Programming (XP), um dos mais popular Métodos Ágeis existente.
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDaniel Baptista Dias
Nesta apresentação falo um pouco sobre o Domain Driven Design, seus objetivos e quais problemas ele pretende atacar.
Ao final da apresentação mostro um exemplo de estrutura de um projeto em Node.js utilizando DDD.
Um dos objetivos dos líderes é construir um time de alta performance. E uma das principais características de um time de alta performance é autonomia. Para desenvolver a autonomia dos times, precisamos deixas as regras do jogo explicitas e dar as ferramentas corretas as pessoas. Alinhando as restrições, estabelecendo algumas regras de convivência e empoderando as pessoas. Uma dinâmica que gera muito valor nessa construção da autonomia do time é a construção e manutenção de princípios do time. Acordos que viabilizam o desenvolvimento de autonomia e apoia na construção de times de alta performance.
Construindo produtos do zero: 5 deslizes comuns e como evitá-los - Mundo 4D ...Product Camp Brasil
Construindo produtos do zero: 5 deslizes comuns e como evitá-los - Mundo 4D - Fernanda Getschko - Product Camp 2017
Todas as palestras dessa edição foram gravadas e estão disponíveis no Youtube do evento. Acesse: http://bit.ly/youtubedoeventodeproduto
Prototipação funcional é um artefato que pode ser utilizado com requisito de forma muito eficaz. Prototipação funcional é melhor ainda que ele também pode ser utilizado para testar uma solução sem a necessidade do desenvolvimento de uma linha de código.
Gerando Resultados com Scrum: Scrum in a nutshellDextra
Evento: Gerando Resultado com Scrum
Conceitos básicos de Scrum e práticas ágeis para desenvolvimento de projetos de software, com visão pragmática sobre suas aplicações em equipes internas e terceização de sistemas. Porque, quando e como implantar? Que cuidados tomar? Que barreiras irão surgir e como mitigá-las? Qual é o objetivo e que metas são realistas?
Apresentação com os princípios e valores básicos do desenvolvimento de software com o Extreme Programming (XP), um dos mais popular Métodos Ágeis existente.
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDaniel Baptista Dias
Nesta apresentação falo um pouco sobre o Domain Driven Design, seus objetivos e quais problemas ele pretende atacar.
Ao final da apresentação mostro um exemplo de estrutura de um projeto em Node.js utilizando DDD.
Palestra sobre o papel desempenhado pelos desenvolvedores em uma empresa e as mudanças que este papel sofreu ao longo da maturação do desenvolvimento de software desde seu surgimento, em meio a uma mentalidade industrial, até os dias atuais, em que o sucesso das metodologias ágeis vem mudando drasticamente o funcionamento das empresas e times que produzem software.
Presentation in Portuguese about the importance of the Product Owner to succeed agile and software development in a corporate environment
Conference at TDC São Paulo 2012
This presentation of this model will show how you can implement a PMO using model Canvas easily.
Está apresentação irá mostrar como você poderá utilizar o modelo Canvas na implementação de um PMO.
Slides da palestra ministrada para as turmas de Sistemas de Informação da Uniesp de São Roque com o tema: Carreira na área de Tecnologia da Informação.
Neste palestra evidenciei alguns dos desafios que enfrentam os novos profissionais de TI, falei sobre a importância de estabelecer e perseguir objetivos profissionais de acordo com as habilidades de cada indivíduo e exemplifiquei diferentes planos de carreira comuns no mercado para que os ouvintes tenham uma base para construir suas próprias carreiras.
Para contatos sobre esta e outras palestras, acesse meu blog: http://luiztricardo.eti.br
Palestra apresentada para os colaboradores da MJV no dia 13/05/2020.
Conteúdo:
- fundamentos e orientação a objetos
- dívida técnica
- princípios ágeis e extreme programming
O Object Calisthenics é um conjunto de boas práticas no design do código discutidas em várias comunidades nos últimos anos que buscam deixar o seu código bom em 4 pontos: manutenção, clareza, testabilidade e compreensão.
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
Palestra dada em 15/05/2018 no AWS Meetup SP.
Desenvolver um sistema que suporte um grande número de dados por minuto pode ser der desafiador e complexo.
Irei mostrar um estudo de caso da Sprinklr onde processamos cerca de 500 mil de dados por minuto utilizando Node.js e AWS Lambda, mostrando quais são os pontos onde devemos nos preocupar e quais são os desafios encontrados para se suportar este volume de dados.
O que é um sistema distribuído? Como ele funciona? Como podemos contruir um sistema distribuído? Aqui iremos mostrar um pouco da história, dos fundamentos e do que devemos considerar ao montar estes tipos de sistema.
Nesta palestra faço uma breve introdução sobre Domain Driven Design e me aprofundo em alguns dos buildings blocks (a parte tática) propostos originalmente no livro de Erick Evans, Domain Driven Design: atacando as complexidades no coração do software.
Nesta apresentação alguns conceitos sobre como trabalhar como Microserviços são mostrados, bem como abordagens de como e quando utilizar eles em seus projetos.
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
Desenvolver um sistema que suporte um grande número de dados por minuto pode ser der desafiador e complexo.
Irei mostrar um estudo de caso da Sprinklr onde processamos cerca de 500 mil de dados por minuto utilizando Node.js e AWS Lambda, mostrando quais são os pontos onde devemos nos preocupar e quais são os desafios encontrados para se suportar este volume de dados.
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...Daniel Baptista Dias
Apresentação realizada em 28/11/2014 para a defesa de mestrado do aluno Daniel Baptista Dias, realizada no Instituto de Matemática e Estatística da Universidade de São Paulo
11. A especificação
● Entender o negócio leva tempo
● O modelo mental do problema real geralmente não está bem definido
● Entender o problema a especificar bem leva tempo
12. A especificação
● Entender o negócio leva tempo
● O modelo mental do problema real geralmente não está bem definido
● Entender o problema a especificar bem leva tempo
Negócio
13. A especificação
● Entender o negócio leva tempo
● O modelo mental do problema real geralmente não está bem definido
● Entender o problema a especificar bem leva tempo
Negócio Desenvolvedor
14. A especificação
● Entender o negócio leva tempo
● O modelo mental do problema real geralmente não está bem definido
● Entender o problema a especificar bem leva tempo
Negócio Desenvolvedor
17. Problemas traiçoeiros
Negócios
● Tempo é escasso
● Desenvolvimento de software é
geralmente visto como um "centro de
custo" e não como um de "centro de
lucro"
Desenvolvimento
● Tempo é escasso
18. Problemas traiçoeiros
Negócios
● Tempo é escasso
● Desenvolvimento de software é
geralmente visto como um "centro de
custo" e não como um de "centro de
lucro"
● O software não satisfaz as
necessidades de negócio
Desenvolvimento
● Tempo é escasso
19. Problemas traiçoeiros
Negócios
● Tempo é escasso
● Desenvolvimento de software é
geralmente visto como um "centro de
custo" e não como um de "centro de
lucro"
● O software não satisfaz as
necessidades de negócio
Desenvolvimento
● Tempo é escasso
● A tecnologia é vista como mais
importante que o problema de negócio
20. Problemas traiçoeiros
Negócios
● Tempo é escasso
● Desenvolvimento de software é
geralmente visto como um "centro de
custo" e não como um de "centro de
lucro"
● O software não satisfaz as
necessidades de negócio
Desenvolvimento
● Tempo é escasso
● A tecnologia é vista como mais
importante que o problema de negócio
● O modelo de software não reflete o
modelo de negócio
21. Problemas traiçoeiros
Negócios
● Tempo é escasso
● Desenvolvimento de software é
geralmente visto como um "centro de
custo" e não como um de "centro de
lucro"
● O software não satisfaz as
necessidades de negócio
Desenvolvimento
● Tempo é escasso
● A tecnologia é vista como mais
importante que o problema de negócio
● O modelo de software não reflete o
modelo de negócio
● "Big ball of mud"
22. Problemas traiçoeiros
Negócios
● Tempo é escasso
● Desenvolvimento de software é
geralmente visto como um "centro de
custo" e não como um de "centro de
lucro"
● O software não satisfaz as
necessidades de negócio
Desenvolvimento
● Tempo é escasso
● A tecnologia é vista como mais
importante que o problema de negócio
● O modelo de software não reflete o
modelo de negócio
● "Big ball of mud"
● Modelos de dados quebrados e/ou "o
que era isso mesmo?"
30. Design/Projeto dirigido ao domínio
● Domínio: é a área de interesse onde o software será desenvolvido
● Design/projeto: "esquematização"/ implementação dos requisitos no software
Arquitetura
Design / Projeto
Código
35. Design/Projeto dirigido ao domínio
● O modelo irá guiar como o software será projetado / desenvolvido
● O modelo será enriquecido através da aquisição de conhecimento, obtido ao longo do
desenvolvimento do software (linguagem úbiqua)
37. Design/Projeto dirigido ao domínio
● O modelo irá guiar como o software será projetado / desenvolvido
● O modelo será enriquecido através da aquisição de conhecimento, obtido ao longo do
desenvolvimento do software (linguagem úbiqua)
● A modelagem não deve ser perfeccionista e sim efetiva
44. Design/Projeto dirigido ao domínio
● O modelo irá guiar como o software será projetado / desenvolvido
● O modelo será enriquecido através da aquisição de conhecimento, obtido ao longo do
desenvolvimento do software (linguagem úbiqua)
● A modelagem não deve ser perfeccionista e sim efetiva
● Projeto pode ser dividido em diferentes níveis:
○ Design/projeto tático
47. Design/Projeto dirigido ao domínio
● O modelo irá guiar como o software será projetado / desenvolvido
● O modelo será enriquecido através da aquisição de conhecimento, obtido ao longo do
desenvolvimento do software (linguagem úbiqua)
● A modelagem não deve ser perfeccionista e sim efetiva
● Projeto pode ser dividido em diferentes níveis:
○ Design/projeto tático ("menor" unidade de software)
48. Design/Projeto dirigido ao domínio
● O modelo irá guiar como o software será projetado / desenvolvido
● O modelo será enriquecido através da aquisição de conhecimento, obtido ao longo do
desenvolvimento do software (linguagem úbiqua)
● A modelagem não deve ser perfeccionista e sim efetiva
● Projeto pode ser dividido em diferentes níveis:
○ Design/projeto tático ("menor" unidade de software)
○ Design/projeto estratégico
49.
50.
51. Design/Projeto dirigido ao domínio
● O modelo irá guiar como o software será projetado / desenvolvido
● O modelo será enriquecido através da aquisição de conhecimento, obtido ao longo do
desenvolvimento do software (linguagem úbiqua)
● A modelagem não deve ser perfeccionista e sim efetiva
● Projeto pode ser dividido em diferentes níveis:
○ Design/projeto tático ("menor" unidade de software)
○ Design/projeto estratégico (diversos softwares / serviços)