DEV Community

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

Posted on

1

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

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)