-
Notifications
You must be signed in to change notification settings - Fork 45
Coding DOJO
Sites Para Resolução de Problemas
Segundo Sato, Danilo(2008), Coding Dojo é um encontro, normalmente semanal, organizado para desafiar pessoas a melhorar suas habilidades de pragramação e nivela-lás, caso estejam em um projeto.
Seu princípio é criar um ambiente colaborativo e não competitivo, onde as pessoas continuam aprendendo. Neste ambiente, o participante não tem a cobrança pelos seus erros, sendo estes parte do aprendizado e aperfeiçoamento.
Como mencionado, o Dojo serve como uma reunião onde uma pessoa com um conhecimento maior e lider desta reuniao, Dojo Master, cita problemas a serem resolvidos pelos aprendizes, tudo isso visando o nivelamento de conhecimento e aumento das competências em codificação.
Dojo (lê-se "dojô") vem do japonês "Local de Treinamento". No ramo das artes marciais Dojo é, além de um respeitado local de treinamento, é um local onde tem-se um convívio harmonioso entre os participantes;
- Coding Dojo = Local de Treinamento de Código.
Este segue a mesma ideia do dojo das artes marciais, entretanto, neste caso específico, se treina a arte de codificar.
Para realizar um Dojo, algumas necessidades devem ser atendidas:
- Deve acontecer em uma sala que suporte a quantidade de pessoas;
- É necessário um projetor, para conectar um computador;
- Um quadro branco ou negro, onde serão anotados comentários sobre os desafios.
Além disso, os participantes são encorajados a utilizarem o método [Test-Driven Development(TDD)](https://github.com/fga-gpp-mds/00-Disciplina/wiki/Test-Driven-Development) para a solução dos problemas.
A linguaguem utilizada fica a escolha dos participantes e organizadores do DOJO.
Na realização dos Dojos, os participantes recebem algumas
Dojo Kata: Há um apresentador que entrega uma solução pré-criada;
Dojo Randori: Somente um Piloto e um Co-Piloto em uma única máquina;
Dojo Kake: Vários Pilotos e Co-pilotos em máquinas Diferentes;
Neste tipo de Dojo há um apresentador que entrega a solução pronta de um determinado problema.
O objetivo é que os envolvidos no Dojo consigam reproduzir a solução demonstrada com êxito.
Neste tipo de Dojo é permitido realizar pausas para a sanar dúvidas dos participantes.
Este tipo de Dojo permite a particiapação de todos, entretanto existem 3 figuras centrais:: Piloto, Copiloto e Platéia.
É dado um problema e uma única máquina para resolvê-lo, esta máquina deve ficar ligada a um projetor ou algo semelhante para que todos na sala possam assistir e entender o que está sendo realizado.
Um participante assume o papel de piloto e outro assume o papel de co-piloto. O piloto passa a escrever o código na máquina enquanto o copiloto o auxilia.
Após 5 minutos o piloto e o copiloto explicam o que fizeram, há uma pausa para a refatoração do código juntamente com a plateia.
Então o copiloto assume o lugar de piloto, o piloto volta a platéia e alguém da platéia assume o papel de co-piloto.
A platéia deve ficar em silêncio em todo o tempo, podendo falar somente quando o copiloto pedir auxílio ou no momento da refatoração do código.
O piloto e o copiloto devem, a todo momento, explicar o que estão fazendo e pensando em fazer. Toda discussão entre os dois deve ser ouvida pela platéia.
É importante seguir os “baby-steps” ou até mesmo TDD para maior compreensão de todos na sala.
A dupla tem toda liberdade para resolver o problema da forma que achar melhor, entretanto todos os participantes devem entender o que está sendo feito.
Diagrama do Algorítmo do Coding Dojo do TIpo Randori
Segue a mesma ideia que o Randori, entretanto existem várias duplas trabalhando simultaneamente e a cada cinco minutos as duplas são trocadas.
Vale ressaltar que este tipo de dojo necessita de uma maturidade maior dos participantes.
IBM - Coding Dojo: prática e colaboração para melhoria contínua de software
Flavio Silveira - Coding Dojo – O Que é ? E Como Participar ?
Coding Dojo: an environment for learning and sharing Agile practices
EPS/MDS - FGA/UnB
Métodos de Desenvolvimento de Software
Gestão de Portfólio e Projetos de Software
RUP (Rational Unified Process)
Fase Elaboração (RUP) Planejamento(PMBOK)
Fase de Construção (RUP), Execução/Monitoramente e Controle (PMBOK)
Fase Transição (RUP), Finalização (PMBOK)
Acceptance Test Driven Development (ATDD)
Integração Contínua Deploy Contínuo
Automação de Ambiente com Docker
Orquestração de Containers com Docker Compose
Automação de Ambiente com Vagrant
Deploy Contínuo na Plataforma Heroku
Integração Contínua com Travis CI
Disponibilizando a Aplicação com o Proxy Reverso Nginx
Tutorial de Instalação do Ionic
Android Integração contínua com Circle CI
Configuração de Ambiente para React Native
Tutorial Instalação Ruby on Rails
Teste Automatizado Cucumber JS
Teste Automatizado Cucumber Rails
Testando AngularJS com Jasmine
Teste Automatizado com Selenium IDE
Configurar o SonarCloud para um projeto usando Jest
Configurar o SonarCloud para um projeto usando Pytest
Configurar o SonarCloud para um projeto usando Mocha e Istambul