DEV Community

Cover image for Ferramentas para Estruturação de Projetos: Geração de Código e Configurações

Ferramentas para Estruturação de Projetos: Geração de Código e Configurações

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)