Demanar a la IA que construeixi l'eina en lloc de fer la tasca
I si la millor manera d'usar la IA per a migracions de codi no és demanar-li que faci la feina, sinó demanar-li que construeixi l'eina que la faci? Aquest enfocament contraintuïtiu va transformar com el nostre equip gestiona les refactoritzacions a gran escala, reduint errors en un 95% i completant migracions en hores en lloc de dies.
El Problema
Qualsevol base de codi de mida raonable exigeix canvis a gran escala: migrar llibreries, actualitzar APIs obsoletes o refactoritzar components. L'enfocament tradicional amb IA es veu així:
Ei IA, si us plau actualitza tots els components tooltip de @old-design-system a @new-design-system
I llavors comencen els problemes:
- La IA lluita per mantenir el context a través de centenars d'arxius
- El consum de tokens explota a mesura que processa cada arxiu
- Les taxes d'error augmenten amb l'escala
- Passes més temps arreglant els errors de la IA que fent la migració tu mateix
El Millor Enfocament
En lloc de demanar a la IA que realitzi la migració directament, li demanem que construeixi una eina que realitzi la migració. Així és com funciona:
Pas 1: Migració Manual
Primer, tria un exemple representatiu i migra manualment. Això serveix per a dos propòsits:
- Entens la transformació exacta necessària
- Tens un exemple concret per mostrar a la IA
// Abans: Utilitzant tooltip anticimport { Tooltip } from '@old-design-system';<Tooltip content="Hola" position="top"><Button>Passa'm el ratolí</Button></Tooltip>// Després: Utilitzant tooltip nouimport { Tooltip } from '@new-design-system';<Tooltip title="Hola" placement="top"><Button>Passa'm el ratolí</Button></Tooltip>
Pas 2: Extreure el Patró
Obté el diff dels teus canvis i documenta tant les signatures del component antic com del nou:
- import { Tooltip } from '@old-design-system';+ import { Tooltip } from '@new-design-system';- <Tooltip content={text} position={position}>+ <Tooltip title={text} placement={position}>
Pas 3: Construir l'Automatització
Ara, en lloc de demanar a la IA que realitzi centenars de canvis similars, li demanem que construeixi un codemod:
Basat en aquest exemple de migració, construeix un codemod que:1. Actualitzi la declaració d'importació2. Renombri la prop 'content' a 'title'3. Renombri la prop 'position' a 'placement'
La IA generarà un codemod adequat utilitzant eines com jscodeshift que es pot executar en tota la teva base de codi.
Resultats del Món Real
Recentment vam utilitzar aquest enfocament a Buffer per migrar components tooltip del nostre sistema de disseny heretat a un de nou. Els resultats van ser impressionants:
- 95% taxa d'èxit: La majoria dels components van migrar perfectament sense intervenció manual
- 2 hores en lloc de 2 dies: Tota la migració es va completar en una fracció del temps esperat
- 5% casos extrems: Les fallades van ser casos estranys i variants de tooltip heretades que ni tan sols sabíem que existien
Compara això amb els nostres intents anteriors on vam demanar a la IA que fes la migració directament:
- 60% taxa d'èxit
- Necessitat constant d'arranjaments manuals
- Límits de tokens assolits freqüentment
- Transformacions inconsistents a través dels arxius
Per Què Funciona Això
La IA sobresurt en el reconeixement de patrons i la generació de codi, però lluita per mantenir el context en operacions a gran escala. Demanar-li que construeixi una eina aprofita les seves fortaleses:
- Tasca única enfocada: Construir un codemod és una tasca coherent, no centenars de micro-tasques
- Abstracció de patrons: La IA es pot centrar a entendre el patró de transformació en lloc d'aplicar-lo
- Sortida comprovable: Pots provar el codemod en uns pocs arxius abans d'executar-lo a tot arreu
- Reutilitzable: El codemod es pot compartir amb el teu equip o utilitzar per a migracions similars
La Bellesa del Codi Rebutjable
Mai revisem el codi del codemod que genera la IA. Per què? La seva qualitat no importa — s'executa una vegada i s'elimina després de la migració.
Aquest és l'escenari perfecte per al "vibe coding" — deixar que la IA generi codi sense revisió. Només importa el resultat: Va funcionar la migració? Són correctes els arxius transformats?
Pensa-hi:
- El codemod s'executa una vegada, després s'elimina
- Revisaràs els canvis reals en el teu pull request de totes maneres
- Si falla, iteres
- Ningú manté ni construeix sobre aquest codi
Aquest canvi de mentalitat t'allibera. Salta la perfecció de l'script de migració; concentra't en el codi migrat.
Una Observació Interessant
Mentre provava Claude Code en una tasca de migració similar, vaig notar alguna cosa fascinant. La IA va començar fent canvis arxiu per arxiu, però després de processar uns pocs arxius, es va aturar i va començar a escriure scripts de migració en el seu lloc.
Va crear múltiples scripts bash per a diferents casos extrems en lloc d'un codemod unificat — no perfecte, però mostra que les eines de IA ja reconeixen aquests patrons. La IA es va adonar autònomament que construir una eina supera fer la tasca manualment.
Quan Utilitzar Aquest Enfocament
Aquesta tècnica funciona millor per a:
- Migracions de llibreries
- Actualitzacions d'API
- Refactorització de components
- Qualsevol transformació repetitiva amb un patró clar
És menys adequada per a:
- Canvis únics
- Refactorització complexa que requereix judici humà
- Canvis sense un patró clar
Conclusió
La meta-lliçó: fes que la IA construeixi la canya de pescar, no que atrapi cada peix. Quan t'enfrontis a un canvi de codi a gran escala, resisteix bolcar tota la tasca en la IA. En el seu lloc:
- Fes un exemple manualment
- Fes que la IA construeixi l'automatització
- Revisa i executa l'eina
Aquest enfocament va transformar com el nostre equip gestiona les migracions. Els companys amb qui el comparteixo es meravellen dels resultats. Utilitza la IA més intel·ligentment, no menys.
Articles relacionats:
- Writing Powerful Claude Code Skills with npx + Bun - Amplia les capacitats d'IA amb skills personalitzats
- Why I Switched from Bun to Deno for Claude Code Skills - Consideracions de runtime per a eines d'IA