SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
<Coding Dojo/>
O que é o Coding Dojo?
“Um Coding Dojo é um encontro onde um
grupo de programadores se reúne para
trabalhar em conjunto em um desafio de
programação. Eles estão lá para se divertir, e,
através de uma metodologia pragmática,
melhorar suas habilidades de programação e
de trabalho em grupo”. http://codingdojo.org/
O que esperar e o que é necessário?
Promessa
Adquirir habilidades de codificação deve ser um processo contínuo.
Características
- Ambiente colaborativo, não competitivo e divertido.
- Todos os níveis são bem-vindos.
- Experimentalizar novas idéias em segurança.
Requisitos
- Sala de reuniões com assentos suficientes.
- Pelo menos um PC ou laptop.
- Uma tela para projeção.
Como funciona?
Próxima 2 min: decidir sobre data para a próxima sessão;
Anterior 30 min: retrospectiva rápida da sessão anterior; o que correu
bem, o que era interessante, o que foi frustrante;
Protocolo 10 min: decidir sobre um tema para esta sessão e
contextualização do stack de tecnologia a ser utilizado;
Código 50 min: Definir quem serão as duplas e o que cada uma deve
desenvolver;
Intervalo 8 min: pausa no meio da sessão para discutir como as
coisas estão indo; Dúvidas e sugestões são bem vindas!
+ Código 50 min: um pouco mais de código;
Tempo total: 3 horas
Qual a data do próximo Dojo?
Próxima...2min
Retrospectiva sobre o último Dojo!
...anterior30min
:D o que correu bem?
:) o que era interessante?
:( o que foi frustrante?
O QUE SERÁ FEITO HOJE?
<Protocolo/>10min
Sistema de Gestão da InCuca
-Modelo BD - conceitual + lógico;
-JHipster gerador Yeoman;
-Front-end AngularJS;
-Back-end Spring MVC;
-Workflow Yeomen, Bower, Grunt e
Maven
-Deploy Heroku;
Objetivo: entender o funcionamento do
Como começar um sistema?
Problema do cliente…
...solução da equipe de desenvolvimento!
1º Entender o domínio do problema
2º Levantar os requisitos
3º Aprovar os requisitos com o cliente
Especificação de requisitos
Documental do que o sistema deve conter e
fazer descrito de forma simplificada
Deve ser entendido por qualquer pessoa
-Cliente + Programador + Usuário -
InCuca - Software - ERP InCuca - Especificação de requisitos
Modelos BD # Conceitual + Lógico
Definir usuários, permissões, entidades e
casos de uso para cada usuário no sistema
Ordem inversa de complexidade para desenvolvimento
Entidades concretas (pessoa, empresa) e Entidades abstratas (setores)
Desenhar os relacionamentos e atributos
Normalizar os elementos do banco de dados
evitar inconsistência e redundância de dados - MySQL ou Postgres
JHipster gerador Yeoman
http://jhipster.github.io/presentation/#/
Tecnologias client-side
-Yeoman
-Grunt
-bower
- Angularjs!
Afinal, quais as vantagens do angular?
- Programação + declarativa, escrevendo muito
menos código!
- Arquitetura mvc em frontend! divisão de
responsabilidades
- data binding
- validações
- diretivas
- e muito mais!
Tecnologias server-side
-Maven
-spring (boot, data jpa, security, mvc
rest)
-liquibase
-jpa / hibernate
-métricas
-deploy na cloud!
-profiles (dev, test e prod)
gerador jhipster
-entidades
-serviços
-deployment
-atualização constante do gerador
JHipster em funcionamento
ERP InCuca
O que já existe?
A base do sistema criado pelo Jhipster
integrada com o tema Inspinia
http://wrapbootstrap.com/preview/WB0R5L90S
ERP InCuca
O que vamos fazer?
Dividir em duplas e separar entidades
criar as entidades mais simples
sem #chave estrangeira
20 min
Código
50min
Comitar criações
github.com
-Branches separados
-Nome: entidade
Master: InCuca
Intervalo10min
ERP InCuca
O que vamos fazer agora?
Dividir em duplas e entidades
criar as entidades mais complexas
com #chave estrangeira
+ Código
50min
Conclusões!!!
<Até a próxima/>
http://incuca.com.br

Mais conteúdo relacionado

Semelhante a InCuca - Coding dojo - ERP Especificação

Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareGabriel Felipe Soares
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingMarcelo Láias
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingJ. C.
 
Xp Comdex
Xp ComdexXp Comdex
Xp ComdexJ. C.
 
Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Alessandro Almeida
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeGlobalcode
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdfDouglas Siviotti
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceEncontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceCarolina Karklis
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágilabacrazy
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 

Semelhante a InCuca - Coding dojo - ERP Especificação (20)

Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Xp Comdex
Xp ComdexXp Comdex
Xp Comdex
 
Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
 
Analise sistemas 04
Analise sistemas 04Analise sistemas 04
Analise sistemas 04
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceEncontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 

InCuca - Coding dojo - ERP Especificação

  • 2. O que é o Coding Dojo? “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo”. http://codingdojo.org/
  • 3. O que esperar e o que é necessário? Promessa Adquirir habilidades de codificação deve ser um processo contínuo. Características - Ambiente colaborativo, não competitivo e divertido. - Todos os níveis são bem-vindos. - Experimentalizar novas idéias em segurança. Requisitos - Sala de reuniões com assentos suficientes. - Pelo menos um PC ou laptop. - Uma tela para projeção.
  • 4. Como funciona? Próxima 2 min: decidir sobre data para a próxima sessão; Anterior 30 min: retrospectiva rápida da sessão anterior; o que correu bem, o que era interessante, o que foi frustrante; Protocolo 10 min: decidir sobre um tema para esta sessão e contextualização do stack de tecnologia a ser utilizado; Código 50 min: Definir quem serão as duplas e o que cada uma deve desenvolver; Intervalo 8 min: pausa no meio da sessão para discutir como as coisas estão indo; Dúvidas e sugestões são bem vindas! + Código 50 min: um pouco mais de código; Tempo total: 3 horas
  • 5. Qual a data do próximo Dojo? Próxima...2min
  • 6. Retrospectiva sobre o último Dojo! ...anterior30min :D o que correu bem? :) o que era interessante? :( o que foi frustrante?
  • 7. O QUE SERÁ FEITO HOJE? <Protocolo/>10min
  • 8. Sistema de Gestão da InCuca -Modelo BD - conceitual + lógico; -JHipster gerador Yeoman; -Front-end AngularJS; -Back-end Spring MVC; -Workflow Yeomen, Bower, Grunt e Maven -Deploy Heroku; Objetivo: entender o funcionamento do
  • 9. Como começar um sistema? Problema do cliente… ...solução da equipe de desenvolvimento! 1º Entender o domínio do problema 2º Levantar os requisitos 3º Aprovar os requisitos com o cliente
  • 10.
  • 11. Especificação de requisitos Documental do que o sistema deve conter e fazer descrito de forma simplificada Deve ser entendido por qualquer pessoa -Cliente + Programador + Usuário - InCuca - Software - ERP InCuca - Especificação de requisitos
  • 12. Modelos BD # Conceitual + Lógico Definir usuários, permissões, entidades e casos de uso para cada usuário no sistema Ordem inversa de complexidade para desenvolvimento Entidades concretas (pessoa, empresa) e Entidades abstratas (setores) Desenhar os relacionamentos e atributos Normalizar os elementos do banco de dados evitar inconsistência e redundância de dados - MySQL ou Postgres
  • 15. Afinal, quais as vantagens do angular? - Programação + declarativa, escrevendo muito menos código! - Arquitetura mvc em frontend! divisão de responsabilidades - data binding - validações - diretivas - e muito mais!
  • 16. Tecnologias server-side -Maven -spring (boot, data jpa, security, mvc rest) -liquibase -jpa / hibernate -métricas -deploy na cloud! -profiles (dev, test e prod)
  • 19. ERP InCuca O que já existe? A base do sistema criado pelo Jhipster integrada com o tema Inspinia http://wrapbootstrap.com/preview/WB0R5L90S
  • 20. ERP InCuca O que vamos fazer? Dividir em duplas e separar entidades criar as entidades mais simples sem #chave estrangeira 20 min
  • 24. ERP InCuca O que vamos fazer agora? Dividir em duplas e entidades criar as entidades mais complexas com #chave estrangeira