Come trovare metodi e usi della classe lungo i repository git

3

Abbiamo ottenuto del codice in un repository git utilizzato in diversi progetti (con git repository differenti), il problema è che ora abbiamo così tanti progetti diversi che è difficile tenere traccia dei progetti che saranno interessati e di quando c'è un cambiamento nel modulo condiviso.

C'è un modo per trovare le classi e gli usi dei metodi lungo diversi repository git? O chi gestiresti un'architettura del genere?

    
posta Fgblanch 21.05.2013 - 11:53
fonte

1 risposta

5

Dai un'occhiata ad alcuni strumenti di indicizzazione della qualità del codice e del codice.

FishEye

Per cominciare, potresti usare FishEye, che indicizza il tuo codice e ti consente di interrogare rapidamente il codice da tutti i repository in modo da poter tenere una vista a volo d'uccello dell'intera base di codice.

Ad esempio, puoi cercare un determinato file (ma anche per il contenuto di un file, incluso il nome di un metodo) e troverà biglietti affiliati e changeset che lo hanno modificato e la sua ultima versione nei repository di codice:

Tuttavia,FishEyenoncomprendenecessariamenteilcodiceevedeimetodicomeunitàdatracciare,quindinonpuoidire"trova i call point del metodo M della classe C".

Sonar

Uno strumento di qualità del codice come il Sonar ti consente anche di tenere d'occhio le dipendenze (specialmente se hai una build basata su Maven).

Ad esempio, una vista molto utile è questa:

Tipermettedivedereleconnessionitradiversicomponentiinterminididipendenze,quindisaicheunamodificaaquestocomponentepotrebbeavereunimpattosuglialtri.

Leggi qui per altro.

Anche in questo caso non ti dice realmente a livello di metodo (si basa sul grafico delle dipendenze delle dipendenze binarie della tua build).

Aggiornamento: In realtà, sembra che Sonar faccia persino il tracking a livello di metodo (vedi il blog di SonarSource che ho linkato sopra):

Krugle

Disponibile online per repository di progetti open source, puoi anche distribuire la tua istanza (versione base gratis).

link

CodeSight

Ospita la tua istanza CodeSight.

link

Ricerca elastica

GitHub lo utilizza da gennaio 2013 , quindi se il tuo repository git è GitHub- ospitato puoi già beneficiarne. Altrimenti puoi implementare il tuo.

Esegui il roll out

Probabilmente non consigliabile, ma potresti probabilmente creare un database indicizzato del tuo codice usando un lavoro notturno che analizza i tuoi progetti e usando un motore di ricerca full-text (come Apache Lucene, per esempio), o anche qualcosa di più low-tech di che.

Puoi trovare più strumenti di supporto per l'analisi del codice e la grafica a livello di classe, ma ti ritroverei con grafici molto complicati e illeggibili molto velocemente comunque, per qualsiasi sistema relativamente grande.

Molti sistemi di build hanno plugin per questo tipo di cose.

    
risposta data 21.05.2013 - 15:29
fonte

Leggi altre domande sui tag