born3dev

source code generation that fits your programming style!!!



O Projeto

Toda aplicação a ser desenvolvida, deve começar pelo que realmente entrega valor ao cliente, porém uma boa parte das aplicações é composta por rotinas de apoio, que em geral são resolvidas através de CRUDs, simples ou mesmo com algum nível de complexidade, mas que mesmo não tendo a importância do “core” da aplicação, deverão ser desenvolvidas em algum momento.

Mesmo algumas rotinas “core” da aplicação, podem partir de algo mais simples e serem melhoradas até atender à necessidade do cliente. Muitas vezes partir de um CRUD existente, ajuda bastante no tempo de entrega do produto.

Os frameworks que disponibilizam rotinas de “scaffolding”, alcançam bastante sucesso, exatamente porque resolvem esse grande problema das rotinas menos importantes e a necessidade de um ponto de partida para aquelas que realmente são “core”.

As rotinas de “scaffolding” geram código, da forma como foram pensadas pelos desenvolvedores dos frameworks, não sendo tão simples sua adaptação para o estilo de codificação dos desenvolvedores.

O born2dev disponibilizará uma forma visual, através da web, que o desenvolvedor utilizando uma linguagem de domínio específico (DSL – Domain Specific Language) simples, poderá definir templates do seu próprio código, que gerará ao final do processo, códigos-fonte com o seu próprio estilo de desenvolvimento, ou mesmo, o estilo definido pelo time do projeto.

born2dev born2dev born2dev

Operação da Plataforma

O funcionamento será simples:

  1. O desenvolvedor acessará o site da aplicação, criará ele mesmo um usuário. Receberá seu acesso via e-mail;
  2. Definirá os templates para cada arquivo a ser gerado, especificando: a linguagem, framework alvo, estrutura de diretório onde o arquivo gerado deverá ficar localizado. Definirá templates específicos para aqueles arquivos que são gerados um para cada projeto (menus de acesso, arquivos de rotas, telas de login, arquivos de tradução para diferentes línguas) e aqueles que serão gerados um para cada tabela da aplicação (APIs REST, modelos de dados, DAOs, TOs, formulários CRUD). A definição dos templates deverá ser feita em editor com qualidade equivalente aos editores atuais, como: VS Code, Atom e Sublime;
  3. Definirá as informações das tabelas de bancos de dados, que as aplicações a serem geradas utilizarão. As tabelas são definidas de forma independente de projetos, pois uma mesma tabela poderá ser utilizada de forma diferente por “n” projetos. Na definição das tabelas, já serão informadas;
  4. Definirá o projeto, onde indicará:
  5. Informações específicas do projeto
    • Qual linguagem e framework será utilizado
    • Quais tabelas serão utilizadas. Complementará ou alterará as definições que virão como padrão das definições das tabelas
    • Gerará os códigos-fonte que serão zipados em um arquivo e disponibilizados para download.
  6. O desenvolvedor poderá empacotar seus templates na forma de uma “Solução”, como por exemplo “Aplicação alvo React Native” ou “Aplicação alvo Laravel” e disponibilizar para os demais usuários da aplicação, que por sua vez, farão um “fork” da solução e poderão dar uma pontuação de 1 a 5 estrelas, facilitando que demais usuários possam ter soluções práticas, prontas para uso. A idéia é lançar o born2dev com algumas soluções já disponíveis para os usuários. Elas facilitarão o aprendizado do uso da ferramenta e da DSL.
A seguir uma breve descrição das opções que estarão disponíveis.

Configurações

menu 1

Compartilhamento

menu 1

A ideia é que eu desenvolva alguns exemplos de aplicações em algumas linguagens e frameworks, para que usuários iniciantes na plataforma, possam ter referências, do que é possível ser desenvolvido e também possam testar a geração, antes de desenvolver suas próprias soluções.

Projetos

menu 1