Qual è l'approccio migliore per conoscere un grande sistema come un sistema CMS o forum che non ha documentazione?

4

Il mio problema è il seguente; Ho bisogno di conoscere un sistema totalmente nuovo, ad esempio Wordpress, Drupal, o un framework come Symfony, o forse un grande sistema di forum come PhpBB.
Supponiamo che non abbia alcuna documentazione, ma il codice è buono.

Quello che finisco è che inizio a index.php e clicco sul primo include, quindi questo mi porta al prossimo file. Ma poi richiede un altro file e quel file ne richiede un altro, quindi alla fine dimentico anche dove ho iniziato e non ho idea di quale fosse la richiesta precedente.

Quindi la mia domanda è, c'è un buon modo per farlo? Come disegnare un grafico del flusso dell'applicazione o qualcosa del genere. Quando voglio conoscere un nuovo sistema, all'inizio vorrei ottenere il " big picture " su cosa viene dopo cosa, e quali file fanno quale parte del sistema, quale funzione viene chiamata quando, cose come queste.

Fondamentalmente tutto ciò che voglio fare è scrivere un flusso di applicazioni come questo quando inizio con un nuovo sistema.

C'è un bel modo per farlo senza prendere troppo tempo e confusione?
Ci sono software o strumenti di debug per questo?
Ci sono dei tipi di grafici per questa situazione che posso applicare qui?
Puoi suggerirti piccoli trucchi o suggerimenti su come conoscere i grandi sistemi e che cosa stai cercando per primo senza approfondire il codice troppo a fondo perdendo troppo tempo su parti non proprio importanti?

    
posta kissgyorgy 19.08.2012 - 11:05
fonte

1 risposta

3

Questa domanda è molto ampia, quindi solo qualche consiglio generale.

Is there a nice way tot do this without taking too much time and confusion ?

Ne conosco solo uno: chiedi agli autori del sistema se possono darti qualche spiegazione. Se non riesci a cogliere nessuno degli autori, dovrai iniziare la reingegnerizzazione - nessuna scorciatoia.

Are there any softwares or debugging tools for this ?

Solo gli stessi strumenti che usi per eseguire il debug dei tuoi programmi. Ad esempio, se il sistema è scritto principalmente in PHP, utilizza il tuo debugger PHP preferito.

Are there any chart types for this situation which I can apply here ?

Hai già suggerito i diagrammi di flusso da solo. In realtà, se c'è un database sottostante, vorrei aggiungere un modello ER (o utilizzare un diagramma di classe UML come sostituto ERM).

Can you suggest small tricks or tips how you get to know big systems and what are you looking first without digging into the code too deeply wasting too much time on not-really-important-parts ?

L'unico suggerimento generale che posso darti qui: iniziare ad analizzare il modello dei dati (e qualsiasi altra tecnologia sia utilizzata per memorizzare i dati persistenti). Ma onestamente, la cosa giusta da fare dipende pesantemente dal sistema e da ciò che stai cercando di ottenere.

    
risposta data 19.08.2012 - 11:25
fonte

Leggi altre domande sui tag