Domanda

Ho un'idea che voglio trasformare in un'applicazione (ho un background di programmazione C/C++, C# e Java, quindi svilupperò in QT Creator per motivi di compilazione incrociata).Quindi ora chiedo a voi sviluppatori senior, cosa dovrei fare dopo?So che tutti i buoni programmi nascono da un'idea.Quindi cosa dovrei fare?Prototipare l'interfaccia utente?Quindi sviluppare il codice?Esiste come un circolo di sviluppo di un'applicazione?
NON VOGLIO CHE QUESTA DOMANDA SIA SOGGETTIVA O ARGOMENTATIVA

È stato utile?

Soluzione

Ok, dal punto di vista di uno sviluppatore esperto, la maggior parte delle aziende per cui ho lavorato segue almeno un approccio in qualche modo guidato dai processi.I progetti open source che ho visto possono variare ampiamente, da ad hoc a estremamente guidati dal processo.In generale, però, almeno nel mondo aziendale, anche su progetti più piccoli, qualcosa come i seguenti approcci ha funzionato bene per me e per i team con cui ho lavorato.Naturalmente, ci sono molte varianti, che utilizzano paradigmi diversi, ma in generale, questi sono i tipi di passaggi che vedo nella maggior parte dei paradigmi (e sono sicuro di aver tralasciato alcuni passaggi essenziali):

  • Prima di tutto, gestisci bene le tue esigenze.Se i tuoi utenti non sono sicuri di ciò che vogliono, l'approccio di @Michael Herold di iniziare con un prototipo di interfaccia utente è sicuramente un buon suggerimento.Potresti anche voler adottare un qualche tipo di approccio iterativo, ad esempio Agile/Mischia.
  • Successivamente, definisci un tipo di architettura di alto livello che dovrebbe essere sufficientemente flessibile da raggiungere il tuo obiettivo.La tua app sarà client-server?Avrà bisogno di un database?Più thread?Processi multipli?Se uno di questi era "sì", come comunicheranno quei thread/processi.Disegna uno schema a blocchi dopo aver risposto alle domande precedenti.
  • Se il tuo progetto è di medie dimensioni o più grande, potresti anche voler disegnare alcuni diagrammi di classe o di tipo UML.Pensa al tipo di lezioni di cui avrai bisogno e alle loro relazioni.
  • Se vuoi provare il Sviluppo guidato dai test approccio, ora potrebbe essere il momento giusto per trasformare i tuoi requisiti in test unitari.
  • Una volta che hai una buona idea di COSA stai cercando di risolvere e di COME ti avvicinerai alla sua risoluzione, puoi finalmente iniziare a codificare una soluzione.

Alcuni approcci sono iterativi, come ad esempio Sviluppo incrementale O Agile/Mischia.In Agile/Scrum, le tue iterazioni saranno molto rapide, come se ogni poche settimane passassero attraverso un ciclo completo.Nello sviluppo incrementale, il ciclo è generalmente più lungo:mesi o addirittura anni.Sia in Scrum che nello sviluppo incrementale, la cosa principale da tenere a mente è che alla fine di ogni iterazione si desidera avere una parte di software utilizzabile (anche se non fa molto).Ciò aiuta a mantenere interessati i clienti reali o potenziali e persino gli sviluppatori.

Qualunque sia il tuo approccio, prima e più spesso puoi coinvolgere i tuoi utenti (o potenziali utenti), esaminando i prototipi dell'interfaccia utente o tramite Test di usabilità, meglio è.

Altri suggerimenti

Direi che dipende da quale sarà la parte principale dell'applicazione.La maggior parte del lavoro deriverà dalla progettazione dell'interfaccia utente (ad es.è da lì che viene il "fattore wow"?) o si tratterà principalmente di manipolazione dei dati o di qualche altro "lavoro pesante" (ad es.questi sono i miei risultati in una semplice interfaccia utente)?

Se l'applicazione ha lo scopo di "stupire" le persone, prototipare l'interfaccia utente e ottenere opinioni al riguardo è molto utile.Questo può essere fatto prima di iniziare con il codice, quindi è possibile applicare aggiornamenti incrementali man mano che ricevi feedback.Mentre chiedi feedback, puoi iniziare a lavorare sulla codifica del resto dell'applicazione, in modo che ogni parte proceda senza attendere l'uno o l'altro.

La cosa bella è che, se fatte correttamente, queste due cose dovrebbero essere completamente (o quasi) disaccoppiate e indipendenti l’una dall’altra.

Un'ultima nota:prototipando la tua interfaccia utente, potrebbe aiutarti a consolidare la tua idea nella tua testa, il che faciliterà la progettazione del codice dietro l'interfaccia utente.Metodi diversi funzionano per persone diverse, ma secondo la mia esperienza la prototipazione dell'interfaccia è molto utile.

Continuate così.Rimani bloccato.

Prova a progettare le cose in modo flessibile in modo da poterle rifattorizzare facilmente quando ti rendi conto di aver preso la strada sbagliata.Mantieni separati l'interfaccia utente, la logica aziendale e i livelli di dati in modo da poter rielaborare facilmente l'interfaccia utente ecc. in un secondo momento quando capisci esattamente cosa deve fare.

È sempre difficile sapere da dove cominciare, quindi il miglior consiglio che posso dare è semplicemente pensare a tutto, scegliere un po' e mettersi al lavoro.Aspettatevi di dover effettuare il refactoring o addirittura riscrivere alcuni bit: non aver paura di questo, è normale.Ma potresti restare lì per sempre cercando di decidere quale parte fare per prima e non iniziare nemmeno.Non importa quale parte esegui per prima, purché tu abbia in mente un piano generale in modo che le parti che implementi si adattino tutte insieme in modo coerente alla fine.

(Non sto suggerendo di andare a fare un gran pasticcio senza prima progettare o prototipare nulla.Il fatto è che una delle parti più difficili nello sviluppo di una nuova applicazione è decidere da dove iniziare.Ad un certo punto, devi solo fare il grande passo e iniziare a nuotare)

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