Quindi inizi sempre a sviluppare i tuoi sviluppi scrivendo l'interfaccia utente? Direi che questo modo di fare è generalmente associato allo sviluppo di "prototipi" in ambienti professionali, ma poi di nuovo non necessariamente. Nelle piccole aziende che scrivono applicazioni "piccole" e che iniziano con l'interfaccia utente accade molto spesso ( anche capita anche più spesso che l'applicazione "piccolo" è stato avviato cresce e cresce e cresce e diventa un'applicazione mostro che richiede di refactoring, sviluppatori aggiuntivi. .. ma io divago )
Quindi non è necessariamente una cattiva idea, dipende dalla dimensione / complessità dell'applicazione che si sta scrivendo e tu l'hai detto tu stesso che stai scrivendo questi programmi per te stesso. Psicologicamente, avere un'interfaccia utente può anche aiutare a farti vedere i tuoi progressi e questo ti dà motivazione. Considerando che se stai scrivendo il tuo code-behind e i casi di test in primo luogo potrebbe essere necessario un giorno di rugiada prima di iniziare realmente a soffermarti sull'interfaccia utente ... A meno che la tua mente non accetti che anche i casi di test siano traguardi:)
Tuttavia, come hai detto tu stesso, facendo prima l'interfaccia utente senza pensare alla dorsale dell'applicazione , ti porteranno nei guai. È molto allettante iniziare la parte "divertente" (sono come te, mi piace avere interfacce chiare). Ma prima, e anche per i piccoli programmi, fermati un attimo, prendi un foglio di carta e disegna alcuni diagrammi su come funziona la tua applicazione. Come reagiranno i tuoi componenti agli eventi dell'interfaccia utente. Quali sono le regole aziendali (o di gioco!) Da implementare. Prepara un breve elenco di cose da attuare e definisci le priorità in base a ciò che ritieni sia fondamentale. Inoltre, durante la programmazione, resisti all'impulso di implementare funzionalità / opzioni non critiche che inevitabilmente ti verranno in mente, annotale e osservale dopo il raffreddamento.
Dovresti sforzarti di ottenere la massima separazione tra interfaccia utente e logica aziendale / di gioco. Idealmente, il tuo codice di gioco dovrebbe funzionare se hai un gioco a riga di comando (ad esempio: "gioca e2e4"), un'interfaccia utente 2D semplice o un'interfaccia utente 3D a pieno titolo basata sull'ultima versione di DirectX. completa separazione non è un lavoro facile ed è dove la conoscenza di Object-Oriented e programmazione puntuale sarà molto utile.
Ora, la cosa buona è che entrambi ami programmare e scrivere programmi, e tu sei solo un po 'troppo entusiasta ... No scratch. Sei entusiasta e questa è una buona cosa.
Riguardo al soggetto del refactoring, potresti non sentirne il bisogno, ma forse è perché sai che il tuo codice è un disastro e che ci vorrebbe un'eternità per cambiare le cose. Tuttavia, se organizzi le tue idee un po 'prima di iniziare, dovresti avere meno codice per il refactoring (ma ci sarà (dovresti?) Essere sempre una piccola voce nella tua testa che dice "questo potrebbe funzionare meglio se ..."). Controlla altre domande su questo sito web sul tema del refactoring, altre persone hanno coperto molto meglio di quanto avrei potuto fare io.
Infine, se ritieni di non scrivere codice OO corretto dai un'occhiata ad alcuni libri che potresti leggere per migliorarlo, ad esempio: link