Design Code Outside a IDE?

6

Qualcuno progetta codice al di fuori di un IDE? Penso che il design del codice sia ottimo e tutto tranne l'unico posto in cui mi trovo effettivamente codice di progettazione (oltre che nella mia testa) è nell'IDE stesso. Generalmente ci penso un po 'prima di mano ma quando vado a scriverlo, è sempre nell'IDE; no UML o qualcosa del genere. Ora penso che avere UML del tuo codice sia veramente buono perché puoi vedere molto più codice su uno schermo, ma il problema è che una volta che lo digito in UML, devo quindi digitare il codice effettivo e quello è solo un grande duplicato per me.

Per chi lavora con C # e codice di progettazione esterno a Visual Studio (o almeno all'esterno dell'editor di testo di Visual Studio), quali strumenti si usano? Questi strumenti ti consentono di convertire il tuo disegno in vero codice dello scheletro? È anche possibile convertire il codice nel design (quando aggiorni il codice e hai bisogno di un diagramma UML aggiornato o quant'altro)?

    
posta ryanzec 14.03.2011 - 16:45
fonte

7 risposte

10

Quando si tratta di discutere un problema o di progettare, niente batte la Lavagna .

Dovresti utilizzare una lavagna e schizzi UML informali per discutere le cose. Dopodiché dovresti andare all'IDE.

È un po 'noioso avere bozze UML formali e complete per la progettazione perché, quindi, dovrai mantenerle perché tendono a restare indietro quando il codice cambia. Inoltre, puoi sempre generare un diagramma di classe dal tuo codice usando l'IDE.

Leggi anche UML come schizzo , UML come linguaggio di programmazione e UML come BluePrint di Martin Fowler.

    
risposta data 14.03.2011 - 17:07
fonte
2

Per C # lo strumento di diagrammi UML standard è Microsoft Visio. Per Java, uno strumento UML popolare è ArgoUML. Entrambi hanno la capacità di generare codice scheletro dai diagrammi.

    
risposta data 14.03.2011 - 16:51
fonte
2

La domanda che fai è molto comune nella comunità di sviluppo del software. Le persone possono vedere il valore di avere un modello UML del loro codice, ma si rendono anche conto che c'è un sovraccarico in più nella progettazione del modello e poi nella scrittura del codice (anche se lo scheletro del codice proviene dallo strumento di modellazione).

Il mio suggerimento di allenerti (senza il sovraccarico) è se stai facendo un progetto più piccolo che sei in grado di concettualizzare nella tua testa, quindi prova a scrivere il codice prima, poi reverse engineering in uno strumento come Enterprise Architect . Questo è un processo non distruttivo in cui Enterprise Architect non tenterà di modificare o ottimizzare alcun codice e semplicemente generare i diagrammi delle classi UML dal lavoro svolto. Questo richiede circa 10 secondi.

Da qui avrai una nuova visione di come le tue applicazioni sono messe insieme e potresti trovare alcuni modi per migliorare il design. A questo punto, se lo desideri, puoi sincronizzare nuovamente il modello con il tuo codice o apportare le modifiche al codice manualmente e sincronizzare il codice con il modello.

L'altro vantaggio è che ora puoi iniziare a creare una libreria dei tuoi schemi di codice che puoi usare per costruire rapidamente le tue applicazioni future. Come hai già risolto questi problemi di progettazione in passato, puoi semplicemente copiarli dal progetto precedente nel tuo nuovo modello di progetto. Un buon esempio di questo è un motore di gioco: sostanzialmente rimane lo stesso da un gioco all'altro, proprio come il resto del progetto interagisce con i cambiamenti del motore di gioco.

Accoppia questo con le funzionalità extra che ottieni dagli strumenti di modellazione, tra cui la documentazione automatica e la gestione integrata dei requisiti. Troverai che i tuoi progetti dovrebbero iniziare a scorrere molto più agevolmente.

La modellazione del codice è più di un semplice UML, ma è un buon inizio. Se non sono stato chiaro su qualsiasi punto, non esitate a chiedere!

    
risposta data 14.03.2011 - 23:25
fonte
1

Dai una NClass una prova. È un designer UML per C #. È possibile trascinare e rilasciare classi, strutture e interfacce. Puoi anche dichiarare le tue lezioni come astratte. Oltre a questo, puoi dichiarare funzioni, proprietà e variabili senza scrivere una singola riga di codice.

Quindi, una volta che sei soddisfatto dei risultati, puoi produrre il tuo lavoro come codice C # e costruire il tuo programma da lì.

Strumento abbastanza utile. Ed è gratuito (come nella birra gratis) ed è open source! Lo uso sempre.

    
risposta data 15.03.2011 - 07:43
fonte
0

A volte uso Enterprise Architect , Permette di progettare diagrammi UML che ti permettono di generare un vero file di codice sorgente per la lingua di tua scelta. Devi pagare per questo, ma hanno una prova gratuita di 30 giorni in modo da poter vedere come funziona.

    
risposta data 14.03.2011 - 16:49
fonte
0

Preferisco semplicemente abbozzare i miei disegni più complicati su carta. Lo chiamerei UML, ma è tutt'altro che completo, e probabilmente io uso le rappresentazioni errate qua e là. Mi aiuta solo a vedere come tutto comunica.

Quando devo creare un design che coinvolge più persone, creo un UML decente e mi assicuro di seguire gli standard. Preferisco ancora non creare un UML completo, ma aggiungere solo quelle funzioni / membri rilevanti.

Sono molto interessato a Model Driven Engineering tuttavia, ma solo fino all'estremo in cui viene generato tutto il codice da un modello (indipendente dalla lingua), non solo dallo scheletro. Sto anche esaminando approcci diversi rispetto a UML per questi scopi, come DSL .

    
risposta data 14.03.2011 - 17:12
fonte
0

Mi piace utilizzare la Progettazione classi che è incorporata in Visual Studio. È semplice da usare e ti consente di saltare avanti e indietro tra il codice e il design, mantenendoli sincronizzati tra loro.

    
risposta data 14.03.2011 - 17:12
fonte

Leggi altre domande sui tag