Refactorizați funcții mari folosind modul Agent al GitHub Copilot

Finalizat

Utilizarea modului Agent al GitHub Copilot este ca și cum ai avea un asistent care este întotdeauna acolo pentru a vă ajuta să vă dezvoltați și să vă întrețineți codul.

În modul Agent, atribuiți sarcini GitHub Copilot folosind solicitări în limbaj natural din panoul de chat. GitHub Copilot începe prin a analiza bazei de cod, folosind sarcina atribuită pentru a stabili contextul necesar. Agentul generează un plan pentru îndeplinirea sarcinii și afișează lista subsarcinilor necesare. Apoi deschide și editează fișierele asociate în editorul de cod. Agentul finalizează analiza, planificarea și implementarea în mod autonom și oferă un comentariu în panoul de chat, astfel încât să puteți monitoriza progresul acestuia. Dacă este necesar, agentul solicită clarificări, informații suplimentare sau permisiunea de a continua cu o anumită acțiune. După ce agentul finalizează sarcina, puteți revizui modificările și puteți aproba (sau respinge) modificările individuale. Rămâi în control pe tot parcursul procesului.

Cele mai bune practici

Luați în considerare aceste sfaturi pentru a profita la maximum de modul Agent:

  • Împărțiți refactorizarea în pași mici.
  • Revizuiți cu atenție fiecare modificare.
  • Compilați și testați după fiecare pas.

Comenzi comune de refactorizare

Iată câteva exemple de solicitări pentru sarcini comune de refactorizare:

  • "Extrageți codul de validare selectat într-o nouă metodă privată numită ValidateOrder care preia un parametru Order și returnează un bool. Asigurați-vă că toată logica de validare este mutată și că site-ul de apel original utilizează valoarea returnată în mod corespunzător."
  • "Revizuiți codul selectat. Identificați și extrageți toată logica de calcul a taxelor repetate într-o nouă metodă CalculateTax statică privată care ia parametrii necesari (sumă, taxRate, regiune) și returnează suma taxei calculată. Înlocuiți toate calculele duplicate cu apeluri la această metodă."
  • "Revizuiți codul selectat. Convertiți acest lanț if/else într-o expresie de comutare modernă, asigurându-vă că toate cazurile sunt acoperite și că logica rămâne echivalentă. Utilizați potrivirea modelelor acolo unde este cazul și mențineți același tip de returnare."
  • "Revizuiți codul selectat. Extrageți toate prețurile și calculele totale într-o nouă metodă ComputeTotals privată care preia un parametru Comandă, efectuează toate calculele și actualizează proprietățile totale ale comenzii. Asigurați-vă că nu rămâne nicio logică de calcul în metoda originală."

Exemplu de flux de lucru

Să presupunem că aveți o funcție ProcessOrder mare care se ocupă de procesarea comenzilor, inclusiv validarea, calcularea prețurilor, salvarea în baza de date și trimiterea notificărilor. Funcția are peste 200 de linii și trebuie defalcată.

Puteți utiliza următorii pași pentru a refactoriza funcția:

  1. Extrageți primul segment:

    "Extrageți validarea intrării în partea de sus a ProcessOrder într-o nouă metodă ValidateOrder(order) care returnează bool."

  2. Extrageți al doilea segment:

    "Mutați calculele prețurilor într-o nouă metodă ComputeTotals(order) care se actualizează order.Total."

  3. Gestionați logica rămasă:

    Extrageți logica de salvare și notificare în mod similar sau lăsați funcția principală dacă este acum scurtă și clară.

  4. Curățare:

    Redenumiți variabilele, eliminați codul neutilizat și asigurați consecvența.

Aplicarea sugestiilor modului Întreabă

Utilizați defalcarea modului Întreabă pentru a ghida modul Agent:

  • Revizuiți planul propus de modul Întreabă și întrebările ulterioare.
  • Formulați un plan final de refactorizare pentru modul Agent.
  • Utilizați analiza din modul Întreabă pentru a crea o serie de solicitări clare și specifice pentru modul Agent. Utilizați nume de funcții și liste de parametri sugerate în solicitări, acolo unde este cazul.

Sfat

Tratați modul Agent ca pe un dezvoltator junior în echipa dvs. Dați instrucțiuni clare, revizuiți-le munca și corectați-le după cum este necesar.

Ce trebuie să urmăriți în timpul revizuirii

Revizuiți întotdeauna modificările făcute de agent. Luați în considerare următoarea listă de verificare:

  • Conservarea logică: Asigurați-vă că niciun comportament nu este schimbat.
  • Manipularea parametrilor: Copilot ar putea uita să treacă o variabilă necesară.
  • Modificatori de denumire și acces: Confirmați că se potrivesc cu stilul bazei de cod.
  • Linii ratate: Dacă Copilot sare peste o linie, mutați-o manual sau întrebați din nou.

Gestionați rezultatele neașteptate

Când agentul generează un rezultat care nu este cel așteptat:

  • Anulați modificarea sau reveniți la fișier.
  • Încercați un pas mai mic sau o solicitare mai precisă.
  • Remediați manual problemele minore sau cereți Copilot să le corecteze.

Rezumat

Utilizarea modului Agent al GitHub Copilot simplifică procesul de refactorizare a funcțiilor mari. Prin împărțirea sarcinii în pași ușor de gestionat și folosind solicitări în limbaj natural, mențineți controlul, permițând în același timp agentului să se ocupe de munca grea. Revizuiți întotdeauna modificările cu atenție pentru a asigura calitatea codului și integritatea logică.