Quali sono i modi in cui posso accelerare i tempi di sviluppo durante la creazione di applicazioni? [chiuso]

5

Ho notato che gli straordinari con esperienza che la curva di apprendimento si sposta dal tentativo di imparare una lingua o tecnologia (il modo in cui funziona) a come sviluppare applicazioni più velocemente e con meno codice. Sono molto interessato a vedere come altri sviluppatori hanno ridotto al minimo il tempo necessario per ottenere le applicazioni sul mercato.

So per certo che imparando solo una cosa può farti risparmiare un sacco di tempo. Ad esempio, ho iniziato a imparare espressioni lambda e il codice che normalmente richiedeva 3 linee ora richiede solo 1 ed è molto più veloce da digitare.

Un altro angolo è scorciatoie e strumenti in un IDE stesso. Ad esempio, non posso credere di non sapere come rimuovere le istruzioni inutilizzate usando il mio codice sorgente, quindi l'ho usato manualmente fino a quando ho scoperto che c'era uno strumento in VS per rimuoverle.

Esistono risorse per apprendere modi più veloci di sviluppare applicazioni? Tasti di scelta rapida, strumenti, programmi, riferimenti? C'è un riferimento dove si possono imparare queste cose? Se no, puoi condividere come hai appreso alcuni di questi suggerimenti?

NOTA: questa domanda è orientata verso .NET, C # e IDE di Visual Studio

    
posta Edward 11.10.2011 - 16:15
fonte

6 risposte

12

Programmare le applicazioni più velocemente non significa ridurre il numero di linee in esse contenute. Si tratta di semplificare la soluzione. Solo perché è più breve, non significa che sia più semplice.

Meno è complessa la soluzione, meno è probabile che si verifichino degli errori.

Il codice di battitura non è ciò che è lento. Non siamo pagati per digitare. Non siamo nemmeno pagati per scrivere codice. Siamo pagati per creare soluzioni ai problemi.

A volte una soluzione elegante, semplice e corretta è più linee. Alcune volte è meno. La chiave è che è corretto e facile per te e per il prossimo sviluppatore capire cosa fa. Il computer non ha problemi a capire cosa scrivi. Il codice è per le persone da leggere.

Detto questo. Resharper è uno strumento GRANDE per migliorare la velocità che puoi programmare e aiutare a creare codice pulito di facile manutenzione.

    
risposta data 11.10.2011 - 16:20
fonte
10

Leggi The Pragmatic Programmer , contiene molti buoni consigli per aiutarti a diventare più veloce.

Un paio di loro, come ricordo:

  • (come hai notato anche tu): impara bene i tuoi strumenti. Scopri le combinazioni di tasti per i comandi che usi spesso. Tutti gli IDE tradizionali hanno i trucchi della mappa di chiavi. Implicito: apprendi uno strumento (IDE) e usalo quando puoi.
  • Impara un linguaggio di scripting. Spesso puoi risparmiare un sacco di tempo mettendo insieme un breve script shell / Perl / ... anziché ad es. ricerca / elaborazione manuale di un enorme file di registro.
  • (probabilmente ancora più importante a lungo termine): capisci il tuo problema prima che inizi a programmare. Puoi risparmiare tempo scrivendo un codice più breve e più conciso, ma il miglior risparmio a lungo termine è non che deve scrivere quel codice. Ci può essere una biblioteca là fuori che puoi riutilizzare. Oppure può darsi che il cliente non abbia realmente bisogno della funzione a cui stai pensando (o ha bisogno di qualcosa di completamente diverso da quello che pensavi di volere).
  • Automatizza tutto ciò che puoi: test, creazione, distribuzione, generazione di documentazione, ecc. Riduci al minimo il lavoro manuale ripetuto.
  • Migliora e perfeziona continuamente i tuoi strumenti e processi, identifica i problemi e risolvili man mano che procedi, adattandoti al mondo che cambia.
risposta data 11.10.2011 - 16:20
fonte
3

La mia risposta è: resharper, resharper e ... resharper :-) Potresti ovviamente scrivere alcuni frammenti di codice in Visual Studio o modelli live per R # per minimizzare tutte le attività ripetitive. Dopo aver creato una nuova funzionalità di codice, documentala in Google Documenti o nella wiki della tua azienda, perché in futuro potresti averne bisogno, e quindi puoi semplicemente eseguire un semplice lavoro di copia / incolla. Assicurati anche di avere una buona conoscenza dei principi SOLID. Niente può aumentare la tua produttività tanto quanto una buona conoscenza dei modelli di progettazione e dei principi SOLID.

    
risposta data 11.10.2011 - 22:17
fonte
2

Sembra che ci stiamo concentrando sull'aspetto di codifica dello sviluppo; quindi resterò lì.

L'apprendimento di C # (ad esempio) non è la stessa cosa che imparare come programmare. Il codice scritto male è kwap, non importa quanto velocemente sia scritto. E l'idea che "beh, più velocemente riesco a scaricarlo sulla carta, più velocemente riesco a risolverlo" è una commissione da pazzi. Ascoltami ora e credimi più tardi: scrivere bene il codice è di gran lunga superiore alla scrittura veloce del codice.

Learning HOW è una lunga strada, ma prendersi del tempo per farlo renderà più rapido il processo di sviluppo.

Un paio di approfondimenti pratici dal mio viaggio:

  • leggi codice completo . Questo è il punto di partenza per la codifica di qualità. Questo libro mi ha davvero aiutato a capire quelle battute simpatiche che tutti abbiamo ascoltato - "scrivi commenti utili" per esempio. Lo diciamo tutti ma è raro vederlo.

  • Design accurato. All'interno dello stesso (più grande) progetto ho avuto modo di scrivere codice in cui il design della classe era pietoso, non orientato agli oggetti e moralmente; in un altro pezzo del progetto le classi erano molto ben progettate.

    È interessante notare che il designer (delle cose buone) si stava affliggendo dagli sviluppatori e dalla gestione dei programmi per "impiegare troppo tempo" e "non è abbastanza semplice", ecc. Ma il contrasto nella velocità di codifica per questi due aspetti molto diversi le linee di base erano sbalorditive. Classi ben progettate per codici più veloci e codice FAR LESS ERROR PRONE. L'ex pezzo ha trascorso mesi in test vizioso / rifiuto / correzione ciclistica mentre il secondo ha navigato attraverso test in pochi giorni.

  • Se viene data l'opportunità di riscrivere crapCode da zero, fallo. L'immagine prima e dopo che ho ottenuto mi ha dato una profonda comprensione di come tutti questi principi di codifica, paradigmi, ecc. Si uniscano in modo olistico per produrre codice eccellente.

risposta data 14.10.2011 - 16:40
fonte
0

Oltre alle altre buone risposte finora ...

Se stai cercando modi per produrre codice più velocemente, hai guardato allo sviluppo di un generatore di codice per schemi ripetitivi di codice? L'idea è di scrivere un programma che produca più codice da utilizzare nel tuo programma principale.

Esempio: è necessario scrivere una serie di semplici query CRUD per un numero elevato di tabelle, ciascuna con un numero elevato di colonne. I dettagli di questi sono dati in un foglio di calcolo Excel e per rendere le cose interessanti, i requisiti per queste tabelle cambiano di tanto in tanto. Una soluzione sarebbe scrivere una macro per il foglio di calcolo che genera le query CRUD e il codice per eseguirle. In questo modo puoi generare query per 1 o 10 o 100 tabelle con lo stesso sforzo (una volta scritta la macro). Quando i requisiti cambiano e le colonne vengono aggiunte / rimosse / rinominate, la rigenerazione delle query è molto semplice. Si potrebbe finire con più codice (in termini di LOC) alla fine, ma dal momento che non è necessario mantenerlo manualmente (se ci sono eccezioni speciali a queste query, dovrebbero non essere generati , ma ottimizzato a mano), non è così male.

Questo potrebbe non essere applicabile in tutte le situazioni, ma è abbastanza generico e l'ho usato con successo in alcuni punti. A volte la scrittura di un generatore di codice in Java o C # ha più senso, a seconda della situazione.

    
risposta data 11.10.2011 - 16:32
fonte
0

Oltre alle risposte pubblicate:

0-Definire i requisiti in modo accurato per ridurre al minimo il rilavorazione e le principali correzioni che richiedono molto tempo, e considerare l'approccio alla progettazione.

1-Non spararti ai piedi - Riconoscere le capacità del tuo / la tua squadra rispetto ai requisiti rispetto al tempo disponibile prima di impegnarti in funzioni fantasiose e concentrarti sul valore fondamentale dell'applicazione.

2-Usa strumenti. Esistono ottimi strumenti per generare codice e strumenti per aiutare il tuo utente finale a generare rapporti, se applicabile.

    
risposta data 11.10.2011 - 18:10
fonte

Leggi altre domande sui tag