Definições Relacionadas
- Scaffolding: Processo que cria automaticamente a estrutura inicial de um projeto, facilitando o início do desenvolvimento.
- Geração de Código: Processo automatizado de criação de código a partir de modelos ou templates, com o objetivo de reduzir a duplicação e acelerar o desenvolvimento.
- Ferramentas de Plataforma: Conjunto de ferramentas que auxiliam na criação, gestão e manutenção de projetos e sistemas, incluindo a geração de código, configurações, automação de deploy e integração com outras plataformas.
Contexto
As empresas possuem uma base de código que é utilizada na maioria dos projetos. Praticamente, um novo projeto é composto pelas particularidades do domínio, o código base para o funcionamento e as configurações.
No entanto, é necessário garantir que os projetos sigam uma estrutura aceite pela equipa. Seria benéfico que essa estrutura fosse a mesma para todos os projetos da mesma natureza.
Benefícios
- Estrutura consistente nos projetos
- Útil para a equipa de plataforma
- Padronização do código
- Configuração automática
- Redução de código repetitivo (boilerplate)
- Componentização em alguns casos
- Foco na implementação das regras de negócio
- Curva de aprendizagem mais rápida
- Facilita a integração de novos membros
Ferramentas de Geração de Código Mais Conhecidas
Os frameworks e linguagens mais populares oferecem ferramentas de scaffolding que ajudam a criar rapidamente a estrutura do projeto. Alguns exemplos:
- Dotnet, Dotnet-code generator: Gera automaticamente a estrutura do projeto e o código base para aplicações .NET.
- Rails scaffolding: Cria automaticamente o código e as views para um CRUD básico em Ruby on Rails.
- PHP Laravel artisan: Ferramenta de linha de comando que gera código e estrutura para projetos Laravel.
- Service Weaver: Gera a estrutura de microserviços em .NET, facilitando a criação e configuração de serviços.
- Ferramenta Java: *Ferramentas como Spring Boot e JHipster que geram código para aplicativos Java.
*- Ferramenta Node.js: Ferramentas como Yeoman que geram templates de projetos em Node.js.
- Outros exemplos: Ferramentas como Angular CLI e Vue CLI para geração de projetos front-end.
Como Criar uma Ferramenta de Geração de Código
- Defina um template ou modelo (pastas, configurações e códigos comuns).
- Padronize autenticação, conexão com a base de dados e configurações no template.
- Gere as pastas e arquivos automaticamente.
- Copie ou escreva os arquivos com o conteúdo do template.
- Permita a geração do projeto de acordo com parâmetros (arquitetura, base de dados, linguagem, etc.).
- Se necessário, ofereça interfaces CLI e Web, conforme a preferência do desenvolvedor.
Grandes Empresas: Equipa de Plataforma
A maioria das grandes empresas tem uma equipa, chamada formalmente de Team de Plataforma, que se dedica à criação de ferramentas e plataformas para gerar a estrutura dos projetos, migrar dados, gerar código, fazer deployment e configurar ambientes em cloud.
Os ganhos reportados por essas empresas são significativos, incluindo aumento de produtividade, integração mais rápida de novos desenvolvedores e entrega mais ágil de produtos. Algumas empresas vão além, automatizando MVPs com base nos seus indicadores internos, utilizando as ferramentas mais comuns.
Conclusão
Criar ferramentas que reduzem o esforço de desenvolvimento pode aumentar a produtividade da equipa e acelerar a entrega de projetos. É importante estabelecer um padrão de organização e implementá-lo em uma ferramenta, o que trará diversos benefícios.
Exemplos de Ferramentas
- AppGen: https://github.com/ortizdavid/appgen-files
- DbSample: https://github.com/ortizdavid/dbsample
- Go-Packager: https://github.com/ortizdavid/go-packager
- Data Source Generator: https://github.com/ortizdavid/data-source-generator
Top comments (0)