Ir para o conteúdo

Plataforma

Um milhão de linhas de legado rodando em Go ou Rust em 30 dias.

Modelos com fine-tuning leem o repositório inteiro de uma vez e reescrevem tudo fatia por fatia. Cada fatia é reproduzida contra o seu tráfego de produção e aprovada por um engenheiro que entrega código há mais de 25 anos.

codehero · pipeline

  1. Ingestão

    Tudo o que está na árvore

  2. Mapa

    Um único grafo de dependências

  3. Reescrita

    Fatia por fatia

  4. Verificação

    Paridade em tráfego real

  5. Entrega

    Virada sem janela de manutenção

Pipeline

Cinco etapas automatizadas. Um engenheiro sênior assina cada uma.

O mesmo pipeline encara um monólito PHP e um milhão de linhas de COBOL. O modelo que lê o código muda conforme o dialeto. Quem assina é sempre um dos nossos melhores engenheiros, com mais de 25 anos de código em produção.
  1. 01

    Ingestão

    Tudo o que está na árvore

    Código-fonte, scripts de build, agendas de jobs, schemas e stored procedures entram juntos. Todas as linguagens da árvore são analisadas em paralelo.

  2. 02

    Mapa

    Um único grafo de dependências

    Módulos, chamadas, fluxos de dados e código morto caem num só grafo. As fronteiras entre serviços saem direto da estrutura dele.

  3. 03

    Reescrita

    Fatia por fatia

    Modelos com fine-tuning reescrevem uma fatia delimitada por vez em Go, Rust, TypeScript ou SQL idiomáticos, com os testes escritos antes.

  4. 04

    Verificação

    Paridade em tráfego real

    Entradas gravadas de produção rodam no sistema antigo e no novo. Corrigimos cada diferença, ou você a aprova por escrito.

  5. 05

    Entrega

    Virada sem janela de manutenção

    O tráfego muda fatia por fatia. O sistema antigo fica aquecido de prontidão até o novo assumir a carga inteira.

Modelos com fine-tuning

Treinados no código que todo mundo esqueceu.

Os modelos de fronteira escrevem bom código para o GitHub de hoje. Sistemas legados são escritos em dialetos que quase não existem lá. Fizemos fine-tuning dos nossos modelos em pares de código legado e moderno, então eles sabem o que significa um copybook, como um step de JCL passa um dataset para o próximo e o que uma action do Struts fazia de verdade. Mande o seu sistema e em 48 horas você sabe exatamente o que ele exige.

Dialetos em que os modelos foram treinados

  • COBOL
  • JCL
  • CICS
  • RPG IV
  • PL/I
  • Natural
  • Fortran
  • VB6
  • Delphi
  • PowerBuilder
  • ColdFusion
  • PHP 4–5
  • Perl
  • Classic ASP
  • Java EE
  • Struts
  • PL/SQL
  • T-SQL
  • DB2 SQL
  • Oracle Forms
  • ABAP
  • AngularJS
  • Um especialista para cada família

    Fine-tunings separados para mainframe, midrange, desktop, web e dados. Cada um conhece os idiomas da sua família e sabe onde estão as armadilhas.

  • Código que o seu time vai querer manter

    Go, Rust ou TypeScript idiomáticos, com os nomes, os testes e a estrutura que um engenheiro sênior escreveria. Seu time lê desde o primeiro dia.

  • Seu código continua seu

    Seu repositório nunca treina nossos modelos sem o seu consentimento por escrito. No on-premise, os pesos também ficam dentro do seu prédio.

Grafo real de produção

É assim que a plataforma enxerga um sistema.

Este é um serviço em Go rodando em produção. Trocamos os nomes dos pacotes por M01 a M45 e deixamos a estrutura exatamente como é. Arraste o controle de como o código está hoje até como ele se separa pelas fronteiras de domínio. A classe de cada nó sai do próprio grafo: um módulo dentro de um só domínio ganha reescrita mecânica, e um módulo que quatro domínios seguram ganha um engenheiro que corta a fronteira na mão. O seu sistema recebe este mapa nos primeiros 3 dias.

Como está hoje

Reescrita mecânica60%

Fronteira cortada por engenheiro29%

Candidato a exclusão11%

45 módulos, 167 dependências e 45,990 linhas em 7 domínios. Grafo real de um serviço em produção, nomes de pacote removidos, nenhuma outra edição. As três classes são contadas a partir da estrutura do próprio grafo.
O mesmo grafo em tabela
Ordenado por tamanho. Um módulo é mecânico quando fica dentro de um domínio, vai para um engenheiro quando três ou mais domínios dependem dele ou quando está em um ciclo, e vira candidato a exclusão quando ninguém o importa e ele não é ponto de entrada.
MóduloLinhasImportado porImportaDomínioClasse
M01326loc010S01Reescrita mecânica
M02142loc03S02Reescrita mecânica
M0355loc03S02Reescrita mecânica
M0489loc03S02Reescrita mecânica
M055,194loc315S03Fronteira cortada por engenheiro
M06239loc51S03Fronteira cortada por engenheiro
M07884loc200S03Fronteira cortada por engenheiro
M08485loc46S03Reescrita mecânica
M099,835loc47S03Fronteira cortada por engenheiro
M10514loc20S03Reescrita mecânica
M11677loc15S03Reescrita mecânica
M12236loc411S03Fronteira cortada por engenheiro
M13187loc33S04Fronteira cortada por engenheiro
M14454loc11S05Reescrita mecânica
M1558loc31S05Reescrita mecânica
M16356loc42S05Reescrita mecânica
M17247loc42S05Reescrita mecânica
M1859loc31S04Fronteira cortada por engenheiro
M19139loc00S04Candidato a exclusão
M20330loc132S04Fronteira cortada por engenheiro
M21414loc11S06Reescrita mecânica
M221,670loc33S06Reescrita mecânica
M231,218loc180S06Fronteira cortada por engenheiro
M242,574loc153S06Fronteira cortada por engenheiro
M25163loc41S04Fronteira cortada por engenheiro
M26251loc25S04Reescrita mecânica
M27161loc12S04Reescrita mecânica
M2899loc20S04Reescrita mecânica
M2945loc00S04Candidato a exclusão
M3025loc00S04Candidato a exclusão
M311,417loc240S04Fronteira cortada por engenheiro
M3282loc10S04Reescrita mecânica
M3330loc41S04Fronteira cortada por engenheiro
M34141loc31S03Reescrita mecânica
M3579loc11S03Reescrita mecânica
M363,036loc310S03Reescrita mecânica
M37173loc11S03Reescrita mecânica
M382,501loc19S03Reescrita mecânica
M391,452loc34S03Reescrita mecânica
M4050loc11S03Reescrita mecânica
M412,148loc09S01Candidato a exclusão
M42167loc01S01Candidato a exclusão
M434,873loc215S07Reescrita mecânica
M442,241loc110S07Reescrita mecânica
M45474loc213S07Reescrita mecânica

Bancada de paridade

Mesmas entradas, mesmas saídas, até o centavo.

Cada fatia roda as mesmas entradas gravadas no sistema antigo e no novo. Comparamos as saídas campo a campo, até o centavo, e a fatia só entra em produção com o diff vazio. É por isso que a data vai para o contrato.

  • O seu tráfego de produção gravado é a suíte de testes
  • Comparação campo a campo, incluindo arredondamento e casos-limite de datas
  • Cada diferença aceita é aprovada por você, por escrito
Sistema legadoSistema novoDiff
  • ACCT 0048213 41.36ACCT 0048213 41.36
  • ACCT 0048214 0.00ACCT 0048214 0.00
  • ACCT 0051120 1,208.04ACCT 0051120 1,208.04
  • ACCT 0051121 17.90ACCT 0051121 17.90
  • ACCT 0060007 342.11ACCT 0060007 342.11
  • ACCT 0060008 5.02ACCT 0060008 5.02
Diff0 diferenças

As alternativas

Três formas de modernizar. Só uma cabe em 30 dias.

Reescrita manualFerramentas de IA genéricasCodeHero
Tempo até a produçãoDe meses a anosIncerto, trava em escala30 dias por fase
PreçoTempo e materialO tempo dos seus engenheirosFechado por fase, orçado em 48 horas
Prova de comportamentoQA manualNenhumaParidade no seu tráfego
Contexto do repositório inteiroNa cabeça das pessoasPoucos arquivos por vezUm grafo, todas as linguagens
Roda em air gapSimRaramenteSim, no nosso hardware ou no seu
Quem responde pelo resultadoUm time grandeVocêUm engenheiro sênior com 25+ anos