is it better practice to create GUI components and then create the
functionality or better to have the program working before adding
buttons and windows?
In questo caso stai solo sviluppando, ma se ci fossero più persone questo potrebbe facilmente accadere contemporaneamente. Non è giusto o sbagliato fare l'uno prima dell'altro.
Risposta: domande specifiche
Should I design all the GUI components first and then build the
functionality around this? or have my app working from the console and
then create the GUI ?
Se per "lavorare dalla console" intendi scrivere una CLI, quindi no, non penso che sia un buon approccio in questo caso. IMO che sarebbe un lavoro non necessario e la scrittura di codice che in definitiva non è necessario.
A parte questo, non c'è una risposta corretta alla domanda di scrivere prima l'UI o no. Se segui un buon modello di progettazione potresti facilmente scrivere un'interfaccia utente che non fa ancora nulla (o prendere in giro l'interazione con il database). Sullo stesso token è possibile scrivere prima tutto il codice di accesso ai dati senza un'interfaccia utente e, con alcuni test di unità, verificare che il codice del database funzioni prima di scrivere l'interfaccia utente.
Should I try implement some sort of framework ? I haven't used
Frameworks before so the learning curve i imagine will be steep
Forse? Dipende da ciò che stai cercando di realizzare. Se vuoi imparare un quadro specifico, allora usalo con tutti i mezzi. Se decidi di utilizzare un framework specifico, assicurati che sia adatto alle tue esigenze e che non lo stai utilizzando semplicemente perché qualcuno ha detto che dovresti.
Should I implement an architecture type? I know the theory behind MVC
as i used in the JSP Restful project. But as this project inst overly
complicated, maybe I don't need to.
MVC (o MVP, ecc.) è certamente un buon modello che potresti seguire. Dici che il progetto non è eccessivamente complicato, ma potresti essere sorpreso di quanto codice si finisce per scrivere e di come la complessità cresce rapidamente! Seguire un buon schema può aiutarti a mantenere i bug modulari, leggibili, manutenibili e facili da individuare.
Ri: "pensieri e altri aspetti del design"
Altalena
Se stai cercando di apprendere una struttura dell'interfaccia utente che sarebbe utile andare avanti, starei lontano da Swing e utilizzare JavaFX invece.
Altre
Consiglierei di prendere questo progetto un pezzo alla volta: creare un'interfaccia utente non funzionante e scrivere il codice di accesso ai dati separatamente prima di collegare tutto insieme. Ciò ti aiuterà a concentrarti su un aspetto e ad assicurarti di prendere buone decisioni di progettazione (e magari seguendo uno schema come MVC, MVP, ecc.) Su quel livello. Naturalmente potresti dover apportare delle modifiche in un secondo momento, ma non così tante come se provassi a fare tutto in una volta: ciò diventa complicato in fretta!
Quando inizi ogni fase, considera prima la creazione delle interfacce. Ad esempio, quando scrivi il codice di accesso ai dati, chiediti "Di quali interazioni ho bisogno e cosa mi aspetto in cambio?" Quindi crea alcune interfacce con metodi come addUser()
, deleteUser()
, addStock()
, removeStock()
, ecc. A seconda di ciò che ti serve. Quindi puoi creare implementazioni specifiche della tua interfaccia a seconda della tecnologia utilizzata (ad esempio un database SQL, MySQL, ecc. Ecc.). Lo stesso vale per l'interfaccia utente (implementazioni per lo specifico framework utilizzato) e per effettuare chiamate API per recuperare i prezzi delle azioni (implementazione per la specifica API utilizzata). Ciò fornisce la flessibilità per lo scambio di una struttura dell'interfaccia utente, una tecnologia di database o un'API di magazzino.
Infine, considera la pubblicazione su Revisione codice una volta che hai qualcosa che funziona! Sembra che il tuo obiettivo qui sia quello di imparare, e avere altre persone che criticano il tuo codice è un ottimo modo per imparare!