mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-17 05:47:52 +00:00
246 lines
3.8 KiB
Markdown
246 lines
3.8 KiB
Markdown
# Fluxo de Desenvolvimento
|
|
|
|
## Padrões de Código
|
|
|
|
### 1. Nomenclatura
|
|
- Diretórios em kebab-case: `components/form-wizard`
|
|
- Componentes em PascalCase: `StoryCard.tsx`
|
|
- Utilitários em camelCase: `formatText.ts`
|
|
- Variáveis em camelCase: `userScore`
|
|
|
|
### 2. TypeScript
|
|
- Preferir interfaces sobre types
|
|
- Usar const com asserção `as const`
|
|
- Retornos explícitos em funções
|
|
- Imports relativos
|
|
|
|
## Estrutura de Commits
|
|
|
|
### 1. Prefixos
|
|
- `fix:` Correções de bugs
|
|
- `feat:` Novos recursos
|
|
- `perf:` Melhorias de performance
|
|
- `docs:` Documentação
|
|
- `style:` Formatação
|
|
- `refactor:` Refatoração
|
|
- `test:` Testes
|
|
- `chore:` Manutenção
|
|
|
|
### 2. Formato
|
|
```
|
|
<tipo>: <descrição>
|
|
|
|
[corpo]
|
|
|
|
[rodapé]
|
|
```
|
|
|
|
## Fluxo de Branches
|
|
|
|
### 1. Principais
|
|
- `main`: Produção
|
|
- `develop`: Desenvolvimento
|
|
- `staging`: Homologação
|
|
|
|
### 2. Features
|
|
```bash
|
|
# Nova feature
|
|
git checkout -b feature/nome-da-feature
|
|
|
|
# Commit das mudanças
|
|
git commit -m "feat: adiciona novo componente"
|
|
|
|
# Push para remote
|
|
git push origin feature/nome-da-feature
|
|
```
|
|
|
|
## Code Review
|
|
|
|
### 1. Checklist
|
|
- Código limpo e legível
|
|
- Testes adequados
|
|
- Documentação atualizada
|
|
- Performance otimizada
|
|
- Segurança verificada
|
|
|
|
### 2. Pull Request
|
|
```markdown
|
|
## Descrição
|
|
Breve descrição das mudanças
|
|
|
|
## Mudanças
|
|
- [ ] Item 1
|
|
- [ ] Item 2
|
|
|
|
## Screenshots
|
|
[Se aplicável]
|
|
|
|
## Testes
|
|
- [ ] Unitários
|
|
- [ ] Integração
|
|
- [ ] E2E
|
|
```
|
|
|
|
## Testes
|
|
|
|
### 1. Unitários
|
|
```typescript
|
|
describe('StoryComponent', () => {
|
|
it('deve renderizar corretamente', () => {
|
|
const { getByText } = render(<Story />);
|
|
expect(getByText('Título')).toBeInTheDocument();
|
|
});
|
|
});
|
|
```
|
|
|
|
### 2. Integração
|
|
```typescript
|
|
describe('ExerciseFlow', () => {
|
|
it('deve completar exercício', async () => {
|
|
const result = await completeExercise({
|
|
type: 'word-formation',
|
|
answer: 'casa'
|
|
});
|
|
expect(result.success).toBe(true);
|
|
});
|
|
});
|
|
```
|
|
|
|
## Documentação
|
|
|
|
### 1. Código
|
|
```typescript
|
|
/**
|
|
* Componente de exercício de formação de palavras
|
|
* @param {WordFormationProps} props - Propriedades do componente
|
|
* @returns {JSX.Element} Componente renderizado
|
|
*/
|
|
export const WordFormation: React.FC<WordFormationProps> = ({
|
|
word,
|
|
syllables,
|
|
onComplete
|
|
}) => {
|
|
// ...
|
|
};
|
|
```
|
|
|
|
### 2. README
|
|
- Setup do projeto
|
|
- Comandos disponíveis
|
|
- Estrutura de arquivos
|
|
- Contribuição
|
|
- Licença
|
|
|
|
## Segurança
|
|
|
|
### 1. Checklist
|
|
- Validação de inputs
|
|
- Sanitização de dados
|
|
- Proteção contra XSS
|
|
- Autenticação segura
|
|
|
|
### 2. Revisão
|
|
```typescript
|
|
// ❌ Inseguro
|
|
const query = `SELECT * FROM users WHERE id = ${id}`;
|
|
|
|
// ✅ Seguro
|
|
const query = 'SELECT * FROM users WHERE id = $1';
|
|
const values = [id];
|
|
```
|
|
|
|
## Performance
|
|
|
|
### 1. Frontend
|
|
- Lazy loading
|
|
- Memoização
|
|
- Bundle splitting
|
|
- Image optimization
|
|
|
|
### 2. Backend
|
|
- Caching
|
|
- Query optimization
|
|
- Connection pooling
|
|
- Rate limiting
|
|
|
|
## Deploy
|
|
|
|
### 1. Staging
|
|
```bash
|
|
# Build
|
|
yarn build
|
|
|
|
# Testes
|
|
yarn test
|
|
|
|
# Deploy staging
|
|
yarn deploy:staging
|
|
```
|
|
|
|
### 2. Produção
|
|
```bash
|
|
# Merge para main
|
|
git checkout main
|
|
git merge develop
|
|
|
|
# Deploy produção
|
|
yarn deploy:prod
|
|
```
|
|
|
|
## Monitoramento
|
|
|
|
### 1. Métricas
|
|
- Tempo de resposta
|
|
- Taxa de erro
|
|
- Uso de recursos
|
|
- Satisfação do usuário
|
|
|
|
### 2. Logs
|
|
```typescript
|
|
logger.info('Exercício completado', {
|
|
userId: user.id,
|
|
exerciseId: exercise.id,
|
|
score: result.score,
|
|
timeSpent: result.time
|
|
});
|
|
```
|
|
|
|
## Manutenção
|
|
|
|
### 1. Dependências
|
|
```bash
|
|
# Atualizar deps
|
|
yarn upgrade-interactive --latest
|
|
|
|
# Auditar segurança
|
|
yarn audit
|
|
|
|
# Limpar cache
|
|
yarn cache clean
|
|
```
|
|
|
|
### 2. Backup
|
|
- Database dumps
|
|
- Logs históricos
|
|
- Configurações
|
|
- Assets
|
|
|
|
## Contribuição
|
|
|
|
### 1. Setup
|
|
```bash
|
|
# Clone
|
|
git clone https://github.com/org/repo.git
|
|
|
|
# Install
|
|
yarn install
|
|
|
|
# Dev
|
|
yarn dev
|
|
```
|
|
|
|
### 2. Guidelines
|
|
- Código limpo
|
|
- Testes completos
|
|
- Documentação clara
|
|
- Pull requests concisos |