Processo de Desenvolvimento Ruby on Rails

8

Somos uma equipe pequena que está prestes a começar a desenvolver uma versão localizada de um aplicativo da web americano bem-sucedido na Coréia, usando o RoR.

Nossa pergunta é: Qual processo você recomendaria que usássemos para desenvolver o aplicativo?

Devemos começar com os modelos de dados? As visualizações em HTML e depois codificá-las? Escolha um único recurso, desenvolva-o e adicione recursos adicionais conforme necessário?

Mais alguns detalhes sobre o projeto:

  1. é um aplicativo da web para proprietários de pequenas empresas
  2. inclui as características usuais do documento de administração do usuário do painel de controle de relatórios de CRM, que a maioria dos aplicativos pequenos de negócios tendem a ter
  3. o tamanho da equipe é inicialmente de 2 pessoas: um programador e um guru de designer / CSS (apenas um codificador)
  4. o nível de experiência é médio. bons conhecimentos de Git, Ruby, Rails e XHTML / CSS, com menos experiência com problemas de implantação. este é o primeiro projeto desse tipo que estamos fazendo juntos como uma equipe
Kai EV
fonte

Respostas:

2

Eu recomendaria o padrão de desenvolvimento orientado ao comportamento,

Se você não estiver familiarizado, deixe-me fornecer uma visão geral:

Comece pelas porcas e aparafuse o "passo do elevador" da aplicação.

"O que é isso que estamos construindo? Que valor isso traz?"

E, em seguida, escolha o requisito mínimo absoluto "recurso" e comece a "especificá-lo". Id 'recomendo usar Cucumber: http://cukes.info/ e Rspec: http://rspec.info/ para descrever o recurso como ele deve se comportar .. execute os testes / especificações e observe-os falharem ..

Em seguida, mergulhe e comece a implementar o recurso e observe os testes passarem 1 por 1.

Quando esse recurso estiver concluído (todos os testes passam), repita o processo. Passe para o próximo requisito mínimo "feature" e assim por diante.

Quanto à carga de trabalho, concentrar-se no recurso que você cria em conjunto, o programador trabalha no comportamento e o designer trabalha na aparência até que ambos funcionem perfeitamente juntos.

Daniel Upton
fonte
obrigado! alguma recomendação sobre um bom tutorial / livro sobre rspec / pepino que não nos deixe atolar nos detalhes?
Kai EV
Eu estava procurando a mesma coisa há pouco tempo. Não posso dar errado com "o livro rspec": pragprog.com/titles/achbd/the-rspec-book Acho que o importante do BDD é fazê-lo funcionar para você .. Quando eu comecei, passei tanto tempo me preocupando com o quão bonita era a suíte de testes. Eu nunca fiz nenhum trabalho. Também esse ótimo screencast de ryan bates foi realmente útil: railscasts.com/episodes/155-beginning-with- pepino
Daniel Upton
0

O maior problema que você terá é o gerenciamento de atualizações do produto principal - você precisará mesclar suas alterações, se quiser acompanhar os lançamentos. Todos os outros fatores são IMHO irrelevantes.

Portanto, certifique-se de pegar o produto principal e faça uma cópia dele para trabalhar. Quando eles lançarem uma nova versão, atualize seu original com o deles e então você poderá ver as alterações que eles fizeram e mesclá-las às suas. A refatoração do produto é um problema muito grande - não faça isso, pois cada novo arquivo dificulta ver onde ocorreu a alteração do original. Também é mais fácil se você puder manter as alterações em arquivos separados.

Caso contrário, para o desenvolvimento, eu o faria recurso por recurso, você terá uma boa maneira de testá-lo antes de passar para o próximo recurso. Tentar tudo de uma só vez é muito mais difícil. Mantenha um sistema de teste no lugar para poder liberar cada recurso e garantir que ele funcione (ou seja, em uma caixa que não seja do desenvolvedor)

gbjbaanb
fonte
re o processo de desenvolvimento - nós ouvimos você! parece coerente com a recomendação de Daniel nas, por isso, faremos o que você propõe. no entanto, não tenho certeza de que entendemos completamente o parágrafo de gerenciamento de atualizações ... você está se referindo ao desafio pós-implantação de adicionar / alterar recursos? por que um sistema simples de controle de origem não lidaria com essas alterações?
Kai EV