Guia essencial para desenvolvimento profissional e colaborativo de projetos de foguetemodelismo
Este repositório contém as diretrizes e boas práticas adotadas pela equipe Serra Rocketry para garantir que nossos projetos sejam:
- Profissionais: Organizados e documentados adequadamente
- Colaborativos: Fáceis de contribuir e revisar
- Sustentáveis: Mantidos e evoluídos ao longo do tempo
- Modulares: Componentes independentes e reutilizáveis
Versionamento não é Backup - É uma Máquina do Tempo Colaborativa
Entenda a diferença fundamental entre fazer backup e versionar código:
- Backup: Cópia estática dos arquivos em um momento
- Versionamento (Git): História completa de TODAS as mudanças, com contexto
Por que isso importa?
- 🔍 Rastreabilidade: "Por que mudamos o sensor no ano passado?" - Git tem a resposta
- 🛡️ Segurança: Se algo quebrar, você sabe EXATAMENTE qual mudança causou
- 📊 Portfólio: Suas contribuições ficam registradas no seu perfil GitHub
- 🤝 Colaboração: Várias pessoas trabalhando sem conflitos
O que você aprenderá:
- Fluxo Fork → Branch → Commit → Pull Request
- Estratégia de branches para competições
- Como escrever commits e PRs profissionais
- Comandos Git essenciais
Estrutura Profissional de Repositórios
Aprenda a organizar seus projetos de forma que qualquer pessoa consiga entender e contribuir:
- Estrutura de diretórios (
docs/,firmware/,hardware/,test/) - O que versionar e o que ignorar (
.gitignore) - Documentação distribuída: cada coisa em seu lugar
- Templates de README, CHANGELOG, e documentação técnica
Benefícios:
- ⚡ Onboarding rápido de novos membros
- 📖 Documentação sempre atualizada e fácil de encontrar
- 🔧 Manutenção simplificada do código
Modularidade, Reutilização e Filosofia Unix
Princípios fundamentais para desenvolvimento de software sustentável:
Cada projeto deve fazer UMA coisa bem feita:
- ✅ ignitor: Apenas aciona ignitores remotamente
- ✅ thrust-stand: Apenas mede empuxo em bancada
- ❌ Misturar os dois: Ignitor pegando dados de thrust-stand para transmitir → Complexidade desnecessária
Quando separar em repositórios diferentes vs quando juntar:
- Repositórios separados: Projetos independentes (ignitor vs thrust-stand)
- Fork: Variações de um mesmo projeto (satellite ← fork de flight-computer)
- Monorepo: Quando há alta interdependência (firmware + ground-station)
Use bibliotecas mantidas pela comunidade:
- Sensor MPU6050? Use a biblioteca do Jeff Rowberg
- LoRa? Use RadioHead ou a biblioteca oficial
- Foco: resolver o PROBLEMA do foguete, não reimplementar protocolos
Exemplos práticos com os repositórios da Serra Rocketry incluídos!
Fungibilidade, Padronização e Resiliência para Ambientes Hostis
Hardware deve ser projetado para ser facilmente substituível e intercambiável, mas também robusto e resiliente para suportar condições extremas:
Partes devem ser trocáveis sem redesenhar o sistema:
- ✅ Sensores com interface I2C padrão (trocar MPU6050 por BNO055 sem mudar PCB)
- ✅ Microcontroladores pin-compatible (ESP32-S3 → ESP32-C3)
- ✅ Conectores padronizados (JST, Molex)
- ❌ Sensores soldados direto na PCB sem alternativa
Adote padrões de mercado:
- Conectores: JST-XH para sinais, XT30/XT60 para potência
- Protocolos: I2C, SPI, UART (evite interfaces proprietárias)
- Form-factors: PC104 para CubeSats, tamanhos comerciais de baterias
Hardware de foguete enfrenta condições extremas:
- Vibração: 10-30G durante lançamento, teste com furadeira/subwoofer
- Soldas: Inspeção rigorosa, soldas brilhantes e côncavas (soldas frias = falha)
- Fixação: Tudo parafusado ou com hot glue, nada solto
- Strain relief: Cabos com alívio de tensão (hot glue/heat shrink na raiz)
- Testes: Vibração, queda, temperatura ANTES do lançamento
- Proteção: Conformal coating, cases rígidos, kit de reparo de campo
- Módulos substituíveis (sensor board, power board, telemetry board)
- Pontos de teste acessíveis
- Documentação de pinagem e especificações elétricas
Resultado: Hardware que sobrevive ao transporte E ao lançamento!
- 💼 Portfólio profissional que impressiona recrutadores
- 🧠 Aprende práticas da indústria usadas em empresas de tecnologia
- 🤝 Colabora melhor com a equipe e comunidade open-source
- 🚀 Produtividade maior - menos tempo corrigindo problemas bobos
- 📈 Conhecimento preservado - não perdemos know-how quando alguém sai
- 🏆 Projetos melhores - qualidade que se destaca em competições
- ⏱️ Sustentabilidade - código que dura anos, não semestres
- 🔧 Manutenibilidade - fácil de entender e modificar
- 🌍 Visibilidade - projetos bem documentados atraem colaboradores
- Novo na equipe? Comece por Git e GitHub
- Criando um projeto? Veja Organização e Software
- Projetando hardware? Leia Hardware
- Contribuindo? Siga o fluxo Fork → PR explicado em Git e GitHub
Este documento é vivo e evolui com a equipe!
Encontrou algo confuso? Tem uma sugestão?
- Faça um fork deste repositório
- Edite o arquivo relevante
- Abra um Pull Request explicando sua melhoria
Dúvidas? Abra uma Issue para discussão.
- 🎮 Learn Git Branching - Tutorial interativo
- 📖 Pro Git Book - Livro completo gratuito
- 📺 Awesome Embedded - Recursos para sistemas embarcados
- 🌐 Repositórios da Serra Rocketry
- 💬 Entre em contato com a equipe para acesso aos canais de comunicação
Mantido por: Equipe Serra Rocketry - IPRJ/UERJ
Licença: MIT - Use, modifique e compartilhe livremente!