Supporto tecnico / di visualizzazione per aiutare noi stessi ad avere un'immagine più chiara del codice? [duplicare]

4

A volte quando il codice è troppo complesso, lo suddivido in parti.

Esiste un altro tipo di tecnica / visualizzazione per avere un'immagine più chiara del codice?

    
posta janoChen 08.03.2011 - 04:56
fonte

7 risposte

2

SciTools Understand

Bit e brani dai commenti: Perché questo strumento è così buono? Cosa non va bene?

Non so cosa dire davvero. L'ho usato per, beh, già da un po 'di tempo (anni) ed è davvero uno strumento tremendamente utile nell'analisi di grandi progetti. Ha sostituito il mio IDE in un modo. Non mi affido tanto ai grafici; più sui meccanismi di ristrutturazione e manipolazione di variabili e così via. Controlla la loro pagina.

    
risposta data 08.03.2011 - 05:23
fonte
2

All'interno di un progetto completo trovo che i diagrammi delle classi sono molto utili, con un diagramma generato dalla macchina a portata di mano se un progetto esistente non lo fa avere documentazione Esiste una gamma di strumenti per generare automaticamente diagrammi di classe e generalmente funzionano bene per piccoli progetti. Mi piace dividere progetti più grandi, sia in livelli che in gruppi di classi, ma ciò richiede un certo livello minimo di coerenza di classe per essere utile.

All'interno di un singolo file due cose per Visual Studio che trovo a portata di mano sono la ctrl-wheel per ingrandire il codice e il Code Map plug-in di AX Tools. Entrambi sono abbastanza buoni per avere un'idea della struttura del file.

Nella mia esperienza ci sono due momenti abbastanza diversi in cui vuoi farlo. Quando si progettano diagrammi software, è possibile pianificare la struttura e adattarla alle proprie esigenze. Per questo quasi tutti gli strumenti lo faranno, perché non ha bisogno di essere molto interattivo con il codice, quando il codice arriva alla fine. L'altro caso, ovviamente, è quando si ha un pasticcio gigante scaricato in grembo e vogliono capirlo. Per questo la chiave del reverse engineering è la chiave, e sfortunatamente non posso raccomandare alcuno strumento specifico. Trovo che tutti lottino una volta entrati in centinaia di classi con accoppiamento elevato e bassa coesione.

    
risposta data 08.03.2011 - 05:19
fonte
1

In Visual Studio puoi generare un diagramma di classe dal tuo codice che è abbastanza utile per ottenere una panoramica delle classi, dei loro contenuti e delle loro relazioni. La parte migliore è che si tratta di un diagramma "vivo" e modificabile, in quanto è possibile modificare il diagramma e le modifiche influiscono sul codice.

    
risposta data 08.03.2011 - 05:18
fonte
0

Molto simile ad alcuni degli altri. Dovresti studiare l'apprendimento di UML Ci sono alcuni buoni strumenti che generano automaticamente questi diagrammi dal tuo codice esistente, ma io Ho trovato molto utile creare questi diagrammi in primo piano prima di iniziare un progetto e modificarli mentre procedo.

    
risposta data 08.03.2011 - 05:21
fonte
0

Forse non è lo strumento che usi per visualizzare il codice, ma come organizzarlo / dividerlo.

Oggi ci sono molte applicazioni in Programmazione funzionale e Programmazione orientata agli oggetti, ma sono così incasinate, qualcosa che io chiamo "Codice Spaghetti Object Oriented".

Le tue frasi ("for", "foreach", "while") o le frasi alternate ("if" / "switch" / "case") sono troppo lunghe (più di 6 righe)? Forse dovresti spostare quel codice in una nuova funzione / metodo.

Stai organizzando il tuo codice in namespace / moduli / pacchetti?

Il codice delle lezioni è troppo lungo? forse dovresti rompere una singola classe in una classe "grandparent", una "parent classe" e una "child" class.

Le classi di solito hanno 4 gruppi di metodi, inizializzazione (metodi costruttore e helper), esecuzione (metodi che si usano quando l'istanza è istanziata e metodi helper), finalizzazione (metodi distruttore e helper), più "accessori", metodi per accedere proprietà.

I metodi delle tue classi, sono ben definiti, in quale gruppo appartiene?

Se il tuo codice è incasinato, anche la tua visualizzazione, i grafici, i diagrammi di flusso, i messaggi di ricerca in lingua inglese, qualunque cosa, sembreranno incasinati.

U.M.L. può aiutarti a organizzare il tuo codice. Non hai bisogno di un U.M.L. applicazione, per il tuo scenario, una lavagna e alcuni indicatori ti aiuteranno.

Ma se fai diagrammi del tuo codice, devi pensare a invertire il processo, a modificare i diagrammi e, successivamente, a modificare il codice sulle modifiche che fai ai tuoi diagrammi ...

    
risposta data 08.03.2011 - 18:39
fonte
0

Credo che il mio approccio più semplicistico, eppure vecchio stile, sia quello di scrivere il codice in pseudo-codice.

link

Fondamentalmente creo un nuovo file di testo, e scrivo solo tramite commenti e / o pseudo-code il flusso logico di base del codice che ho bisogno di creare.

Cerco di identificare quali sezioni sono riutilizzabili o devono essere eseguite o copiate molte volte e poi convertirle nel formato riutilizzabile per la mia lingua, cfc, tag personalizzati, cfscript ecc. Sono sicuro che ognuno di noi ha il nostro metodi per le nostre lingue.

Cerco anche di identificare enormi blocchi di codice SQL che possono e devono essere spostati su viste e stored procedure ...

Sono stato fuori pratica nel fare ciò nell'ultimo anno.

Ma aiuta davvero a programmare, se pianifico il codice, per assicurarmi di avere un'idea chiara di quali esigenze funzionali sto incontrando o cambiando.

Diventa particolarmente difficile quando il 99% delle volte sto modificando il codice di qualcun altro, e non sempre lo capisco. Quindi diventa una lotta lasciare quel codice così com'è, per non interferire con la sua funzionalità, mentre aggiunge / cambia funzionalità che è il mio compito.

Non c'è una risposta, solo che tutti abbiamo bisogno di migliorare e più pratica nella pianificazione del nostro codice.

    
risposta data 09.03.2011 - 15:38
fonte
0

Ho un codice java molto grande composto da più progetti. Il codice è così grande che un cervello umano non può gestirlo :-) Il trucco che faccio è di decodificare il mio codice in un modello UML e quindi creare viste grafiche dal mio codice usando il modello UML. Tecnologia davvero potente e sorprendente. Il mio modello può gestire tutti i miei progetti in un singolo modello UML e posso descrivere le interazioni del progetto direttamente a livello di astrazione UML. Posso anche selezionare di visualizzare solo le informazioni rilevanti. La qualità grafica è così buona che è possibile visualizzare enormi pacchetti, composti da centinaia di classi all'interno di un singolo diagramma di classe !!

    
risposta data 09.03.2011 - 15:18
fonte

Leggi altre domande sui tag