Le migliori pratiche per la creazione di più pulsanti HTML utilizzati per uno scopo simile

0

Mi rendo conto che questo può essere soggettivo, ma non vedo alcun posto preciso per fare domande sui principi del buon design del software. Sono sicuro che ci sono alcuni modelli di software e anti-pattern di cui dovrei essere a conoscenza qui.

Non sto chiedendo informazioni su UI / UX o su come codificare nulla. Ti sto chiedendo quale sarebbe un buon modello di design da seguire quando crei più pulsanti HMTL simili a tutti, ma cose distinte - In questo caso, caricamento dei file

Sto sviluppando una GUI, parte della quale ha una funzione di salvataggio. C'è una lista di slot per i file di salvataggio, e per ogni slot, ci sarebbe un'anteprima del contenuto salvato in quello slot, più un pulsante per caricare / cancellare / salvare, ecc. Tutto questo è fatto tramite HTML e Javascript

Quale dei seguenti sarebbe il modo migliore per implementare i pulsanti? Ad esempio, con il pulsante "Carica", potrei:

  • Avere un singolo pulsante HTML per "Carica". Il comportamento di questo pulsante (quale file viene caricato) viene modificato dal Javascript, in base allo slot salvato selezionato.
  • Avere un pulsante "Carica" per ogni area di salvataggio scritta nell'HMTL, ciascuno dedicato al caricamento del file dallo slot preassegnato. I pulsanti sono mostrati / nascosti da Javascript in base a ciò che hai selezionato.
  • Simile a quanto sopra, ma invece di scrivere ogni pulsante in HMTL a titolo definitivo, potrei inserire dinamicamente l'HTML e rimuoverlo utilizzando Javascript, in base allo slot selezionato.
  • Qualcosa di completamente diverso?

Il modo in cui attualmente il programma è scritto (con pulsanti statici e non funzionali), C'è un singolo pulsante HMTL posizionato al lato degli slot salvati.

Ecco una schermata dell'interfaccia, solo per fornire un contesto su come vengono utilizzati questi pulsanti:

    
posta Brian C 29.06.2017 - 20:17
fonte

1 risposta

1

È mia opinione che un principio generale di ingegneria del software, o buona pratica, è che non si dovrebbe avere il codice che viene prodotto avendo più copie dello stesso codice sorgente. Invece dovresti astrarre e generalizzare. Questo evita i casi in cui una istanza ottiene una correzione di bug e un'altra no.

Pensando al tuo problema specifico, l'unica differenza tra ciascun set di pulsanti è lo slot su cui operano e, eventualmente, i pulsanti abilitati o visibili. Questo può essere generalizzato avendo un insieme reale di pulsanti e azioni con un handle di qualche tipo (un indice, un nome, ecc.), Possibilmente un testo del titolo e una maschera di permessi. Quindi, quando l'utente seleziona uno slot specifico, viene effettivamente presentato con il singolo set di pulsanti, con alcuni disabilitati o nascosti, e se ne selezionano uno viene chiamato il codice con alcune informazioni su quale slot su cui agire.

Regola empirica, se copi e incolli una volta che potresti sbagliare, due volte e stai facendo torto.

    
risposta data 30.06.2017 - 08:03
fonte