Evento Coding Dojo promovido pela InCuca (http://incuca.com.br) para equipe de desenvolvimento que utilizou o ERP (Enterprise Resource Planning) que está sendo desenvolvimento pela empresa como temática. A dinâmica participativa ocorreu com pair programming, brainstorming e proposição de problemas a serem resolvidos pelas duplas tanto em aspectos de planejamento quanto de execução / desenvolvimento.
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
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!