Domanda

Quando inizi un progetto di programmazione personale, qual è il tuo primo passo?Sto cercando di avviare un progetto che al momento è solo un'idea.Ne ricevo molti e mi immergo direttamente nel codice e dopo un po' perdo completamente interesse e/o semplicemente mi dimentico del progetto.

Quando inizi, qual è il tuo primo passo?pianifichi il progetto?fare uno schema?scrivere del codice su carta?Come si avvia un progetto in modo sicuro che avrà successo?

È stato utile?

Soluzione

L'unica cosa che funziona per me:Crea la più piccola implementazione possibile che sia in qualche modo utilizzabile e poi usala.

Altri suggerimenti

Da 7 abitudini delle persone altamente efficaci, Abitudine 2:Inizia con la fine in mente.

Con qualsiasi progetto è necessario avere un obiettivo chiaro, un punto in cui poter dire "ho finito".Un risultato chiaro ti darà la direzione.Una volta ottenuto ciò, puoi iniziare a pianificare come arrivarci.Le dimensioni e la complessità del progetto determineranno la quantità di dettagli di cui il tuo piano ha bisogno, ma in generale vorrai sentire i tuoi progressi rispetto al tuo piano abbastanza regolarmente.

Il mio prossimo passo è delineare un progetto dei moduli che saranno necessari e delle API tra ciascun modulo.Se le API sono pulite, probabilmente i moduli sono corretti.Quindi inizio a implementare i moduli, testandoli man mano che procedo.

Trascorro molto tempo a pensare ai vari aspetti del progetto prima ancora di toccare una tastiera.

Esamino ciò che ho imparato dai progetti precedenti e lo scrivo in varie categorie ("tecnico", "promozione", ecc.)

Progetto personale o no, imposto sempre il controllo del codice sorgente.Git, Mercurial of Bazaar sono esempi di strumenti di controllo del codice sorgente che non sono intrusivi perché non è necessario impostare un server master.Basta digitare un semplice comando per creare il progetto, archiviare i file, eseguire il commit.In futuro, quando sbagli uno dei tuoi file, potrai "annullarlo"

Ho anche impostato un sistema di biglietti leggero per tenere traccia di 1. emissioni e 2.ideas per "leggero" intendo che se mantenere due documenti di testo con questi elenchi funziona per te, è abbastanza buono.

Spero che questo ti aiuti.

Concordo con i consigli già dati di:

  • Pianificare un'implementazione minima che faccia qualcosa di utile come prima versione completa.
  • Avere obiettivi concreti su ciò che vuoi ottenere per avere qualcosa con cui confrontare i tuoi progressi.

Consiglierei anche di iniziare con un design leggero nel complesso architettura quindi puoi avere un tabella di marcia su come costruire il tuo prodotto.

Trovo difficile iniziare a costruire qualcosa quando non ho un'idea chiara di come dovrebbe apparire almeno ad un primo livello di scomposizione.Pensa a cosa ti serve oltre alla funzionalità:prestazioni elevate?, scenari di estensibilità?, quali?, obiettivi di usabilità?, scalabilità elevata?, facilità di distribuzione e installabilità?, ecc.Chiedilo a te stesso:Quali componenti dovrò costruire per raggiungere quelle qualità architettoniche?.

E non fraintendermi, sono un forte sostenitore dello sviluppo agile del software.Non è necessario dedicare molto tempo alla progettazione della tua architettura (perché sicuramente dovrà evolversi man mano che la costruisci e ottenere feedback su cosa funziona e cosa no), ma avere un progetto su come costruire il tuo prodotto in base alla sua architettura dovrebbe essere utile per pianificare i tuoi progressi e fissando obiettivi realistici.

Definire l'obiettivo del progetto.Sembra che tu stia guardando quasi esclusivamente alla soluzione piuttosto che al problema.

Un programma non è utile a te o a chiunque altro a meno che non risolva qualche problema.Scrivere codice per muoversi è fantastico, ma sembra che tu perda interesse e concentrazione dopo aver iniziato, perché stai guardando il codice, non il problema.

Dedica un po' di tempo a considerare cosa ti ha portato a scrivere questo codice.Rifletti su come altre persone potrebbero scoprire lo stesso bisogno, quale percorso potrebbe portarli alla stessa frustrazione per cui hai lavorato per risolvere.

Quindi, trova alcune di queste persone e offri la tua soluzione (parziale), e genererai interesse e suggerimenti tra tutti loro.

QUELLO ti farà andare avanti con il tuo progetto.Gli interessi comuni, le condivisioni, perfino i disaccordi: sono le persone che hanno bisogno del software!Non creare soluzioni (software) cercando un problema (persone).Hai iniziato con TE, con il tuo bisogno o desiderio, ma ti sei concentrato sul codice e hai perso lo slancio per il progetto.

La programmazione è molto più divertente quando risolvi i problemi.Ma devi tenere il problema davanti a te.La condivisione del problema crea comunità.E' proprio di questo che si tratta, non è vero?

Per i miei progetti personali mi immergo subito.Naturalmente, nessuno di questi è stato ancora sufficientemente grande da richiedere alcun tipo di pianificazione preliminare.Se si tratta di un progetto serio o su scala relativamente ampia, è sempre una buona idea individuare almeno ciò che ciascuna parte del programma deve fare e una visione ad alto livello di come lo faranno.

Come gli altri, i miei progetti personali hanno sempre:

  • Un obiettivo finale
  • Un elenco di attività
  • Piccole unità utilizzabili
  • Controllo della fonte

Come ulteriore motivazione, cerco di utilizzare una tecnologia che non ho mai utilizzato prima.Imparare qualcosa di nuovo generalmente diventa per me la più grande motivazione.

Facile: non iniziare tutti i progetti per i quali potresti perdere interesse.Dedica più tempo ad assicurarti di volerti impegnare in un'idea prima di iniziare qualsiasi lavoro.

Dipende dal progetto: quanto è grande?

Se sto scrivendo il prossimo clone di Blocco note potrei semplicemente tuffarmi, se volessi implementare il mio sistema operativo ci vorrebbe molto più lavoro non di codifica.

Mi piace fare molti diagrammi, lo strumento che utilizzo per la maggior parte dello sviluppo è un foglio A4 pulito e una matita.Disegna l'interfaccia utente, il flusso di lavoro, le classi di base e il modo in cui memorizzerai i dati, quindi la codifica è solo un modo leggibile dal computer per scrivere ciò che hai già disegnato.

Controllo del codice sorgente, ad es.SVN è composto da un paio di sequenze di tasti/clic, quindi il sovraccarico è basso e il vantaggio è elevato, è utile provare cose e tornare a uno stato precedente se non funzionano.

Quindi crea semplicemente il prototipo più elementare che funzionerà: una volta che qualcosa funziona davvero, è molto più facile entusiasmarsi e aggiungere altro.Se è travolgente, scoprirò che penso che il problema sia risolto nella mia testa, e questo è abbastanza.

Innanzitutto pianificare lo schema di base dell'applicazione finale.Funzionalità più importanti, GUI di base, flusso del programma, ecc.Quindi perfezionalo in modo da non impegnarti troppo all'inizio, rimuovi le funzionalità non necessarie e aggiungi cos'altro desideri nella prima versione.Quindi utilizza quella struttura per avviare un elenco di attività per creare la versione funzionante più piccola possibile della tua applicazione.Quindi sarà molto più semplice aggiungere funzionalità extra e renderlo pienamente funzionante.

Mi piace la risposta di Massimiliano..per espandermi un po', i miei progetti personali sono sviluppati per risolvere qualcosa su cui sto già lavorando.Quindi, quando mi stanco di ripetere il lavoro, prototiperò una soluzione.e poi usarlo.Se è abbastanza simile a uno dei miei progetti precedenti, prenderò in prestito quanto più codice possibile e cercherò di migliorare il livello del mio lavoro, renderlo più professionale.

Anche l'uso del controllo del codice sorgente da parte di Fusion è importante.Sono necessari 2 minuti per installare SVN.

Se vuoi trasformarlo in un progetto open source pubblico, Produzione di software open source dovrebbe essere una buona lettura (disponibile sia online che cartacea).

Se il tuo progetto personale è simile a un progetto open source esistente, dovresti invece prendere in considerazione la possibilità di contribuire a quel progetto.Un paio di piccoli contributi (correzioni di bug ecc.) Sono più preziosi di un progetto finito di metà.

Tutto quanto sopra, ma inizia a cementare il piano in atto.....

Scegli alcuni strumenti SmartSheet - anche se stai lavorando da solo, dovresti stabilire alcune fasi e date Yed - e la grafizza da www.yworks.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top